首页
社区
课程
招聘
[旧帖] [求助]新手啃到硬骨头,正在不懈努力中…… 0.00雪花
发表于: 2010-7-30 21:00 1702

[旧帖] [求助]新手啃到硬骨头,正在不懈努力中…… 0.00雪花

2010-7-30 21:00
1702
新手破解中遇到很多难题,
没人指点,只能自己查找资料。
这一过程是艰难的,
但也学到了很多东西。
现在正在一步步艰难的爬行!
已经取得了一些进展,
但是困难仍然很多。
这个帖子部分的记录了这一过程,
非常渴望各位高手能稍微关注一下,
您简简单单的一句点评,
对我可能就是点睛之笔!


有一个程序,查壳是UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo [Overlay] 。
用od手动脱壳、修复、添加附加数据,双击脱壳程序无反应,无进程。
用od载入,是这样一段代码:


004CC5BF >  6A 60           push    60
004CC5C1    68 183F5500     push    00553F18
004CC5C6    E8 E10A0000     call    004CD0AC
004CC5CB    BF 94000000     mov     edi, 94
004CC5D0    8BC7            mov     eax, edi
004CC5D2    E8 89F0FFFF     call    004CB660
004CC5D7    8965 E8         mov     dword ptr [ebp-18], esp
004CC5DA    8BF4            mov     esi, esp
004CC5DC    893E            mov     dword ptr [esi], edi
004CC5DE    56              push    esi
004CC5DF    FF15 8C814D00   call    dword ptr [<&kernel32.GetVersion>; kernel32.GetVersionExA
004CC5E5    8B4E 10         mov     ecx, dword ptr [esi+10]
004CC5E8    890D B0C95600   mov     dword ptr [56C9B0], ecx
004CC5EE    8B46 04         mov     eax, dword ptr [esi+4]
004CC5F1    A3 BCC95600     mov     dword ptr [56C9BC], eax
004CC5F6    8B56 08         mov     edx, dword ptr [esi+8]
004CC5F9    8915 C0C95600   mov     dword ptr [56C9C0], edx
004CC5FF    8B76 0C         mov     esi, dword ptr [esi+C]
004CC602    81E6 FF7F0000   and     esi, 7FFF
004CC608    8935 B4C95600   mov     dword ptr [56C9B4], esi
004CC60E    83F9 02         cmp     ecx, 2
004CC611    74 0C           je      short 004CC61F
004CC613    81CE 00800000   or      esi, 8000
004CC619    8935 B4C95600   mov     dword ptr [56C9B4], esi
004CC61F    C1E0 08         shl     eax, 8
004CC622    03C2            add     eax, edx
004CC624    A3 B8C95600     mov     dword ptr [56C9B8], eax
004CC629    33F6            xor     esi, esi
004CC62B    56              push    esi
004CC62C    8B3D 1C814D00   mov     edi, dword ptr [<&kernel32.GetMo>; kernel32.GetModuleHandleA
004CC632    FFD7            call    edi
004CC634    66:8138 4D5A    cmp     word ptr [eax], 5A4D
004CC639    75 1F           jnz     short 004CC65A
004CC63B    8B48 3C         mov     ecx, dword ptr [eax+3C]
004CC63E    03C8            add     ecx, eax
004CC640    8139 50450000   cmp     dword ptr [ecx], 4550
004CC646    75 12           jnz     short 004CC65A
004CC648    0FB741 18       movzx   eax, word ptr [ecx+18]
004CC64C    3D 0B010000     cmp     eax, 10B
004CC651    74 1F           je      short 004CC672
004CC653    3D 0B020000     cmp     eax, 20B
004CC658    74 05           je      short 004CC65F
004CC65A    8975 E4         mov     dword ptr [ebp-1C], esi
004CC65D    EB 27           jmp     short 004CC686
004CC65F    83B9 84000000 0>cmp     dword ptr [ecx+84], 0E
004CC666  ^ 76 F2           jbe     short 004CC65A
004CC668    33C0            xor     eax, eax
004CC66A    39B1 F8000000   cmp     dword ptr [ecx+F8], esi
004CC670    EB 0E           jmp     short 004CC680
004CC672    8379 74 0E      cmp     dword ptr [ecx+74], 0E
004CC676  ^ 76 E2           jbe     short 004CC65A
004CC678    33C0            xor     eax, eax
004CC67A    39B1 E8000000   cmp     dword ptr [ecx+E8], esi
004CC680    0F95C0          setne   al
004CC683    8945 E4         mov     dword ptr [ebp-1C], eax
004CC686    56              push    esi
004CC687    E8 A32F0000     call    004CF62F
004CC68C    59              pop     ecx
004CC68D    85C0            test    eax, eax
004CC68F    75 21           jnz     short 004CC6B2
004CC691    833D 70C95600 0>cmp     dword ptr [56C970], 1
004CC698    75 05           jnz     short 004CC69F
004CC69A    E8 C44C0000     call    004D1363
004CC69F    6A 1C           push    1C
004CC6A1    E8 464B0000     call    004D11EC
004CC6A6    68 FF000000     push    0FF
004CC6AB    E8 9C290000     call    004CF04C
004CC6B0    59              pop     ecx
004CC6B1    59              pop     ecx
004CC6B2    E8 55540000     call    004D1B0C
004CC6B7    8975 FC         mov     dword ptr [ebp-4], esi
004CC6BA    E8 A2520000     call    004D1961
004CC6BF    85C0            test    eax, eax
004CC6C1    7D 08           jge     short 004CC6CB
004CC6C3    6A 1B           push    1B
004CC6C5    E8 D0FEFFFF     call    004CC59A
004CC6CA    59              pop     ecx
004CC6CB    FF15 14814D00   call    dword ptr [<&kernel32.GetCommand>; kernel32.GetCommandLineA
004CC6D1    A3 94DF5600     mov     dword ptr [56DF94], eax
004CC6D6    E8 64510000     call    004D183F
004CC6DB    A3 68C95600     mov     dword ptr [56C968], eax
004CC6E0    E8 B8500000     call    004D179D
004CC6E5    85C0            test    eax, eax
004CC6E7    7D 08           jge     short 004CC6F1
004CC6E9    6A 08           push    8
004CC6EB    E8 AAFEFFFF     call    004CC59A
004CC6F0    59              pop     ecx
004CC6F1    E8 744E0000     call    004D156A
004CC6F6    85C0            test    eax, eax
004CC6F8    7D 08           jge     short 004CC702
004CC6FA    6A 09           push    9
004CC6FC    E8 99FEFFFF     call    004CC59A
004CC701    59              pop     ecx
004CC702    6A 01           push    1
004CC704    E8 73290000     call    004CF07C
004CC709    59              pop     ecx
004CC70A    8945 D8         mov     dword ptr [ebp-28], eax
004CC70D    3BC6            cmp     eax, esi
004CC70F    74 07           je      short 004CC718
004CC711    50              push    eax
004CC712    E8 83FEFFFF     call    004CC59A
004CC717    59              pop     ecx
004CC718    8975 BC         mov     dword ptr [ebp-44], esi
004CC71B    8D45 90         lea     eax, dword ptr [ebp-70]
004CC71E    50              push    eax
004CC71F    FF15 18814D00   call    dword ptr [<&kernel32.GetStartup>; kernel32.GetStartupInfoA
004CC725    E8 E34D0000     call    004D150D
004CC72A    8945 E0         mov     dword ptr [ebp-20], eax
004CC72D    F645 BC 01      test    byte ptr [ebp-44], 1
004CC731    74 06           je      short 004CC739
004CC733    0FB745 C0       movzx   eax, word ptr [ebp-40]
004CC737    EB 03           jmp     short 004CC73C
004CC739    6A 0A           push    0A
004CC73B    58              pop     eax
004CC73C    50              push    eax
004CC73D    FF75 E0         push    dword ptr [ebp-20]
004CC740    56              push    esi
004CC741    56              push    esi
004CC742    FFD7            call    edi
004CC744    50              push    eax
004CC745    E8 3472F3FF     call    0040397E
004CC74A    8BF8            mov     edi, eax
004CC74C    897D D4         mov     dword ptr [ebp-2C], edi
004CC74F    3975 E4         cmp     dword ptr [ebp-1C], esi
004CC752    75 06           jnz     short 004CC75A
004CC754    57              push    edi
004CC755    E8 4D2A0000     call    004CF1A7
004CC75A    E8 6A2A0000     call    004CF1C9

然后程序终止,来到这里:



代码不太会分析,不知道是这里有暗桩,还是附加数据的指针有问题?
恳请诸位高手过目看看,指点一下!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (15)
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
补充:脱壳后是 Microsoft Visual C++ 7.0 [Overlay]
2010-7-30 21:08
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不需要大牛,
中牛、小牛
就能帮我解决吧?
2010-7-31 09:51
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
今天用ReadFile找到了程序读取自身大小的地方,
应该是个自校验的问题了。



搜索了论坛的2篇文章学了下:
【原创】常见自校检分析实例
【原创】脱壳后软件无法运行的原因分析及对策——写给初学者
好像都不能对号入座,
在附近找不到明显的文件“校验和”代码和“比较转跳”代码,
用W32Dasm载入脱壳后的程序,搜索不到原程序大小的数值(十六进制)。

下一步该怎么做?
打开两个窗口,一步一步的查找call中不同的跳转?
盼望高人给指点一下啊!!!
上传的附件:
2010-8-1 21:37
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我上传程序,有兴趣的高手帮着看看。

renjusolver.rar
上传的附件:
2010-8-1 22:36
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
今天打开2个OD窗口,分别载入原程序和脱壳后的程序。
原程序按ESP定律法找到程序的OEP,然后单步跟踪。
有问题的call,f7跟进再f8跟踪。
遇到不同的跳转,修改脱壳程序,
大概修改了十几或二十几个跳转。
保存修改后,脱壳程序可以运行了!

但是只有菜单,没有工具栏,也没有主界面。
菜单中的对话框都能正常打开,
脱壳程序一直在在前面。

原程序界面:



脱壳程序界面:


自校验看来是解除了,
但程序仍不能正常运行。
是程序某些地方需要修复,
还是程序作者故意设置的陷阱?
希望高人能指点一下啊!

原程序在楼上,这是解除自校验后的脱壳程序: 脱壳程序.rar
上传的附件:
2010-8-3 01:23
0
雪    币: 478
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
路过。观望。静待高手出现。
2010-8-3 09:16
0
雪    币: 73
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
弄个网盘传上去啊。
2010-8-3 10:37
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
你应该弄个网盘之类的下载。我们也好下来一块学习。主要穷!
2010-8-3 11:18
0
雪    币: 72
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
你弄个网盘的地址 ,这样比较好。
2010-8-3 11:26
0
雪    币: 121
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
呵呵,谢谢两位关注!
我也是心疼银子的新手,
虚心接受建议了。
两位可以从这里下载:
http://www.brsbox.com/filebox/down/fc/cd0da877e90b5cd892a8d6df809d6363
http://www.brsbox.com/filebox/down/fc/5eac8aac8e7f913768ad333568922176
2010-8-3 13:59
0
雪    币: 25
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
不错,感谢了
2010-8-3 18:52
0
雪    币: 132
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
妈妈的```
2010-8-4 15:52
0
雪    币: 59
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
看雪大哥指导的stasi转载的文章《浅谈脱壳中的附加数据问题(overlay)》
  http://www.pediy.com/bbshtml/BBS6/pediy6923.htm
2010-8-4 16:12
0
雪    币: 1140
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
这位同志不错,已经进入到解密阶段,加油!
2010-8-5 07:27
0
雪    币: 67
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hqm
16
路过,加油吧!
2010-8-5 11:05
0
游客
登录 | 注册 方可回帖
返回
//