首页
社区
课程
招聘
E-MD5 v2.0 CrackMe By LvTx[OCN]的UnPack&Crack
发表于: 2005-12-11 15:33 5301

E-MD5 v2.0 CrackMe By LvTx[OCN]的UnPack&Crack

2005-12-11 15:33
5301
〖作  者〗小虾

〖标  题〗E-MD5 v2.0 CrackMe By LvTx[OCN]的UnPack&Crack

〖加密方式〗ASProtect 2.1x SKE + nSpack 3.4 + Aspack 2.12-Scrambler +
            nSpack 3.4 + ASPack 2.12(这么多壳脱之前不知道呀,后来是从作者那里知道的)与MD5验效。

〖软件名字〗E-MD5 v2.0 CrackMe By LvTx[OCN]

〖下载地址〗http://ocn.e5v.com/bbs1/viewthread.php?tid=980&fpage=1

〖软件功能〗用来计算文件的MD5值

〖破解声明〗纯粹是个人兴趣,没其它意思。

〖版权声明〗本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

//用OD载入程序,程序载入到里。首先,用插件去掉调试标志。不忽略所有异常,F9运行程序
//当程序遇到异常后用Shift+F9忽略异常继续运行程序。
004A6001 >  60              PUSHAD
004A6002    E8 03000000     CALL E-MD5.004A600A
004A6007  - E9 EB045D45     JMP 45A764F7
004A600C    55              PUSH EBP
004A600D    C3              RETN

