反汇编的exe文件包含的代码比源代码多得多

时间:2013-09-27 15:35:39

标签: c++ visual-studio-2012 assembly reverse-engineering ida

我正在尝试反汇编此文件,但我不断添加大量代码。 Visual C ++

#include <stdio.h>
int main()
{
int x = 1;
int y = 2;
printf("\rStart me UP");
x = x+y;
y = y+x;
printf("\rX is %d, Y is %d",x,y);
return 0;
} 
像这样的东西包含在我的代码中(很多这个),如果它没有字符串,我将无法找到自己的编程源。

=============== S U B R O U T I N E =======================================
.text:0041101E
.text:0041101E ; Attributes: thunk
.text:0041101E
.text:0041101E sub_41101E      proc near               ; CODE XREF: .text:00415C46p
.text:0041101E                                         ; .text:00415C5Dp ...
.text:0041101E                 jmp     sub_41C7F2
.text:0041101E sub_41101E      endp
.text:0041101E
.text:00411023 ; ---------------------------------------------------------------------------
.text:00411023                 jmp     loc_414243
.text:00411028
.text:00411028 ; =============== S U B R O U T I N E =======================================
.text:00411028
.text:00411028 ; Attributes: thunk
.text:00411028
.text:00411028 sub_411028      proc near               ; CODE XREF: start_0-18Ap
.text:00411028                 jmp     sub_41672F
.text:00411028 sub_411028      endp

与ida pro一起拆解

  1. 我确实找到了我的程序最终是因为字符串但是如果有人用加密字符串制作一个crackme怎么办?我怎么能找到crackme本身的开头呢?

  2. 我确实查看了教程,我看到程序源代码位于IDA Pro的顶部(就像拆解开始的地方一样。所以当我查看教程时我不知道从哪里开始,因为我看到了不同的结果(方式更多的代码)。,那么如何只有程序源代码。而不包括10000行代码。???

3 个答案:

答案 0 :(得分:0)

您所看到的是编译器代码(当我第一次开始逆向工程时,我很惊讶)。会有一个名为WinMain的功能(IDA可能会或可能不会识别)。这是用户代码将启动的位置。较新版本的IDA非常擅长识别编译器代码。

事实是,你反向程序越多,你对编译器代码的熟悉程度就越高。很快你就可以跳过它并直接进入WinMain。坚持下去,不要太沮丧:))

答案 1 :(得分:0)

您在编译代码中看到的是C运行时序言和结尾。这是在程序打开/关闭流程之前和之后执行的一些代码,准备一些结构和参数(如argc / argv主要参数)等等。

你可以看到这些的来源(包括c和汇编代码),例如在c:\Program Files\Microsoft Visual Studio 8\VC\crt\src\中(适用于MSVC2005)。可能需要在Visual Studio的安装时检查运行时源组件。

答案 2 :(得分:0)

我在不同的架构(Going through AVR assembler "hello world" code)上提出了相关问题,以了解正在发生的事情并学习装配。

评论表明,在程序启动之前,编译器会添加很多内容,以便它可以在不同的体系结构上运行。在我的情况下,它会将ram分配并初始化中断和类似的东西。 AVR是一个微控制器,因此初始化的次数要少得多,但我想在Windows上运行的C ++程序需要初始化更多东西。