【破文作者】 dfui
【作者主页】 http://dfui.ys168.com/
【 E-mail 】 qxqasdf@163.com
【 作者QQ 】 3374972
【文章题目】 分享一种壳,适合菜鸟
【软件名称】 简易记事本1.9
【下载地址】 http://try.nease.net/bdiary.exe
----------------------------------------------------------------------------------------------
【加密方式】 未知*
【破解工具】 Ollydbg、PEiD、ImportREC 1.6
【软件限制】 30天试用。时间限制
【破解平台】 WinXP SP2
----------------------------------------------------------------------------------------------
【软件简介】
简易日记本是一款用于在电脑上写日记和收集资料的软件,支持常用的文字编辑排版功能,和Word2000操作类似,简单易用。
软件特点:
可以记录日记、资料和文件,树状结构显示,直观明了;
编辑器和RTF格式兼容,可以导入导出Doc,RTF,Html,Txt文件;
编辑器可以插入表情图标,插入图片,背景图片,可以打印预览;
可以保存附件;
丰富的表情图标(QQ,MSN,泡泡......),节点图标自定义;
【文章简介】
第一次脱未知壳。学了好多长时间。从未脱过,试练。有不对的地方还请多多指正。适合练习手工脱。
----------------------------------------------------------------------------------------------
【破解过程】
设置Ollydbg忽略所有的异常选项,用IsDebug 1.4插件去掉Ollydbg的调试器标志。
进入OD来到这里:
008B6082 > 60 PUSHAD
008B6083 E8 00000000 CALL bdiary.008B6088
008B6088 5D POP EBP
008B6089 81ED 22A54500 SUB EBP,bdiary.0045A522
008B608F 8DBD 1CA54500 LEA EDI,DWORD PTR SS:[EBP+45A51C]
008B6095 81EF 82000000 SUB EDI,82
008B609B 89BD 84A84500 MOV DWORD PTR SS:[EBP+45A884],EDI
008B60A1 8B4F 18 MOV ECX,DWORD PTR DS:[EDI+18]
008B60A4 89FE MOV ESI,EDI
008B60A6 0377 14 ADD ESI,DWORD PTR DS:[EDI+14]
008B60A9 8B47 10 MOV EAX,DWORD PTR DS:[EDI+10]
008B60AC E8 2A060000 CALL bdiary.008B66DB
008B60B1 8B4F 24 MOV ECX,DWORD PTR DS:[EDI+24]
008B60B4 89FE MOV ESI,EDI
008B60B6 0377 20 ADD ESI,DWORD PTR DS:[EDI+20]
008B60B9 8B47 1C MOV EAX,DWORD PTR DS:[EDI+1C]
008B60BC E8 1A060000 CALL bdiary.008B66DB
008B60C1 6A 00 PUSH 0
008B60C3 FF95 F4A84500 CALL DWORD PTR SS:[EBP+45A8F4]
008B60C9 8985 24A84500 MOV DWORD PTR SS:[EBP+45A824],EAX
008B60CF E8 15060000 CALL bdiary.008B66E9
008B60D4 0F82 7F020000 JB bdiary.008B6359
008B60DA E8 13070000 CALL bdiary.008B67F2
008B60DF 0F82 F7010000 JB bdiary.008B62DC
008B60E5 8BBD 84A84500 MOV EDI,DWORD PTR SS:[EBP+45A884]
008B60EB 68 00040000 PUSH 400
008B60F0 6A 00 PUSH 0
008B60F2 FF95 04A94500 CALL DWORD PTR SS:[EBP+45A904]
008B60F8 09C0 OR EAX,EAX
008B60FA 0F84 DC010000 JE bdiary.008B62DC
008B6100 8985 2CA84500 MOV DWORD PTR SS:[EBP+45A82C],EAX......
...............省略。。F8慢慢来到下面
008B61EE E8 49060000 CALL bdiary.008B683C
008B61F3 8B95 58A84500 MOV EDX,DWORD PTR SS:[EBP+45A858]
008B61F9 0357 2C ADD EDX,DWORD PTR DS:[EDI+2C]
008B61FC 83C2 04 ADD EDX,4
008B61FF 8B8D 60A84500 MOV ECX,DWORD PTR SS:[EBP+45A860]
008B6205 2B4F 2C SUB ECX,DWORD PTR DS:[EDI+2C]
008B6208 83E9 04 SUB ECX,4
008B620B E8 2C060000 CALL bdiary.008B683C
008B6210 3B47 30 CMP EAX,DWORD PTR DS:[EDI+30]
008B6213 75 15 JNZ SHORT bdiary.008B622A
008B6215 8A47 49 MOV AL,BYTE PTR DS:[EDI+49]
008B6218 08C0 OR AL,AL
008B621A 0F84 BC000000 JE bdiary.008B62DC ; 大跳转跟随
来到这里看仔细
008B62DC 8DB5 2CA84500 LEA ESI,DWORD PTR SS:[EBP+45A82C]
008B62E2 8DBD 44A84500 LEA EDI,DWORD PTR SS:[EBP+45A844]
008B62E8 39FE CMP ESI,EDI
008B62EA 7D 12 JGE SHORT bdiary.008B62FE
008B62EC 8B06 MOV EAX,DWORD PTR DS:[ESI]
008B62EE 83C6 04 ADD ESI,4
008B62F1 09C0 OR EAX,EAX
008B62F3 ^ 74 F3 JE SHORT bdiary.008B62E8
008B62F5 50 PUSH EAX
008B62F6 FF95 08A94500 CALL DWORD PTR SS:[EBP+45A908]
008B62FC ^ EB EA JMP SHORT bdiary.008B62E8 ; F4过
008B62FE 8DB5 58A84500 LEA ESI,DWORD PTR SS:[EBP+45A858]
008B6304 8DBD 60A84500 LEA EDI,DWORD PTR SS:[EBP+45A860]
008B630A 39FE CMP ESI,EDI
008B630C 7D 12 JGE SHORT bdiary.008B6320
008B630E 8B06 MOV EAX,DWORD PTR DS:[ESI]
008B6310 83C6 04 ADD ESI,4
008B6313 09C0 OR EAX,EAX
008B6315 ^ 74 F3 JE SHORT bdiary.008B630A
008B6317 50 PUSH EAX
008B6318 FF95 20A94500 CALL DWORD PTR SS:[EBP+45A920]
008B631E ^ EB EA JMP SHORT bdiary.008B630A ; F4过
008B6320 8DB5 44A84500 LEA ESI,DWORD PTR SS:[EBP+45A844]
008B6326 8DBD 58A84500 LEA EDI,DWORD PTR SS:[EBP+45A858]
008B632C 39FE CMP ESI,EDI
008B632E 7D 12 JGE SHORT bdiary.008B6342
008B6330 8B06 MOV EAX,DWORD PTR DS:[ESI]
008B6332 83C6 04 ADD ESI,4
008B6335 09C0 OR EAX,EAX
008B6337 ^ 74 F3 JE SHORT bdiary.008B632C
008B6339 50 PUSH EAX
008B633A FF95 14A94500 CALL DWORD PTR SS:[EBP+45A914]
008B6340 ^ EB EA JMP SHORT bdiary.008B632C ; F4过
008B6342 8B85 80A84500 MOV EAX,DWORD PTR SS:[EBP+45A880]
008B6348 09C0 OR EAX,EAX
008B634A 74 0D JE SHORT bdiary.008B6359
008B634C 896C24 1C MOV DWORD PTR SS:[ESP+1C],EBP
008B6350 61 POPAD
008B6351 6A 00 PUSH 0
008B6353 FF90 00A94500 CALL DWORD PTR DS:[EAX+45A900]
008B6359 8BBD 84A84500 MOV EDI,DWORD PTR SS:[EBP+45A884]
008B635F E8 07040000 CALL bdiary.008B676B ; F4过
008B6364 ^ 72 E6 JB SHORT bdiary.008B634C ; 运行一次(不知为什老是运行)
008B6366 8B85 24A84500 MOV EAX,DWORD PTR SS:[EBP+45A824]
008B636C 0347 28 ADD EAX,DWORD PTR DS:[EDI+28]
008B636F 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
008B6373 61 POPAD
008B6374 FFE0 JMP EAX 这里就跳了。
跟随。。。来到这里
008B2001 60 PUSHAD
008B2002 E8 03000000 CALL bdiary.008B200A ; F8不行F4也不行F7进去就出不来了。
008B2007 - E9 EB045D45 JMP 45E824F7
008B200C 55 PUSH EBP 必须用F4来这里。上面两个都启动程序
008B200D C3 RETN
008B200E E8 01000000 CALL bdiary.008B2014 ; F4过
008B2013 EB 5D JMP SHORT bdiary.008B2072
下面来到这里。。。。
008B2180 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS>
008B2182 8BC8 MOV ECX,EAX
008B2184 83E1 03 AND ECX,3
008B2187 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[>
008B2189 5E POP ESI
008B218A 68 00800000 PUSH 8000
008B218F 6A 00 PUSH 0
008B2191 FFB5 52010000 PUSH DWORD PTR SS:[EBP+152]
008B2197 FF95 51050000 CALL DWORD PTR SS:[EBP+551]
008B219D 83C6 08 ADD ESI,8
008B21A0 833E 00 CMP DWORD PTR DS:[ESI],0
008B21A3 ^ 0F85 1EFFFFFF JNZ bdiary.008B20C7 ; F4过
008B21A9 68 00800000 PUSH 8000
008B21AE 6A 00 PUSH 0
008B21B0 FFB5 56010000 PUSH DWORD PTR SS:[EBP+156]
008B21B6 FF95 51050000 CALL DWORD PTR SS:[EBP+551]
008B21BC 8B9D 31050000 MOV EBX,DWORD PTR SS:[EBP+531]
。。。。。。。
008B21C6 8B03 MOV EAX,DWORD PTR DS:[EBX]
008B21C8 8785 35050000 XCHG DWORD PTR SS:[EBP+535],EAX
008B21CE 8B95 22040000 MOV EDX,DWORD PTR SS:[EBP+422]
008B21D4 8B85 2D050000 MOV EAX,DWORD PTR SS:[EBP+52D]
008B21DA 2BD0 SUB EDX,EAX
008B21DC 74 79 JE SHORT bdiary.008B2257 ; 大跳转跟随
008B21DE 8BC2 MOV EAX,EDX
来到这里。。。。
008B22F6 FFB5 45050000 PUSH DWORD PTR SS:[EBP+545]
008B22FC FF95 490F0000 CALL DWORD PTR SS:[EBP+F49]
008B2302 85C0 TEST EAX,EAX
008B2304 5B POP EBX
008B2305 75 6F JNZ SHORT bdiary.008B2376 ; 大跳转跟随
008B2307 F7C3 00000080 TEST EBX,80000000
来这里008B2376 8907 MOV DWORD PTR DS:[EDI],EAX ; ntdll.RtlDeleteCriticalSection
008B2378 8385 49050000 0>ADD DWORD PTR SS:[EBP+549],4
008B237F ^ E9 32FFFFFF JMP bdiary.008B22B6 ; F4过
008B2384 8906 MOV DWORD PTR DS:[ESI],EAX
008B2386 8946 0C MOV DWORD PTR DS:[ESI+C],EAX
008B2389 8946 10 MOV DWORD PTR DS:[ESI+10],EAX
008B238C 83C6 14 ADD ESI,14
008B238F 8B95 22040000 MOV EDX,DWORD PTR SS:[EBP+422]
008B2395 ^ E9 EBFEFFFF JMP bdiary.008B2285 ; F4过
008B239A B8 D4DB2700 MOV EAX,27DBD4
。。。。。。。。。来到这里
008B239F 50 PUSH EAX
008B23A0 0385 22040000 ADD EAX,DWORD PTR SS:[EBP+422]
008B23A6 59 POP ECX
008B23A7 0BC9 OR ECX,ECX
008B23A9 8985 A8030000 MOV DWORD PTR SS:[EBP+3A8],EAX
008B23AF 61 POPAD 看到光明了。往下走
008B23B0 75 08 JNZ SHORT bdiary.008B23BA
008B23B2 B8 01000000 MOV EAX,1
008B23B7 C2 0C00 RETN 0C
008B23BA 68 D4DB6700 PUSH bdiary.0067DBD4
008B23BF C3 RETN
跳转后来到这里。光明一片。。。。。
0067DBD4 55 PUSH EBP 脱壳在当前进程。
0067DBD5 8BEC MOV EBP,ESP
0067DBD7 83C4 F0 ADD ESP,-10
0067DBDA 53 PUSH EBX
0067DBDB B8 44D46700 MOV EAX,bdiary.0067D444
0067DBE0 E8 9397D8FF CALL bdiary.00407378
0067DBE5 8B1D 0CC66800 MOV EBX,DWORD PTR DS:[68C60C] ; bdiary.0068DC3C
0067DBEB 8B03 MOV EAX,DWORD PTR DS:[EBX]
0067DBED E8 1699DFFF CALL bdiary.00477508
终天搞定了。下面是修复表。入口点偏移了,我这里有提示。然后OEP用:0027DBD4
搜索IAT 获取输入表全部有效。修复完工。
可以正常起用了。用PEID查为DEIPHI6。0 70的编译。
菜鸟可能很幸运。。。。。搞了几天晚上终于搞定了。
----------------------------------------------------------------------------------------------
【破解心得】
看了脱壳的ESP定律。及5种方法。一一试过。还是第一种好用。一步一个脚印准确
----------------------------------------------------------------------------------------------
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
【版权声明】 本文纯属技术交流, 别无它途。转载请注明作者并保持文章的完整, 谢谢!
----------------------------------------------------------------------------------------------
文章写于2005-07-03 12:32:48
[课程]FART 脱壳王!加量不加价!FART作者讲授!