//大约经过25~26个异常,来到这里最后一个异常。先停下。
//在00C7FAAB处下一个断点(注意中断程序后要将断点取消,以免后面的CRC验效出错)。
//接着Shift+F9运行程序。
00C7FAA5    C700 EFCA5C85   MOV DWORD PTR DS:[EAX],855CCAEF
//中断在这里。接着再在00C7FBF5地址处下一个断点,F9运行程序。
//(注意中断程序后要将断点取消,以免后面的CRC验效出错)。
00C7FAAB    67:64:8F06 0000 POP DWORD PTR FS:[0]
00C7FAB1    83C4 04         ADD ESP,4
00C7FAB4    83E8 AF         SUB EAX,-51
00C7FAB7    83C8 4B         OR EAX,4B
00C7FABA    58              POP EAX
00C7FABB    A1 0C38C800     MOV EAX,DWORD PTR DS:[C8380C]
00C7FAC0    8B00            MOV EAX,DWORD PTR DS:[EAX]
00C7FAC2    8B68 1C         MOV EBP,DWORD PTR DS:[EAX+1C]
00C7FAC5    A1 0C38C800     MOV EAX,DWORD PTR DS:[C8380C]
00C7FACA    8B00            MOV EAX,DWORD PTR DS:[EAX]
00C7FACC    8B00            MOV EAX,DWORD PTR DS:[EAX]
00C7FACE    894424 04       MOV DWORD PTR SS:[ESP+4],EAX
00C7FAD2    A1 0C38C800     MOV EAX,DWORD PTR DS:[C8380C]
00C7FAD7    8B00            MOV EAX,DWORD PTR DS:[EAX]
00C7FAD9    8D78 18         LEA EDI,DWORD PTR DS:[EAX+18]
00C7FADC    A1 8C37C800     MOV EAX,DWORD PTR DS:[C8378C]
00C7FAE1    8858 08         MOV BYTE PTR DS:[EAX+8],BL
00C7FAE4    833F 00         CMP DWORD PTR DS:[EDI],0
00C7FAE7    75 1D           JNZ SHORT 00C7FB06
00C7FAE9    83C5 20         ADD EBP,20
00C7FAEC    A1 8436C800     MOV EAX,DWORD PTR DS:[C83684]
00C7FAF1    8078 0A 00      CMP BYTE PTR DS:[EAX+A],0
00C7FAF5    75 0F           JNZ SHORT 00C7FB06
00C7FAF7    B8 1F000000     MOV EAX,1F
00C7FAFC    E8 C32DFDFF     CALL 00C528C4
00C7FB01    C1E0 02         SHL EAX,2
00C7FB04    2BE8            SUB EBP,EAX
00C7FB06    E8 A9D0FFFF     CALL 00C7CBB4
00C7FB0B    8BD8            MOV EBX,EAX
00C7FB0D    833D E4B5C800 0>CMP DWORD PTR DS:[C8B5E4],0
00C7FB14    74 15           JE SHORT 00C7FB2B
00C7FB16    6A 04           PUSH 4
00C7FB18    B9 E4B5C800     MOV ECX,0C8B5E4
00C7FB1D    8D4424 04       LEA EAX,DWORD PTR SS:[ESP+4]
00C7FB21    BA 04000000     MOV EDX,4
00C7FB26    E8 3944FEFF     CALL 00C63F64
00C7FB2B    833D 14B6C800 0>CMP DWORD PTR DS:[C8B614],0
00C7FB32    74 15           JE SHORT 00C7FB49
00C7FB34    6A 0C           PUSH 0C
00C7FB36    B9 14B6C800     MOV ECX,0C8B614
00C7FB3B    8D4424 04       LEA EAX,DWORD PTR SS:[ESP+4]
00C7FB3F    BA 04000000     MOV EDX,4
00C7FB44    E8 1B44FEFF     CALL 00C63F64
00C7FB49    833F 00         CMP DWORD PTR DS:[EDI],0
00C7FB4C    74 08           JE SHORT 00C7FB56
00C7FB4E    8B0424          MOV EAX,DWORD PTR SS:[ESP]
00C7FB51    A3 24B6C800     MOV DWORD PTR DS:[C8B624],EAX
00C7FB56    8B07            MOV EAX,DWORD PTR DS:[EDI]
00C7FB58    894424 08       MOV DWORD PTR SS:[ESP+8],EAX
00C7FB5C    896C24 10       MOV DWORD PTR SS:[ESP+10],EBP
00C7FB60    8B0424          MOV EAX,DWORD PTR SS:[ESP]
00C7FB63    894424 14       MOV DWORD PTR SS:[ESP+14],EAX
00C7FB67    A1 8C37C800     MOV EAX,DWORD PTR DS:[C8378C]
00C7FB6C    8818            MOV BYTE PTR DS:[EAX],BL
00C7FB6E    A1 B837C800     MOV EAX,DWORD PTR DS:[C837B8]
00C7FB73    C600 E1         MOV BYTE PTR DS:[EAX],0E1
00C7FB76    E8 65ECFEFF     CALL 00C6E7E0
00C7FB7B    8B15 7837C800   MOV EDX,DWORD PTR DS:[C83778]
00C7FB81    8802            MOV BYTE PTR DS:[EDX],AL
00C7FB83    A1 0CB6C800     MOV EAX,DWORD PTR DS:[C8B60C]
00C7FB88    E8 7B81FFFF     CALL 00C77D08
00C7FB8D    A1 7837C800     MOV EAX,DWORD PTR DS:[C83778]
00C7FB92    8038 00         CMP BYTE PTR DS:[EAX],0
00C7FB95    74 26           JE SHORT 00C7FBBD
00C7FB97    A1 5837C800     MOV EAX,DWORD PTR DS:[C83758]
00C7FB9C    C600 EA         MOV BYTE PTR DS:[EAX],0EA
00C7FB9F    B8 32000000     MOV EAX,32
00C7FBA4    E8 1B2DFDFF     CALL 00C528C4
00C7FBA9    2905 20B6C800   SUB DWORD PTR DS:[C8B620],EAX
00C7FBAF    B8 64000000     MOV EAX,64
00C7FBB4    E8 0B2DFDFF     CALL 00C528C4
00C7FBB9    014424 04       ADD DWORD PTR SS:[ESP+4],EAX
00C7FBBD    A1 20B6C800     MOV EAX,DWORD PTR DS:[C8B620]
00C7FBC2    894424 0C       MOV DWORD PTR SS:[ESP+C],EAX
00C7FBC6    8B4424 04       MOV EAX,DWORD PTR SS:[ESP+4]
00C7FBCA    894424 18       MOV DWORD PTR SS:[ESP+18],EAX
00C7FBCE    A1 0CB6C800     MOV EAX,DWORD PTR DS:[C8B60C]
00C7FBD3    E8 3C30FDFF     CALL 00C52C14
00C7FBD8    A1 B837C800     MOV EAX,DWORD PTR DS:[C837B8]
00C7FBDD    C600 E3         MOV BYTE PTR DS:[EAX],0E3
00C7FBE0    8D5424 08       LEA EDX,DWORD PTR SS:[ESP+8]
00C7FBE4    A1 2CB6C800     MOV EAX,DWORD PTR DS:[C8B62C]
00C7FBE9    E8 7695FFFF     CALL 00C79164
00C7FBEE    E8 3160FFFF     CALL 00C75C24
00C7FBF3    8BC6            MOV EAX,ESI

