首页
社区
课程
招聘
[旧帖] [求助]od载入处的代码 0.00雪花
发表于: 2009-5-19 22:52 3556

[旧帖] [求助]od载入处的代码 0.00雪花

2009-5-19 22:52
3556
RT
发现od载入程序后停止的地方:
00401400 >/$  55            push    ebp
00401401  |.  8BEC          mov     ebp, esp
00401403  |.  6A FF         push    -1
00401405  |.  68 B8214200   push    004221B8
0040140A  |.  68 04564000   push    00405604                                 ;  SE 处理程序安装
0040140F  |.  64:A1 0000000>mov     eax, dword ptr fs:[0]
00401415  |.  50            push    eax
00401416  |.  64:8925 00000>mov     dword ptr fs:[0], esp
0040141D  |.  83C4 F0       add     esp, -10
00401420  |.  53            push    ebx
00401421  |.  56            push    esi
00401422  |.  57            push    edi
00401423  |.  8965 E8       mov     dword ptr [ebp-18], esp
00401426  |.  FF15 40714200 call    dword ptr [<&KERNEL32.GetVersion>]       ;  kernel32.GetVersion
0040142C  |.  A3 08564200   mov     dword ptr [425608], eax
00401431  |.  A1 08564200   mov     eax, dword ptr [425608]
00401436  |.  C1E8 08       shr     eax, 8
00401439  |.  25 FF000000   and     eax, 0FF
0040143E  |.  A3 14564200   mov     dword ptr [425614], eax
00401443  |.  8B0D 08564200 mov     ecx, dword ptr [425608]
00401449  |.  81E1 FF000000 and     ecx, 0FF
0040144F  |.  890D 10564200 mov     dword ptr [425610], ecx

不知道这些代码是处理什么用的,不是我自己程序的,我怎样才能定位到程序的真正开始处呢?比如说到达main()处,或者应该从那开始分析?

请教!

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
这个的确不是自己写的代码,由编译器生成,关于入口断点,可以看到OD - 选项  - 事件 中有各种入口点的设置。
2009-5-19 23:49
0
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
3
c的运行库吧
如果是console 就在这段代码里找3个push 一个call(也就是main函数)
如果是Gui的 就4个push 一个call(也就是Winmain函数)
也可以直接ctrl+g 到401000试试看
2009-5-20 00:52
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
告诉你一个简单点的,适合初学者的办法,在main函数内加一行代码。
printf("I am here,boy!");


然后使用字符参考就可以快速定位了
2009-5-20 06:53
0
雪    币: 316
活跃值: (11)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
因为编译的方法不同就不同了
2009-5-20 07:38
0
雪    币: 72
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我是想如果分析一个加密程序,应该从何处入手?是不是应该从开始分析?怎样才能定位到开始处
2009-5-20 22:39
0
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
如果是加密程序基本是必须要从开头分析,这个可以参考论坛内很多的手动脱壳笔记。
2009-5-21 09:17
0
雪    币: 72
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
多谢各位的答案,但是有个问题,比如说分析别人写的程序,我怎么区分那些代码是他自己写的,哪些是系统的库函数,比如上面的kernel32.GetVersion,我怎么区分这个函数是他自己代码里真正调用的还是系统库中的?
2009-5-21 18:52
0
雪    币: 360
活跃值: (77)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
9
大部分系统库是反汇编工具能识别的,其实分析别人的程序主要是关键点,把关键的地方分析出来就够用了
2009-5-22 17:49
0
游客
登录 | 注册 方可回帖
返回
//