找回密码
 注册
搜索
热搜: 回贴

菜鸟分析暗组文件加密器(图)

2010-1-12 20:26| 发布者: admin| 查看: 216| 评论: 0|原作者: 潇潇雨

来源:http://www.hackerm.com.cn
刚才找东西呢,无意中从0809期黑客X档案的光盘上找到了一规款文件加密工具,叫暗组文件加密器Ver1.0,如图1,既然是暗组的东西,应该不会太差吧,我来帮他试试强度。

于是我随手写了个txt,如图2,

给它加密了一下,密码是monster,如图3,

用PEID来查了一下,结果是ASProtect V2.X Registered -> Alexey Solodovnikov *,如图4,

嘿嘿,我这里正好有个脱ASProtect V2.X的脚本,结果脱了半天也没脱下来,老是有Anti,如图5,

用隐藏OD的插件也不行,自己又懒得去分析,哎,牛人的脚本也有缺点啊。
既然脱不了,那我们直接把OD附加上去,然后在OD中运行程序,选中我们加密的文件后,随便输入个密码,点“解密”,结果如图6所示,
那我们在OD中bp MessageBoxA给MessageBox函数下个断点,如图7,

再点一下“解密”,结果OD被断在了这里,如图8,

我们Alt F9让OD返回程序领空,于是OD来到了这里,如图9,
我们看这里的代码:
00401E0D |. 85C0 test eax, eax
00401E0F |. 74 16 je short 00401E27 ; 判断文件名是否为空
00401E11 |. 6A 30 push 30
00401E13 |. 68 E8644100 push 004164E8
00401E18 |. 68 08654100 push 00416508
00401E1D |. 8B4D FC mov ecx, dword ptr [ebp-4]
00401E20 |. E8 490D0000 call 00402B6E ; 提示文件名不能为空
00401E25 |. EB 7C jmp short 00401EA3
00401E27 |> 6A 01 push 1
00401E29 |. 8B4D FC mov ecx, dword ptr [ebp-4]
00401E2C |. E8 490D0000 call 00402B7A ; jmp 到 mfc42d.#5056
00401E31 |. 68 7C634100 push 0041637C
00401E36 |. 8B4D FC mov ecx, dword ptr [ebp-4]
00401E39 |. 83C1 6C add ecx, 6C
00401E3C |. 51 push ecx
00401E3D |. E8 320D0000 call 00402B74 ; jmp 到 mfc42d.#813
00401E42 |. 25 FF000000 and eax, 0FF
00401E47 |. 85C0 test eax, eax ; 判断密码是否为空
00401E49 |. 74 16 je short 00401E61
00401E4B |. 6A 30 push 30
00401E4D |. 68 E8644100 push 004164E8
00401E52 |. 68 BC644100 push 004164BC
00401E57 |. 8B4D FC mov ecx, dword ptr [ebp-4]
00401E5A |. E8 0F0D0000 call 00402B6E ; 提示密码不能为空
00401E5F |. EB 42 jmp short 00401EA3
00401E61 |> 8B4D FC mov ecx, dword ptr [ebp-4]
00401E64 |. 83C1 68 add ecx, 68
00401E67 |. E8 D80C0000 call 00402B44 ; jmp 到 mfc42d.#880
00401E6C |. 50 push eax
00401E6D |. 8B4D FC mov ecx, dword ptr [ebp-4]
00401E70 |. E8 35F2FFFF call 004010AA
00401E75 |. 85C0 test eax, eax ; 比较
00401E77 |. 74 16 je short 00401E8F ; 关键跳转
00401E79 |. 6A 40 push 40
00401E7B |. 68 B4644100 push 004164B4
00401E80 |. 68 FC644100 push 004164FC
00401E85 |. 8B4D FC mov ecx, dword ptr [ebp-4]
00401E88 |. E8 E10C0000 call 00402B6E ; 正确提示
00401E8D |. EB 14 jmp short 00401EA3
00401E8F |> 6A 10 push 10
00401E91 |. 68 A0644100 push 004164A0
00401E96 |. 68 F0644100 push 004164F0
00401E9B |. 8B4D FC mov ecx, dword ptr [ebp-4]
00401E9E |. E8 CB0C0000 call 00402B6E ; 错误提示
我们只要修改一下这些关键跳转就可以实现暴破了,但是有壳,不能修改,哎。
我们在这里下断:
00401E77 |. /74 16 je short 00401E8F ; 关键跳转
再点“解密”,OD就被断在了这里,这时我们在右边的寄存器窗口中修改一下符号位ZF的值,如图10,

现在让OD运行起来,结果如图11,

它说注册成功了,我们打开txt,,如图12,

还是没原来的样子,哎,OD这小子,什么时候学会骗人了?
再来仔细看一下,发现这里是解密函数:
00401E70 |. E8 35F2FFFF call 004010AA
我们F7跟进,再跟踪几下,到了这里:
0040257C > \68 24654100 push 00416524 ; /s2 = "Cute"
00402581 . 8D55 DC lea edx, dword ptr [ebp-24] ; |
00402584 . 52 push edx ; |s1
00402585 . E8 A6060000 call 00402C30 ; \strcmp
这里是比较密码的地方,我们往下看:
0040258D . 85C0 test eax, eax ; 比较
0040258F . 74 07 je short 00402598 ; 密码正确则跳
00402591 . 33C0 xor eax, eax ; eax清零
00402593 . E9 0E010000 jmp 004026A6 ; 错误返回
我们在这里下断:
0040258F . /74 07 je short 00402598 ; 密码正确则跳
修改ZF的值,让它正确跳转,它提示“解密成功”,打开txt看一下,成功了,以下是它的解密过程:
004025C5 > /8B4D D4 mov ecx, dword ptr [ebp-2C]
004025C8 . |83C1 01 add ecx, 1
004025CB . |894D D4 mov dword ptr [ebp-2C], ecx
004025CE > |8B55 D4 mov edx, dword ptr [ebp-2C]
004025D1 . |3B55 E4 cmp edx, dword ptr [ebp-1C]
004025D4 . |7D 32 jge short 00402608
004025D6 . |8B45 F0 mov eax, dword ptr [ebp-10]
004025D9 . |8A48 60 mov cl, byte ptr [eax 60]
004025DC . |8B55 EC mov edx, dword ptr [ebp-14]
004025DF . |0355 D4 add edx, dword ptr [ebp-2C]
004025E2 . |8A02 mov al, byte ptr [edx]
004025E4 . |32C1 xor al, cl
004025E6 . |8B4D EC mov ecx, dword ptr [ebp-14]
004025E9 . |034D D4 add ecx, dword ptr [ebp-2C]
004025EC . |8801 mov byte ptr [ecx], al
004025EE . |8B55 E4 mov edx, dword ptr [ebp-1C]
004025F1 . |83EA 05 sub edx, 5
004025F4 . |8B45 EC mov eax, dword ptr [ebp-14]
004025F7 . |0345 D4 add eax, dword ptr [ebp-2C]
004025FA . |8A08 mov cl, byte ptr [eax]
004025FC . |32CA xor cl, dl
004025FE . |8B55 EC mov edx, dword ptr [ebp-14]
00402601 . |0355 D4 add edx, dword ptr [ebp-2C]
00402604 . |880A mov byte ptr [edx], cl
00402606 .^\EB BD jmp short 004025C5
这次分析是很弱智,老鸟表BS我啊,嘿嘿!


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 11:34 , Processed in 0.215449 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部