//最后程序将中断在这里。这时用Alt+M打开内存镜像窗口。

//在内存窗口中的E-MD5的code段下一个内存访问断点,F9运行程序。
00C7FBF5    E8 1A30FDFF     CALL 00C52C14
00C7FBFA    E8 B5D0FFFF     CALL 00C7CCB4
00C7FBFF    83C4 2C         ADD ESP,2C
00C7FC02    5D              POP EBP
00C7FC03    5F              POP EDI
00C7FC04    5E              POP ESI
00C7FC05    5B              POP EBX
00C7FC06    C3              RETN

//内存访问中断在这里(呵呵,这里变成DB字节码了),不过,没关系。
//用右键->分析->从模块删除分析就能看清这些字节码的真面目了。
0041E1A1      9C            DB 9C
0041E1A2      60            DB 60                                    ;  CHAR '`'
0041E1A3      E8            DB E8
0041E1A4      00            DB 00
0041E1A5      00            DB 00
0041E1A6      00            DB 00

//删除模块分析后,代码将显示成这样(这样就比较好看一些了:P)。
//可以看出,这里还有一个外壳。呵呵。。。
//OK,我们继续脱壳。
//用Ctrl+S键打开查找命令窗口。在窗口中输入:
popad
popfd
//按查找命令。
0041E1A1    9C              PUSHFD
0041E1A2    60              PUSHAD
0041E1A3    E8 00000000     CALL E-MD5.0041E1A8
0041E1A8    5D              POP EBP
0041E1A9    83ED 07         SUB EBP,7
0041E1AC    8D85 DBFEFFFF   LEA EAX,DWORD PTR SS:[EBP-125]

//找到这里。
0041E407    61              POPAD
0041E408    9D              POPFD
0041E409    B8 01000000     MOV EAX,1
0041E40E    C2 0C00         RETN 0C
0041E411    61              POPAD
0041E412    9D              POPFD
//在这里下一个断点,F9运行程序。
0041E413  ^ E9 1954FEFF     JMP E-MD5.00403831 ;套用Fly的话,这里飞向光明之巅(OEP)

//程序的OEP,在这里可以用OD脱壳修复了。
//不过该程序还有附加数据要修复,修复之后还有MD5之类的验效要去除才行。
//第一步,修复尾部附加数据:首先。
//用WinHex(用UltraEdit也可以)打开原程序,将滚动条拉到最下面,接着往上找全0的部分。
//我这里找到的附加数据开始位置是在文件偏移的:0002BC00开始
//从这个偏移址开始到最后的数据用WinHex写入到脱壳后的程序尾部,并保存
//(注意,必须要先修复程序的输入表先。)
//这样,程序尾部附加数据也修复好了,最后就是去掉程序的MD5验效了。
//用OD加载脱壳修复后的程序。下bp 417EA6和bp 00417EFE断点。
//接着F9运行程序。
00403831    55              PUSH EBP
00403832    8BEC            MOV EBP,ESP
00403834    6A FF           PUSH -1
00403836    68 F0624000     PUSH E-MD5.004062F0
0040383B    68 A44C4000     PUSH E-MD5.00404CA4
00403840    64:A1 00000000  MOV EAX,DWORD PTR FS:[0]
00403846    50              PUSH EAX
00403847    64:8925 0000000>MOV DWORD PTR FS:[0],ESP
0040384E    83EC 58         SUB ESP,58
00403851    53              PUSH EBX
00403852    56              PUSH ESI
00403853    57              PUSH EDI

