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

脱壳技术,Blaze Media Pro5.05脱壳+基本修复CC(int3)+破解(三)(图),Media

2010-1-30 18:19| 发布者: admin| 查看: 104| 评论: 0|原作者: 千年缘


脱壳技术,Blaze Media Pro5.05脱壳+基本修复CC(int3)+破解(三)(图),Media
2008年06月23日 星期一 下午 04:03
在(二)中我们得到了四张表 :



int3地址表 (实际地址 1)

跳转类型表

跳转量表

跳转命令长度表 (实际长度-1)





在OD中打开已脱壳程序,现在壳已经是垃圾了,我们就用用它的空间吧。把前面保存的连续的四个表拷贝到壳开始的空间,我这儿是9d1000。得到:

9d1000~9d5f00 int3地址表

9d5f00~9dae00 跳转类型表

9dae00~9dfd00 跳转量表

9dfd00~9e4c00 跳转命令长度表





随便找个地方写入下列代码:



009E4C04 XOR ECX, ECX

009E4C06 MOV EAX, DWORD PTR DS:[ECX*4 9D1000] //取出int3地址

009E4C0E CMP EAX, 0

009E4C11 JE SHORT dumped_.009E4C80

009E4C13 MOVZX EDX, BYTE PTR DS:[ECX 9D5F00] //跳转类型

009E4C1A MOV EBX, DWORD PTR DS:[ECX*4 9DAE00] //跳转量

009E4C22 MOVZX EDI, BYTE PTR DS:[ECX 9DFD00] //跳转命令长度

009E4C29 DEC EAX

009E4C2A INC ECX

009E4C2B CMP DWORD PTR DS:[EAX], EC8B55CC //进一步排除无效的int3

009E4C31 JE SHORT dumped_.009E4C06

009E4C33 CMP BYTE PTR DS:[EAX-1], 0CC

009E4C37 JE SHORT dumped_.009E4C06

009E4C39 CMP BYTE PTR DS:[EAX 1], 0CC

009E4C3D JE SHORT dumped_.009E4C06

009E4C3F NOP

009E4C40 CMP EDI, 1

009E4C43 JNZ SHORT dumped_.009E4C4E

009E4C45 MOV BYTE PTR DS:[EAX], DL

009E4C47 DEC BL

009E4C49 MOV BYTE PTR DS:[EAX 1], BL

009E4C4C NOP

009E4C4D NOP

009E4C4E CMP EDI, 5

009E4C51 JNZ SHORT dumped_.009E4C64

009E4C53 MOV BYTE PTR DS:[EAX], 0F

009E4C56 ADD DL, 10

009E4C59 MOV BYTE PTR DS:[EAX 1], DL

009E4C5C SUB EBX, 5

009E4C5F MOV DWORD PTR DS:[EAX 2], EBX

009E4C62 NOP

009E4C63 NOP

009E4C64 CMP EDI, 4

009E4C67 JNZ SHORT dumped_.009E4C79

009E4C69 CMP DL, 0EB

009E4C6C JNZ SHORT dumped_.009E4C79

009E4C6E MOV BYTE PTR DS:[EAX], 0E9

009E4C71 SUB EBX, 4

009E4C74 MOV DWORD PTR DS:[EAX 1], EBX

009E4C77 NOP

009E4C78 NOP

009E4C79 JMP dumped_.009E4BFA

009E4C7E NOP

009E4C7F NOP

009E4C80 NOP



在009E4C04处New origin here,在009E4C80下断,运行停住。修复了大部分int3。把修复好的程序另存为一文件。



现在工作结束了吗?答案是没有。你运行修复的文件看看,还出错。如下代码:





006539B4 85C9 TEST ECX, ECX

006539B6 CC INT3

006539B7 7A C7 JPE SHORT dumped_.00653980

006539B9 45 INC EBP

006539BA FC CLD

006539BB 2E:0000 ADD BYTE PTR CS:[EAX], AL

006539BE 00CC ADD AH, CL //这里的cc也是int3

006539C0 B7 8A MOV BH, 8A

006539C2 71 0A JNO SHORT dumped_.006539CE





把006539B6处的int3修复好以后,变成如下代码:



006539B4 85C9 TEST ECX, ECX

006539B6 75 12 JNZ SHORT dumped_1.006539CA

006539B8 C745 FC 2E000000 MOV DWORD PTR SS:[EBP-4], 2E

006539BF CC INT3

006539C0 B7 8A MOV BH, 8A

006539C2 71 0A JNO SHORT dumped_1.006539CE



这时在006539BF处的在OD才显示正确的int3。



怎么办?你得把修复的文件按照(二)(三)中的步骤再来一遍。麻烦吧。经过两次修复后,程序终于可以正常运行了,但有些功能不能用,还没破解。





(三)破解



破解我就不详细说了。vb程序,挺麻烦的。



1、功能破解:

从401000开始查找unicode码“DAYSLEFT”,在4876b0。在4876c8处有一unicode码“20",清0即可。

从401000开始查找unicode码“DAYSLEFT”,在4876b0。在4876c8处有一unicode码“20",改成0即可。



2、about菜单显示:



从401000开始查找unicode码“Registered to”,在49e904。然后查找命令“push 49e904”可以定位about菜单的代码。



00842120 PUSH dumped_c.0049E904 ; UNICODE "Registered To: "

00842125 PUSH EDX

00842126 MOV EBX, DWORD PTR DS:[ESI]

00842128 CALL DWORD PTR DS:[<&msvbvm60.__vbaStrCa>; msvbvm60.__vbaStrCat



修改:

00841F4F JE dumped_c.0084216F JE->JNE



00841FF2 JE BMP_crac.008420AE JE->JNE







pyzpyz

2004.4.22






最新评论

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

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

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部