//中断在这里。
00417EA2    50              PUSH EAX
//将这一句修改成push eax就可以去掉这个验效。
00417EA3    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00417EA6    E8 A4ABFFFF     CALL UNPACK_.00412A4F  ;中断在这里,第一次验效,必须返回0。
00417EAB    83C4 08         ADD ESP,8
00417EAE    83F8 00         CMP EAX,0
00417EB1    B8 00000000     MOV EAX,0
00417EB6    0F95C0          SETNE AL
00417EB9    8945 E0         MOV DWORD PTR SS:[EBP-20],EAX

//修改成这样。
00417EA2    50              PUSH EAX
00417EA3    50              PUSH EAX
00417EA4    90              NOP
00417EA5    90              NOP
00417EA6    E8 A4ABFFFF     CALL UNPACK_.00412A4F
00417EAB    83C4 08         ADD ESP,8
00417EAE    83F8 00         CMP EAX,0
00417EB1    B8 00000000     MOV EAX,0
00417EB6    0F95C0          SETNE AL
00417EB9    8945 E0         MOV DWORD PTR SS:[EBP-20],EAX

//和中断在这里。
00417FFA    50              PUSH EAX
//和上面一样,修改成push eax
00417FFB    FF75 F4         PUSH DWORD PTR SS:[EBP-C]
00417FFE    E8 4CAAFFFF     CALL UNPACK_.00412A4F  ;中断在这里。第二次验效,这里必须返回0。
00418003    83C4 08         ADD ESP,8
00418006    83F8 00         CMP EAX,0
00418009    B8 00000000     MOV EAX,0
0041800E    0F94C0          SETE AL
00418011    8945 E0         MOV DWORD PTR SS:[EBP-20],EAX

//修改成这样
00417FFA    50              PUSH EAX
00417FFB    50              PUSH EAX
00417FFC    90              NOP
00417FFD    90              NOP
00417FFE    E8 4CAAFFFF     CALL UNPACK_.00412A4F
00418003    83C4 08         ADD ESP,8
00418006    83F8 00         CMP EAX,0
00418009    B8 00000000     MOV EAX,0
0041800E    0F94C0          SETE AL
00418011    8945 E0         MOV DWORD PTR SS:[EBP-20],EAX
现在程序可以正常运行了。脱壳和修复完成。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
附件本地下载(注:该程序是易语言编写的):
附件分卷一:
附件:e-md5.part1.rar

附件分卷二:
附件:e-md5.part2.rar

附件分卷三:
附件:e-md5.part3.rar
2005-12-11 15:58
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
顶!
2005-12-11 16:10
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
good ..
2005-12-11 16:40
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
ASProtect 2.1x SKE + nSpack 3.4 + Aspack 2.12-Scrambler +  nSpack 3.4 + ASPack 2.12
应该把ASProtect放在里面
2005-12-11 16:58
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
最初由 fly 发布
ASProtect 2.1x SKE + nSpack 3.4 + Aspack 2.12-Scrambler + nSpack 3.4 + ASPack 2.12
应该把ASProtect放在里面

呵呵,说的也是,Aspack在最里面,反而令ASProtect抽代码和加密IAT的功能没有发挥作用。
2005-12-11 17:18
0
雪    币: 556
活跃值: (2298)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
7
E的东西用aspr是浪费
2005-12-12 01:32
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
e的东西,加aspr跟没加一样.
2005-12-12 09:20
0
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
9
强,来学习的说!!!
2005-12-13 01:47
0
雪    币: 212
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
自叹不如啊!
2005-12-13 12:59
0
游客
登录 | 注册 方可回帖
返回
//