|
[更新]unpackme
从实招来,什么壳? |
|
linson的eXcalibur V1.03脱壳―eXcalibur.exe 主程序
最初由 shaitan 发布 大概播放midi有问题 |
|
|
|
请问:像这种加双重壳的应该怎么脱?
除了Memory access violation都忽略 IsDebug插件隐藏oD f9 shift+f9直到 00411769 0000 ADD [EAX], AL 0041176B 0000 ADD [EAX], AL 0041176D 0000 ADD [EAX], AL ctrl+g [esp+4] f2 shift+f9 中断 0041172D C1C7 07 ROL EDI, 7//f4 f8 ctrl+g edi f2 f9 中断 命令行插件输入 hr esp-4 f9直到 004010CD 8BEC MOV EBP, ESP 004010CF 83EC 44 SUB ESP, 44 ctrl+V(下)调整可以看到OEp 004010CC 55 PUSH EBP 004010CD 8BEC MOV EBP, ESP 004010CF 83EC 44 SUB ESP, 44 004010D2 56 PUSH ESI 004010D3 FF15 E4634000 CALL [4063E4] ; kernel32.GetCommandLineA OD dump插件,OEP=10CC,不选rebuild IT->dumped.exe ImpRec, IAT Auto Search.000062E0/00000248 Fixdump -> dumped.exe -> dumped_.exe LordPE, Rebuild PE. All done. |
|
一个专门给EXE文件加密码锁的免费小工具,算法:twofish 256 bit keysize.
fly的不是,我手上有.:D |
|
新手问题
没脱好 |
|
|
|
没见过这种壳,很是郁闷
最初由 coolgood2008 发布 为何下此结论? |
|
|
|
|
|
请脱壳,并给出程序的密码
最初由 limee 发布 我疏忽了,没有注意老论坛没有恢复.希望看雪早日恢复.对于这点对你表示歉意. 以前的文章收录在udv整理的密界脱壳文集中.你可以找一本看看. 看雪精华中也有些. |
|
请脱壳,并给出程序的密码
不知你满意了吗?arm的文章都太长,很多贴不上. 就是无法确信是不是这里?? ===>dump fix 运行不就知道了?何必多此一问? 如果都不愿意多说, 看来我要戒版几周,潜心钻研了! 真的要有什么心得,也不会发表的! ===>你的权力 我是虚心请教的!~~ 斑竹,如果你说这东西出现了几百年,请拿出证明 的东西来呀! ===>那么多文章贴出来浪费论坛资源, 选了几个短的贴上 ff这个东西对你们来说是简单,可是回答一下费力吗? ===>太多的的现成文章,我还有必要(或者说有理由)再饶舌吗 只知道卖书赚钱,现在学crack没赶上时候啊! ===>难道要kanxue倾家荡产支持这个bbs?到处都是资料,早些年找都找不到. 以前热心的大虾很多,现在我来这里和不来这里 都一样! ===>你的自由. 我学破解到现在也只有1个月左右,已经破截了2个软件了! 鬼子的和国产的各一个~~~! ===>好 怪不的国内的软件比国外的落后很多啊,固步自封的人太多了! ===>真的? 我去国外的Crack bbs了,这里的某些人太势利眼了! ===>我势利眼,好罢 |
|
请脱壳,并给出程序的密码
序 号:266031 标 题:用Armadillo标准加壳的程序的脱壳和引入表修复方案---OLLYDBG (8千字) 发信人:jwh51 时 间:2003-6-14 11:55:55 阅读次数:652 详细信息: 用过ARMADILLO的人都知道,用它加壳有两种方式,一是使用COPYMEMII,一是标准加壳.用COPYMEMII的一般可用DILLODUMP脱(当然也有时脱不了),而用标准加壳用DILLODUMP是脱不了的,这是DILLODUMP中的说明,我们来看看: NOTE: This only really works on programs that are at least protected to some extent. For example, it will not work on "Standard Protection" aramadillo files, which isn't a big deal, because for those you do not need to have any "advanced" tools to dump. I plan on released a "lite" version to support those files soon.. 本人E文很菜,只能了解大意,是说标准加壳的脱壳比较简单,不需用工具.但是对我等菜来说,还是要用工具的好,不过既然现在还没有,还是手脱吧. 脱壳目标:SoundEdit pro v1.30.634,5月29日更新. 下载: http://www.rmbsoft.com/getit.asp?pid=6&server=http://www.winsoft98.com/programs/sep13.exe 加壳程序:Armadillo v3.00a 工具:OLLYDBG,LOADPE,importREC SoundEdit是一个声音编辑软件(国外的),采用了ARMADILLO的KEY加密,启动要你输入KEY,否则要等N秒才能让你启动,还有30天试用期,所以,如果脱了壳,上述现象都将没有了.现在开始脱壳历程.!! 第一步,DUMP出程序: 用OLLYDBG载入程序.在调试选项中忽略所有异常,这样可以少按SHIFT+F9 BP VirtualProtect,F9运行,这时会有异常,用SHIFT+F9过程序会断下来,这时你不停按F9,一般在第5次会出现注册框,OK后再次中断,这时你要注意堆?开始记下F9的次数了.我这第20下时在堆?出现如下信息: 0012F214 7342F406 /CALL to VirtualProtect from MSVBVM60.7342F400 说明程序,已经运行了.(VB是先运行MSVBVM60.DLL的,在其中也用调用VirtualProtect,如果是DELPHI等程序,可一直F9到程序运行为止) 现在重新载入程序,到出现这个信息的前一次中断停下来,然后按几次CTRL+F9到程序中(也就是地址较低的地方,一般都是004*****,005*****,本程序在这: 004DA060 83C4 04 ADD ESP, 4 004DA063 8945 FC MOV DWORD PTR SS:[EBP-4], EAX 004DA066 837D B8 00 CMP DWORD PTR SS:[EBP-48], 0 004DA06A 74 0A JE SHORT SoundEdi.004DA076 004DA06C 8B45 B8 MOV EAX, DWORD PTR SS:[EBP-48] 004DA06F 50 PUSH EAX 004DA070 FF15 E8615000 CALL DWORD PTR DS:[<&USER32.DestroyWi>; USER32.DestroyWindow 004DA076 8B45 FC MOV EAX, DWORD PTR SS:[EBP-4] 004DA079 8BE5 MOV ESP, EBP 004DA07B 5D POP EBP 004DA07C C3 RETN 这时小心地用F8,因为有一堆的JMP,JNZ,JO等,不过也用不了多久的,大概20多次就可来到这: 004DB483 61 POPAD 004DB484 6A 00 PUSH 0 004DB486 E8 6E000000 CALL SoundEdi.004DB4F9 004DB48B 83C4 04 ADD ESP, 4 004DB48E 6A 00 PUSH 0 004DB490 E8 46830000 CALL SoundEdi.004E37DB 004DB495 83C4 04 ADD ESP, 4 004DB498 837D E4 01 CMP DWORD PTR SS:[EBP-1C], 1 004DB49C 75 11 JNZ SHORT SoundEdi.004DB4AF 004DB49E 68 E8965000 PUSH SoundEdi.005096E8 004DB4A3 FF15 0C975000 CALL DWORD PTR DS:[50970C] ,这个CALL用F7跟进 004DB4A9 83C4 04 ADD ESP, 4 004DB4AC 8945 E4 MOV DWORD PTR SS:[EBP-1C], EAX 004DB4AF 68 0C9E4D00 PUSH SoundEdi.004D9E0C 在4db4a3这个CALL用f7跟进,然后继续F8,几次后就来到这: 00D0B5E0 /75 29 JNZ SHORT 00D0B60B 00D0B5E2 |E8 A05AFFFF CALL 00D01087 00D0B5E7 |FF76 04 PUSH DWORD PTR DS:[ESI+4] 00D0B5EA |8BF8 MOV EDI, EAX 00D0B5EC |A1 CCEED100 MOV EAX, DWORD PTR DS:[D1EECC] 00D0B5F1 |FF76 08 PUSH DWORD PTR DS:[ESI+8] 00D0B5F4 |8B48 70 MOV ECX, DWORD PTR DS:[EAX+70] 00D0B5F7 |3348 50 XOR ECX, DWORD PTR DS:[EAX+50] 00D0B5FA |6A 00 PUSH 0 00D0B5FC |3348 34 XOR ECX, DWORD PTR DS:[EAX+34] 00D0B5FF |03F9 ADD EDI, ECX 00D0B601 |E8 815AFFFF CALL 00D01087 00D0B606 |50 PUSH EAX 00D0B607 |FFD7 CALL EDI ; SoundEdi.004059B0 看到最后这个CALL EDI吗,004059B0就是程序的OEP了,我们F7跟进: 00405996 - FF25 3C114000 JMP DWORD PTR DS:[40113C] 0040599C - FF25 8C104000 JMP DWORD PTR DS:[40108C] 004059A2 - FF25 B0104000 JMP DWORD PTR DS:[4010B0] 004059A8 - FF25 E8114000 JMP DWORD PTR DS:[4011E8] 004059AE 0000 ADD BYTE PTR DS:[EAX], AL 004059B0 68 787D4000 PUSH SoundEdi.00407D78 ,这是OEP了, 004059B5 E8 EEFFFFFF CALL SoundEdi.004059A8 呵,典型的VB代码.拿出LOADPE,快快DUMP吧.我们把DUMP的程序保存为DUMPED.EXE 第二步,引入表的修复 以前总以为它的修复很难,但实际上只要修改程序流程,完全可得到正确的引入表的. 1.可先用importREC试试,有一个指针无效,如果CUT程序退出时会出错,所以要修复它.通过它我们可看到iat的rva为1000,错误指针为1030,(如果很多指针无效,只要记住一个无效的RVA就可以了) 2.重新载入程序,BP VirtualProtect,断下后f9,注意堆?的变化,当出现如下信息时要注意了: 0012DB28 00D0887E /CALL to VirtualProtect from 00D08878 0012DB2C 00401000 |Address = SoundEdi.00401000 0012DB30 000CB000 |Size = CB000 (831488.) 0012DB34 00000004 |NewProtect = PAGE_READWRITE 0012DB38 0012F034 \pOldProtect = 0012F034 它将往401000也就是IAT所在的地方写入信息:这是再按一下F9,又停下来,D 401000,我们可看到,IAT所在的位置已经写入了东西,还不是dll的地址,还记得那个无效指针的地址吗:401030,我们清掉断点,然后在在内存定位到401030处,"右键-->breakpoint-->hardware on write-->dword",然后按F9运行,程序停了下来: 00D0942F 8B85 5CFBFFFF MOV EAX, DWORD PTR SS:[EBP-4A4] 00D09435 8B8D 48F9FFFF MOV ECX, DWORD PTR SS:[EBP-6B8] 00D0943B 8908 MOV DWORD PTR DS:[EAX], ECX 00D0943D 8B85 5CFBFFFF MOV EAX, DWORD PTR SS:[EBP-4A4] ; 停在这 00D09443 83C0 04 ADD EAX, 4 00D09446 8985 5CFBFFFF MOV DWORD PTR SS:[EBP-4A4], EAX 00D0944C ^ E9 78FEFFFF JMP 00D092C9 看到上述二行:MOV ECX,DWORD PRT [EBP-6B8],我们再往上找几行可看到这个语句: 00D093E3 E8 F8C0FEFF CALL 00CF54E0 00D093E8 8985 48F9FFFF MOV DWORD PTR SS:[EBP-6B8], EAX 00D093EE 83BD 48F9FFFF 0>CMP DWORD PTR SS:[EBP-6B8], 0 00D093F5 75 38 JNZ SHORT 00D0942F 在第二行也有个[EBP-6B8],注意前面这个CALL,我们去看一看 00CF54E0 55 PUSH EBP 00CF54E1 8BEC MOV EBP, ESP 00CF54E3 53 PUSH EBX 00CF54E4 56 PUSH ESI 00CF54E5 57 PUSH EDI 00CF54E6 33FF XOR EDI, EDI 00CF54E8 33DB XOR EBX, EBX 00CF54EA 66:F745 0E FFFF TEST WORD PTR SS:[EBP+E], 0FFFF 00CF54F0 75 03 JNZ SHORT 00CF54F5 00CF54F2 8B5D 0C MOV EBX, DWORD PTR SS:[EBP+C] 00CF54F5 57 PUSH EDI 00CF54F6 FF15 A430D100 CALL DWORD PTR DS:[D130A4] ; kernel32.GetModuleHandleA 00CF54FC 3945 08 CMP DWORD PTR SS:[EBP+8], EAX 00CF54FF 75 07 JNZ SHORT 00CF5508 00CF5501 BE C053D100 MOV ESI, 0D153C0 00CF5506 EB 60 JMP SHORT 00CF5568 00CF5508 393D 9859D100 CMP DWORD PTR DS:[D15998], EDI 00CF550E B9 9859D100 MOV ECX, 0D15998 00CF5513 74 3C JE SHORT 00CF5551 00CF5515 8B35 B8B1D100 MOV ESI, DWORD PTR DS:[D1B1B8] 00CF551B A1 CCEED100 MOV EAX, DWORD PTR DS:[D1EECC] 00CF5520 F641 08 01 TEST BYTE PTR DS:[ECX+8], 1 00CF5524 74 0E JE SHORT 00CF5534 00CF5526 8B50 70 MOV EDX, DWORD PTR DS:[EAX+70] 00CF5529 3350 60 XOR EDX, DWORD PTR DS:[EAX+60] 00CF552C 3350 3C XOR EDX, DWORD PTR DS:[EAX+3C] 00CF552F F6C2 80 TEST DL, 80 00CF5532 75 13 JNZ SHORT 00CF5547 00CF5534 8B50 70 MOV EDX, DWORD PTR DS:[EAX+70] 00CF5537 3350 64 XOR EDX, DWORD PTR DS:[EAX+64] 00CF553A 3350 58 XOR EDX, DWORD PTR DS:[EAX+58] 00CF553D 3350 20 XOR EDX, DWORD PTR DS:[EAX+20] 00CF5540 3316 XOR EDX, DWORD PTR DS:[ESI] 00CF5542 3955 08 CMP DWORD PTR SS:[EBP+8], EDX 00CF5545 74 1E JE SHORT 00CF5565 00CF5547 83C1 0C ADD ECX, 0C 00CF554A 83C6 04 ADD ESI, 4 00CF554D 3939 CMP DWORD PTR DS:[ECX], EDI 00CF554F ^ 75 CF JNZ SHORT 00CF5520 00CF5551 FF75 0C PUSH DWORD PTR SS:[EBP+C] 这里面有几个跳转,其中最后一个CF554F是往上跳的.我们看一个就可发现: 00CF5513 74 3C JE SHORT 00CF5551,这个跳正好可跳出这个循环.只要改这个跳,就不会破坏引入表了. 再次重新载入,BP VirtualProtect,出现注册框后OK,程序再断下来,这时清除断点(包括硬件断点),CTRL+F9回程序领空,把CF5513的74 3c改成eb 3c,按F9运行,程序运行后打开importREC,选中程序,入口填入59b0,-->IAT自动搜索-->获得输入信息",如果还有无效的大可放心的cut,因为它们本来就不是有用指针了(也可能是importREC把IAT的大小判断错了),.然后修复脱壳后的文件.OK,大功告成. 测试了下脱壳后的程序,运行正常,那个烦人的注册框没有,时间限制也注册了,别说30天,就是30年都没问题. -------------------------------------------------------------------------------- |
|
请脱壳,并给出程序的密码
简单脱壳-Armadillo360标准加壳的win98记事本程序 【破解作者】 csjwaman 【作者邮箱】 [email]csjwaman@sohu.com[/email] 【使用工具】 OD110Bb,LordPE,ImprotREC16F,FI30 【破解平台】 Win9x/NT/2000/XP 【软件名称】 Armadillo360标准加壳的win98记事本程序 【下载地址】 本地下载 【软件简介】 Armadillo360标准加壳的win98记事本程序 【加壳方式】 Armadillo360标准加壳 【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:) -------------------------------------------------------------------------------- 【破解内容】 简单脱壳-Armadillo360标准加壳的win98记事本程序 用FI30查看为Armadillo 2.5? {glue}加壳(晕!)。首选用IsDebug 1.4插件去掉Ollydbg的调试器标志。设置忽略所有的异常选项。 载入程序后,停在: 00432999 >/$ 55 PUSH EBP====>停在此处。 0043299A |. 8BEC MOV EBP,ESP 0043299C |. 6A FF PUSH -1 0043299E |. 68 502C4500 PUSH NOTEPAD.00452C50 004329A3 |. 68 80234300 PUSH NOTEPAD.00432380 ; SE handler installation 004329A8 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0] 004329AE |. 50 PUSH EAX 004329AF |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP 一、DUMP程序 ALT+M打开内存镜像: Memory map, item 11 Address=00400000 Size=00001000 (4096.)=====>在这行下内存访问断点。 Owner=NOTEPAD 00400000 (itself) Section= Contains=PE header Type=Imag 01001002 Access=R Initial access=RWE F9运行程序,中间会有一个提示错误的对话框,点确定后再SHIFT+F9程序断在: 004010CC 55 PUSH EBP=====>呵呵,这是什么?DUMP吧! 004010CD 8BEC MOV EBP,ESP 004010CF 83EC 44 SUB ESP,44 004010D2 56 PUSH ESI 004010D3 FF15 E4634000 CALL DWORD PTR DS:[4063E4] 004010D9 8BF0 MOV ESI,EAX 004010DB 8A00 MOV AL,BYTE PTR DS:[EAX] 004010DD 3C 22 CMP AL,22 004010DF 75 1B JNZ SHORT NOTEPAD.004010FC 004010E1 56 PUSH ESI 004010E2 FF15 F4644000 CALL DWORD PTR DS:[4064F4] ; USER32.CharNextA 004010E8 8BF0 MOV ESI,EAX 004010EA 8A00 MOV AL,BYTE PTR DS:[EAX] 004010EC 84C0 TEST AL,AL 004010EE 74 04 JE SHORT NOTEPAD.004010F4 004010F0 3C 22 CMP AL,22 004010F2 ^ 75 ED JNZ SHORT NOTEPAD.004010E1 004010F4 803E 22 CMP BYTE PTR DS:[ESI],22 004010F7 75 15 JNZ SHORT NOTEPAD.0040110E 004010F9 46 INC ESI 004010FA EB 12 JMP SHORT NOTEPAD.0040110E 004010FC 3C 20 CMP AL,20 004010FE 7E 0E JLE SHORT NOTEPAD.0040110E 00401100 56 PUSH ESI 00401101 FF15 F4644000 CALL DWORD PTR DS:[4064F4] ; USER32.CharNextA 00401107 8038 20 CMP BYTE PTR DS:[EAX],20 0040110A 8BF0 MOV ESI,EAX 0040110C ^ 7F F2 JG SHORT NOTEPAD.00401100 0040110E 803E 00 CMP BYTE PTR DS:[ESI],0 DUMP后用LordPE修改入口点为4010CC。 二、查找Magic JMP 用OD载入DUMP程序: 004010CC > 55 PUSH EBP 004010CD 8BEC MOV EBP,ESP 004010CF 83EC 44 SUB ESP,44 004010D2 56 PUSH ESI 004010D3 FF15 E4634000 CALL DWORD PTR DS:[4063E4]=====>当用F7走到这里时出错,记下地址4063E4。 004010D9 8BF0 MOV ESI,EAX 004010DB 8A00 MOV AL,BYTE PTR DS:[EAX] 004010DD 3C 22 CMP AL,22 004010DF 75 1B JNZ SHORT dumped.004010FC 004010E1 56 PUSH ESI 用OD载入带壳程序,在DUMP区CTRL+G,输入4063E4,点OK,在DUMP区看到的都是00000000,看来数据还未写入。好,在4063E4处的4个字节上下硬件写入DWORD断点。F9运行程序,出现错误提示对话框,确定后SHIFT+F9。再F9一次,程序停在: 00A5181A 8B85 20ECFFFF MOV EAX,DWORD PTR SS:[EBP-13E0]=====>断在此处(不要删除断点,等下还要用)。再看看DUMP区,数据已经写入了。 00A51820 83C0 04 ADD EAX,4 00A51823 8985 20ECFFFF MOV DWORD PTR SS:[EBP-13E0],EAX 00A51829 ^ E9 36FDFFFF JMP 00A51564 00A5182E 83BD F4EAFFFF 0>CMP DWORD PTR SS:[EBP-150C],0 00A51835 0F85 8A000000 JNZ 00A518C5 00A5183B 0FB685 B0E8FFFF MOVZX EAX,BYTE PTR SS:[EBP-1750] 00A51842 85C0 TEST EAX,EAX 00A51844 74 7F JE SHORT 00A518C5 00A51846 6A 00 PUSH 0 00A51848 8B85 B4E8FFFF MOV EAX,DWORD PTR SS:[EBP-174C] 00A5184E C1E0 02 SHL EAX,2 00A51851 50 PUSH EAX 往上找Magic JMP,来到: 00A51349 FF15 C480A500 CALL DWORD PTR DS:[A580C4] ; KERNEL32.GetModuleHandleA 00A5134F 3985 BCE8FFFF CMP DWORD PTR SS:[EBP-1744],EAX 00A51355 75 0F JNZ SHORT 00A51366 00A51357 C785 B8E8FFFF 3>MOV DWORD PTR SS:[EBP-1748],0A5C530 00A51361 E9 C4000000 JMP 00A5142A 00A51366 83A5 94E6FFFF 0>AND DWORD PTR SS:[EBP-196C],0 00A5136D C785 90E6FFFF 4>MOV DWORD PTR SS:[EBP-1970],0A5CB48 00A51377 EB 1C JMP SHORT 00A51395 00A51379 8B85 90E6FFFF MOV EAX,DWORD PTR SS:[EBP-1970] 00A5137F 83C0 0C ADD EAX,0C 00A51382 8985 90E6FFFF MOV DWORD PTR SS:[EBP-1970],EAX 00A51388 8B85 94E6FFFF MOV EAX,DWORD PTR SS:[EBP-196C] 00A5138E 40 INC EAX 00A5138F 8985 94E6FFFF MOV DWORD PTR SS:[EBP-196C],EAX 00A51395 8B85 90E6FFFF MOV EAX,DWORD PTR SS:[EBP-1970] 00A5139B 8338 00 CMP DWORD PTR DS:[EAX],0 00A5139E 0F84 86000000 JE 00A5142A=====>这就是Magic JMP! 00A513A4 8B85 90E6FFFF MOV EAX,DWORD PTR SS:[EBP-1970] 00A513AA 8B40 08 MOV EAX,DWORD PTR DS:[EAX+8] 00A513AD 83E0 01 AND EAX,1 00A513B0 85C0 TEST EAX,EAX 00A513B2 74 25 JE SHORT 00A513D9 00A513B4 A1 9455A600 MOV EAX,DWORD PTR DS:[A65594] 00A513B9 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A513BF 8B40 58 MOV EAX,DWORD PTR DS:[EAX+58] 00A513C2 3341 6C XOR EAX,DWORD PTR DS:[ECX+6C] 00A513C5 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A513CB 3341 70 XOR EAX,DWORD PTR DS:[ECX+70] 00A513CE 25 80000000 AND EAX,80 00A513D3 85C0 TEST EAX,EAX 00A513D5 74 02 JE SHORT 00A513D9 00A513D7 ^ EB A0 JMP SHORT 00A51379 00A513D9 8B85 94E6FFFF MOV EAX,DWORD PTR SS:[EBP-196C] 00A513DF 8B0D E011A600 MOV ECX,DWORD PTR DS:[A611E0] 00A513E5 8B15 9455A600 MOV EDX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A513EB 8B0481 MOV EAX,DWORD PTR DS:[ECX+EAX*4] 00A513EE 3342 54 XOR EAX,DWORD PTR DS:[EDX+54] 00A513F1 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A513F7 3341 70 XOR EAX,DWORD PTR DS:[ECX+70] 00A513FA 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A51400 3341 24 XOR EAX,DWORD PTR DS:[ECX+24] 00A51403 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A51409 3341 30 XOR EAX,DWORD PTR DS:[ECX+30] 00A5140C 3985 BCE8FFFF CMP DWORD PTR SS:[EBP-1744],EAX 00A51412 75 11 JNZ SHORT 00A51425 00A51414 8B85 90E6FFFF MOV EAX,DWORD PTR SS:[EBP-1970] 00A5141A 8B40 04 MOV EAX,DWORD PTR DS:[EAX+4] 00A5141D 8985 B8E8FFFF MOV DWORD PTR SS:[EBP-1748],EAX 00A51423 EB 05 JMP SHORT 00A5142A 00A51425 ^ E9 4FFFFFFF JMP 00A51379 00A5142A 80A5 B0E8FFFF 0>AND BYTE PTR SS:[EBP-1750],0 00A51431 83BD F4EAFFFF 0>CMP DWORD PTR SS:[EBP-150C],0 00A51438 75 3F JNZ SHORT 00A51479 00A5143A A1 6C5AA600 MOV EAX,DWORD PTR DS:[A65A6C] 00A5143F 8A80 82370000 MOV AL,BYTE PTR DS:[EAX+3782] 00A51445 8885 4CD2FFFF MOV BYTE PTR SS:[EBP-2DB4],AL 00A5144B 0FB685 4CD2FFFF MOVZX EAX,BYTE PTR SS:[EBP-2DB4] 00A51452 85C0 TEST EAX,EAX 00A51454 74 23 JE SHORT 00A51479 00A51456 8B85 ACE8FFFF MOV EAX,DWORD PTR SS:[EBP-1754] 00A5145C 3B85 B8FDFFFF CMP EAX,DWORD PTR SS:[EBP-248] 00A51462 72 15 JB SHORT 00A51479 00A51464 8B85 ACE8FFFF MOV EAX,DWORD PTR SS:[EBP-1754] 00A5146A 3B85 C4FDFFFF CMP EAX,DWORD PTR SS:[EBP-23C] 00A51470 73 07 JNB SHORT 00A51479 00A51472 C685 B0E8FFFF 0>MOV BYTE PTR SS:[EBP-1750],1 记下Magic JMP的地址00A5139E。 CRTL+F12重新载入程序,F9,确定,SHIFT+F9,程序来到: 780109B3 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]=====>程序停在此处。删除硬件断点。 780109B5 FF2495 C80A0178 JMP DWORD PTR DS:[EDX*4+78010AC8] 780109BC 8BC7 MOV EAX,EDI 780109BE BA 03000000 MOV EDX,3 780109C3 83E9 04 SUB ECX,4 780109C6 72 0C JB SHORT MSVCRT.780109D4 780109C8 83E0 03 AND EAX,3 780109CB 03C8 ADD ECX,EAX 780109CD FF2485 E0090178 JMP DWORD PTR DS:[EAX*4+780109E0] 780109D4 FF248D D80A0178 JMP DWORD PTR DS:[ECX*4+78010AD8] 780109DB FF248D 580A0178 JMP DWORD PTR DS:[ECX*4+78010A58] 780109E2 0000 ADD BYTE PTR DS:[EAX],AL 780109E4 F0:0901 LOCK OR DWORD PTR DS:[ECX],EAX ; LOCK prefix 780109E7 78 19 JS SHORT MSVCRT.78010A02 780109E9 0A01 OR AL,BYTE PTR DS:[ECX] 780109EB 78 3C JS SHORT MSVCRT.78010A29 780109ED 0A01 OR AL,BYTE PTR DS:[ECX] 780109EF 78 23 JS SHORT MSVCRT.78010A14 780109F1 D18A 0688078A ROR DWORD PTR DS:[EDX+8A078806],1 780109F7 46 INC ESI 780109F8 0188 47018A46 ADD DWORD PTR DS:[EAX+468A0147],ECX 780109FE 02C1 ADD AL,CL 78010A00 - E9 02884702 JMP 7A489207 78010A05 83C6 03 ADD ESI,3 78010A08 83C7 03 ADD EDI,3 78010A0B 83F9 08 CMP ECX,8 78010A0E ^ 72 CB JB SHORT MSVCRT.780109DB 78010A10 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI] 78010A12 FF2495 C80A0178 JMP DWORD PTR DS:[EDX*4+78010AC8] 78010A19 23D1 AND EDX,ECX 78010A1B 8A06 MOV AL,BYTE PTR DS:[ESI] 78010A1D 8807 MOV BYTE PTR DS:[EDI],AL 78010A1F 8A46 01 MOV AL,BYTE PTR DS:[ESI+1] CTRL+F9执行到返回,再F7,来到: 00A5079A 83C4 0C ADD ESP,0C=====>返回到这里。用F8走。 00A5079D 8D85 D4E9FFFF LEA EAX,DWORD PTR SS:[EBP-162C] 00A507A3 50 PUSH EAX 00A507A4 FFB5 D4E9FFFF PUSH DWORD PTR SS:[EBP-162C] 00A507AA FFB5 DCE9FFFF PUSH DWORD PTR SS:[EBP-1624] 00A507B0 8B85 1CEBFFFF MOV EAX,DWORD PTR SS:[EBP-14E4] 00A507B6 0385 D8E9FFFF ADD EAX,DWORD PTR SS:[EBP-1628] 00A507BC 50 PUSH EAX 00A507BD FF15 3481A500 CALL DWORD PTR DS:[A58134] ; KERNEL32.VirtualProtect 00A507C3 8B85 E0E9FFFF MOV EAX,DWORD PTR SS:[EBP-1620] 00A507C9 8985 0CD4FFFF MOV DWORD PTR SS:[EBP-2BF4],EAX 00A507CF FFB5 0CD4FFFF PUSH DWORD PTR SS:[EBP-2BF4] 00A507D5 E8 146F0000 CALL 00A576EE ; JMP to MSVCRT.??3@YAXPAX@Z 00A507DA 59 POP ECX 00A507DB ^ E9 A5FAFFFF JMP 00A50285 00A507E0 8325 A055A600 0>AND DWORD PTR DS:[A655A0],0 00A507E7 83BD 78ECFFFF 0>CMP DWORD PTR SS:[EBP-1388],0 00A507EE 74 33 JE SHORT 00A50823 00A507F0 8D85 B0E9FFFF LEA EAX,DWORD PTR SS:[EBP-1650] 00A507F6 50 PUSH EAX 00A507F7 6A 20 PUSH 20 00A507F9 FFB5 78ECFFFF PUSH DWORD PTR SS:[EBP-1388] 00A507FF FF35 3C57A600 PUSH DWORD PTR DS:[A6573C] 00A50805 FF15 3481A500 CALL DWORD PTR DS:[A58134] ; KERNEL32.VirtualProtect 00A5080B 8B85 10EBFFFF MOV EAX,DWORD PTR SS:[EBP-14F0] 00A50811 8985 08D4FFFF MOV DWORD PTR SS:[EBP-2BF8],EAX 00A50817 FFB5 08D4FFFF PUSH DWORD PTR SS:[EBP-2BF8] 00A5081D E8 CC6E0000 CALL 00A576EE ; JMP to MSVCRT.??3@YAXPAX@Z 00A50822 59 POP ECX 00A50823 66:C785 FCEAFFF>MOV WORD PTR SS:[EBP-1504],4675 00A5082C 66:C785 64ECFFF>MOV WORD PTR SS:[EBP-139C],0B5F3 00A50835 C745 FC 0100000>MOV DWORD PTR SS:[EBP-4],1 00A5083C B9 00000000 MOV ECX,0 00A50841 66:8CC9 MOV CX,CS 00A50844 32C9 XOR CL,CL 00A50846 E3 64 JECXZ SHORT 00A508AC 00A50848 B4 43 MOV AH,43 00A5084A CD 68 INT 68 然后用F8走,一直来到: 00A512D3 83BD BCE8FFFF 0>CMP DWORD PTR SS:[EBP-1744],0 00A512DA 75 58 JNZ SHORT 00A51334 00A512DC 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] 00A512DF 8B00 MOV EAX,DWORD PTR DS:[EAX] 00A512E1 C700 03000000 MOV DWORD PTR DS:[EAX],3 00A512E7 0FBE85 A4E7FFFF MOVSX EAX,BYTE PTR SS:[EBP-185C] 00A512EE 85C0 TEST EAX,EAX 00A512F0 74 0E JE SHORT 00A51300 00A512F2 8D85 A4E7FFFF LEA EAX,DWORD PTR SS:[EBP-185C] 00A512F8 8985 CCD1FFFF MOV DWORD PTR SS:[EBP-2E34],EAX 00A512FE EB 0C JMP SHORT 00A5130C 00A51300 8B85 A0E7FFFF MOV EAX,DWORD PTR SS:[EBP-1860] 00A51306 8985 CCD1FFFF MOV DWORD PTR SS:[EBP-2E34],EAX 00A5130C FF15 D480A500 CALL DWORD PTR DS:[A580D4] ; KERNEL32.GetLastError 00A51312 50 PUSH EAX 00A51313 FFB5 CCD1FFFF PUSH DWORD PTR SS:[EBP-2E34] 00A51319 68 34E5A500 PUSH 0A5E534 ; ASCII "File "%s", error %d" 00A5131E 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] 00A51321 FF70 04 PUSH DWORD PTR DS:[EAX+4] 00A51324 FF15 C482A500 CALL DWORD PTR DS:[A582C4] ; MSVCRT.sprintf 00A5132A 83C4 10 ADD ESP,10 00A5132D 33C0 XOR EAX,EAX 00A5132F E9 74140000 JMP 00A527A8 00A51334 FFB5 BCE8FFFF PUSH DWORD PTR SS:[EBP-1744] 00A5133A E8 0664FEFF CALL 00A37745 00A5133F 59 POP ECX 00A51340 83A5 B8E8FFFF 0>AND DWORD PTR SS:[EBP-1748],0 00A51347 6A 00 PUSH 0 00A51349 FF15 C480A500 CALL DWORD PTR DS:[A580C4] ; KERNEL32.GetModuleHandleA 00A5134F 3985 BCE8FFFF CMP DWORD PTR SS:[EBP-1744],EAX 00A51355 75 0F JNZ SHORT 00A51366 00A51357 C785 B8E8FFFF 3>MOV DWORD PTR SS:[EBP-1748],0A5C530 00A51361 E9 C4000000 JMP 00A5142A 00A51366 83A5 94E6FFFF 0>AND DWORD PTR SS:[EBP-196C],0 00A5136D C785 90E6FFFF 4>MOV DWORD PTR SS:[EBP-1970],0A5CB48 00A51377 EB 1C JMP SHORT 00A51395 00A51379 8B85 90E6FFFF MOV EAX,DWORD PTR SS:[EBP-1970] 00A5137F 83C0 0C ADD EAX,0C 00A51382 8985 90E6FFFF MOV DWORD PTR SS:[EBP-1970],EAX 00A51388 8B85 94E6FFFF MOV EAX,DWORD PTR SS:[EBP-196C] 00A5138E 40 INC EAX 00A5138F 8985 94E6FFFF MOV DWORD PTR SS:[EBP-196C],EAX 00A51395 8B85 90E6FFFF MOV EAX,DWORD PTR SS:[EBP-1970] 00A5139B 8338 00 CMP DWORD PTR DS:[EAX],0 00A5139E 0F84 86000000 JE 00A5142A=====>在此下内存访问断点! 00A513A4 8B85 90E6FFFF MOV EAX,DWORD PTR SS:[EBP-1970] 00A513AA 8B40 08 MOV EAX,DWORD PTR DS:[EAX+8] 00A513AD 83E0 01 AND EAX,1 00A513B0 85C0 TEST EAX,EAX 00A513B2 74 25 JE SHORT 00A513D9 00A513B4 A1 9455A600 MOV EAX,DWORD PTR DS:[A65594] 00A513B9 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A513BF 8B40 58 MOV EAX,DWORD PTR DS:[EAX+58] 00A513C2 3341 6C XOR EAX,DWORD PTR DS:[ECX+6C] 00A513C5 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A513CB 3341 70 XOR EAX,DWORD PTR DS:[ECX+70] 00A513CE 25 80000000 AND EAX,80 00A513D3 85C0 TEST EAX,EAX 00A513D5 74 02 JE SHORT 00A513D9 00A513D7 ^ EB A0 JMP SHORT 00A51379 00A513D9 8B85 94E6FFFF MOV EAX,DWORD PTR SS:[EBP-196C] 00A513DF 8B0D E011A600 MOV ECX,DWORD PTR DS:[A611E0] 00A513E5 8B15 9455A600 MOV EDX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A513EB 8B0481 MOV EAX,DWORD PTR DS:[ECX+EAX*4] 00A513EE 3342 54 XOR EAX,DWORD PTR DS:[EDX+54] 00A513F1 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A513F7 3341 70 XOR EAX,DWORD PTR DS:[ECX+70] 00A513FA 8B0D 9455A600 MOV ECX,DWORD PTR DS:[A65594] ; NOTEPAD.0044D260 00A51400 3341 24 XOR EAX,DWORD PTR DS:[ECX+24] F9运行,每次程序停在00A5139E时修改寄存器跳转标志Z为1,让其跳转。当程序停在别处时,再ALT+M打开内存镜像,在00401000行下内存访问断点,然后F9,程序直接停在入口处: 004010CC 55 PUSH EBP=====>断在此处! 004010CD 8BEC MOV EBP,ESP 004010CF 83EC 44 SUB ESP,44 004010D2 56 PUSH ESI 004010D3 FF15 E4634000 CALL DWORD PTR DS:[4063E4] ; KERNEL32.GetCommandLineA 004010D9 8BF0 MOV ESI,EAX 004010DB 8A00 MOV AL,BYTE PTR DS:[EAX] 004010DD 3C 22 CMP AL,22 004010DF 75 1B JNZ SHORT NOTEPAD.004010FC 004010E1 56 PUSH ESI 004010E2 FF15 F4644000 CALL DWORD PTR DS:[4064F4] ; USER32.CharNextA 004010E8 8BF0 MOV ESI,EAX 004010EA 8A00 MOV AL,BYTE PTR DS:[EAX] 004010EC 84C0 TEST AL,AL 004010EE 74 04 JE SHORT NOTEPAD.004010F4 004010F0 3C 22 CMP AL,22 004010F2 ^ 75 ED JNZ SHORT NOTEPAD.004010E1 004010F4 803E 22 CMP BYTE PTR DS:[ESI],22 004010F7 75 15 JNZ SHORT NOTEPAD.0040110E 004010F9 46 INC ESI 004010FA EB 12 JMP SHORT NOTEPAD.0040110E 004010FC 3C 20 CMP AL,20 运行ImprotREC修复,填入入口10CC,自动搜索,再把无效指针剪去,最后修复,OK! csjwaman[DFCG]于2004年3月9日 -------------------------------------------------------------------------------- 【破解总结】 无。 -------------------------------------------------------------------------------- 【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! |
|
请脱壳,并给出程序的密码
Armadillo V3.40标准加壳方式的脱壳――Win98的Notepad 作者 正文 fly 时间: 2003-11-25 周二, 下午8:29 标题: Armadillo V3.40标准加壳方式的脱壳――Win98的Notepad -------------------------------------------------------------------------------- Armadillo V3.40标准加壳方式的脱壳――Win98的Notepad 下载地址: http://www.siliconrealms.com/download/Armd340.exe 软件大小: 1.63M 【软件简介】:Armadillo is a powerful software protection system. It wraps around your program like an armored shell, defending your work from pirates and program crackers with state-of-the-art encryption, data compression, and other security features. It allows you to design and add a complete software protection and registration-key system to your existing programs in five minutes or less, with no changes to your program's code! And it works with any language that produces a 32-bit Windows EXE file. 【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! 【调试环境】:WinXP、Ollydbg1.09、PEiD、LordPE、ImportREC ――――――――――――――――――――――――――――――――― 【脱壳过程】: 从其主页下载了Armadillo V3.40,应该是目前的最新版吧? 试炼品:用Armadillo V3.40标准方式(Standard Protections Only)加壳的Win98的Notepad,想试试就自己加吧。 Armadillo是当今猛壳之一啦。其CopyMem-II+Debug-Blocker的加壳方式是非常强劲的,其标准加壳方式相对来说则容易的多。无聊时偶来捏捏软柿子, 看看V3.40的标准加壳有无变化。 用IsDebug 1.4插件去掉Ollydbg的调试器标志。设置忽略所有的异常选项。Let's Go! 00425869 55 push ebp ====>进入OD后断在这! F9运行,弹出“未授权”的Armadillo保护提示。偶们下断:BP GetModuleHandleA+5 点OK后断下。当然,对于用注册版加壳的没有这个提示,可以直接在GetModuleHandleA+5处下 硬件执行 断点。断下后看看堆栈: 77E59F93 837C24 04 00 cmp dword ptr ss:[esp+4],0 77E59F98 0F84 23060000 je kernel32.77E5A5C1 ====>断在这!按7次F9,然后取消断点,Ctrl+F9执行到返回 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ BP GetModuleHandleA+5 中断后的堆栈变化: 0012BE84 00AA6A5E 返回到 00AA6A5E 来自 kernel32.GetModuleHandleA 0012BE88 0012BFC0 ASCII "kernel32.dll" 0012BE84 00AA6A5E 返回到 00AA6A5E 来自 kernel32.GetModuleHandleA 0012BE88 0012BFC0 ASCII "user32.dll" 0012BE84 00AA6A5E 返回到 00AA6A5E 来自 kernel32.GetModuleHandleA 0012BE88 0012BFC0 ASCII "MSVBVM60.DLL" 0012B77C 66001BB1 返回到 66001BB1 来自 kernel32.GetModuleHandleA 0012B780 66003DA8 ASCII "kernel32.dll" 0012B770 66002848 返回到 66002848 来自 kernel32.GetModuleHandleA 0012B774 66003DD4 ASCII "KERNEL32" 0012B768 660031FB 返回到 660031FB 来自 kernel32.GetModuleHandleA 0012B76C 00000000 0012BE84 00AA6A5E 返回到 00AA6A5E 来自 kernel32.GetModuleHandleA 0012BE88 0012BFC0 ASCII "advapi32.dll" 0012C110 00ABE6C1 返回到 00ABE6C1 来自 kernel32.GetModuleHandleA 0012C114 00000000 //好了,到此为止吧 再来几次就运行了 ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 77E59F9E FF7424 04 push dword ptr ss:[esp+4] 77E59FA2 E8 55080000 call kernel32.77E5A7FC 77E59FA7 85C0 test eax,eax 77E59FA9 74 08 je short kernel32.77E59FB3 77E59FAB FF70 04 push dword ptr ds:[eax+4] 77E59FAE E8 B0060000 call kernel32.GetModuleHandleW 77E59FB3 C2 0400 retn 4 ====>返回到 00ABE6C1 ―――――――――――――――――――――――― 00ABE6BB FF15 C4C0AC00 call dword ptr ds:[ACC0C4] ; kernel32.GetModuleHandleA 00ABE6C1 3985 B0E9FFFF cmp dword ptr ss:[ebp-1650], eax ; Notepad.00400000 00ABE6C7 75 0F jnz short 00ABE6D8 00ABE6C9 C785ACE9FFFF4002AD00 mov dword ptr ss:[ebp-1654], 0AD0240 00ABE6D3 E9 C4000000 jmp 00ABE79C 00ABE6D8 83A5 84E7FFFF 00 and dword ptr ss:[ebp-187C], 0 00ABE6DF C78580E7FFFF5008AD00 mov dword ptr ss:[ebp-1880], 0AD0850 00ABE6E9 EB 1C jmp short 00ABE707 00ABE6EB 8B85 80E7FFFF mov eax, dword ptr ss:[ebp-1880] 00ABE6F1 83C0 0C add eax, 0C 00ABE6F4 8985 80E7FFFF mov dword ptr ss:[ebp-1880], eax 00ABE6FA 8B85 84E7FFFF mov eax, dword ptr ss:[ebp-187C] 00ABE700 40 inc eax 00ABE701 8985 84E7FFFF mov dword ptr ss:[ebp-187C], eax 00ABE707 8B85 80E7FFFF mov eax, dword ptr ss:[ebp-1880] 00ABE70D 8338 00 cmp dword ptr ds:[eax], 0 00ABE710 0F84 86000000 je 00ABE79C //在这里偶中断了6次 ====>这就是那个Magic Jump 此处下 硬件执行 断点,每次断下后改标志Z=1,使其JMP,就能得到未被破坏的输入表了 接着下断:BP GetCurrentThreadId 断下后取消断点,Ctrl+F9执行到返回 77E57CC4 64:A1 18000000 mov eax, dword ptr fs:[18] 77E57CCA 8B40 24 mov eax, dword ptr ds:[eax+24] 77E57CCD C3 retn ====>返回到 00AC1351 00AC134B FF15 14C1AC00 call dword ptr ds:[ACC114] ; kernel32.GetCurrentThreadId 00AC1351 A3 F0B8AD00 mov dword ptr ds:[ADB8F0], eax ====>返回到这里 向下找CALL EDI,在00AC13E4处,F2下断 00AC1356 E8 E759FEFF call 00AA6D42 00AC135B 6A 00 push 0 00AC135D E8 FBB1FEFF call 00AAC55D 00AC1362 6A 00 push 0 00AC1364 C7054418AD008022AD00 mov dword ptr ds:[AD1844], 0AD2280 ; ASCII "RC" 00AC136E E8 A22D0000 call 00AC4115 00AC1373 59 pop ecx 00AC1374 59 pop ecx 00AC1375 E8 1B2BFFFF call 00AB3E95 00AC137A 8BF8 mov edi, eax 00AC137C A1 DCB8AD00 mov eax, dword ptr ds:[ADB8DC] 00AC1381 8B48 78 mov ecx, dword ptr ds:[eax+78] 00AC1384 3348 3C xor ecx, dword ptr ds:[eax+3C] 00AC1387 3348 38 xor ecx, dword ptr ds:[eax+38] 00AC138A 03F9 add edi, ecx 00AC138C 8B0E mov ecx, dword ptr ds:[esi] 00AC138E 85C9 test ecx, ecx 00AC1390 75 2F jnz short 00AC13C1 00AC1392 8B78 3C mov edi, dword ptr ds:[eax+3C] 00AC1395 E8 FB2AFFFF call 00AB3E95 00AC139A 8B0D DCB8AD00 mov ecx, dword ptr ds:[ADB8DC] ; Notepad.0043D260 00AC13A0 FF76 14 push dword ptr ds:[esi+14] 00AC13A3 8B51 78 mov edx, dword ptr ds:[ecx+78] 00AC13A6 FF76 10 push dword ptr ds:[esi+10] 00AC13A9 3351 38 xor edx, dword ptr ds:[ecx+38] 00AC13AC FF76 0C push dword ptr ds:[esi+C] 00AC13AF 33D7 xor edx, edi 00AC13B1 03C2 add eax, edx 00AC13B3 8B51 6C mov edx, dword ptr ds:[ecx+6C] 00AC13B6 3351 28 xor edx, dword ptr ds:[ecx+28] 00AC13B9 33D7 xor edx, edi 00AC13BB 2BC2 sub eax, edx 00AC13BD FFD0 call eax 00AC13BF EB 25 jmp short 00AC13E6 00AC13C1 83F9 01 cmp ecx, 1 00AC13C4 75 22 jnz short 00AC13E8 00AC13C6 FF76 04 push dword ptr ds:[esi+4] 00AC13C9 FF76 08 push dword ptr ds:[esi+8] 00AC13CC 6A 00 push 0 00AC13CE E8 C22AFFFF call 00AB3E95 00AC13D3 50 push eax 00AC13D4 A1 DCB8AD00 mov eax, dword ptr ds:[ADB8DC] ====>EAX=0043D260 00AC13D9 8B48 6C mov ecx, dword ptr ds:[eax+6C] ====>ECX=CE6D8D16 00AC13DC 3348 3C xor ecx, dword ptr ds:[eax+3C] ====>ECX=CE6D8D16 XOR 0423AE82=CA4E2394 00AC13DF 3348 28 xor ecx, dword ptr ds:[eax+28] ====>ECX=CA4E2394 XOR 8A844884=40CA6B10 00AC13E2 2BF9 sub edi, ecx ====>EDI=410A7BDC - 40CA6B10=004010CC 00AC13E4 FFD7 call edi ; Notepad.004010CC ====>此处下断!F7进入!! 飞向光明之巅!GO GO GO 00AC13E6 8BD8 mov ebx, eax 00AC13E8 5F pop edi 00AC13E9 8BC3 mov eax, ebx 00AC13EB 5E pop esi 00AC13EC 5B pop ebx 00AC13ED C3 retn ―――――――――――――――――――――――― 004010CC 55 push ebp ====>在这儿用LordPE完全DUMP这个进程 004010CD 8BEC mov ebp,esp 004010CF 83EC 44 sub esp,44 004010D2 56 push esi 004010D3 FF15 E4634000 call dword ptr ds:[4063E4] ; kernel32.GetCommandLineA 004010D9 8BF0 mov esi,eax 004010DB 8A00 mov al,byte ptr ds:[eax] 004010DD 3C 22 cmp al,22 004010DF 75 1B jnz short Notepad.004010FC 004010E1 56 push esi 004010E2 FF15 F4644000 call dword ptr ds:[4064F4] ; USER32.CharNextA ――――――――――――――――――――――――――――――――― 运行ImportREC,选择这个进程。把OEP改为000010CC,点IT AutoSearch,点“Get Import”,放心CUT掉6个无效的指针,FixDump,正常运行! ――――――――――――――――――――――――――――――――― , _/ /| _.-~/ \_ , 青春都一饷 ( /~ / \~-._ |\ `\\ _/ \ ~\ ) 忍把浮名 _-~~~-.) )__/;;,. \_ //' /'_,\ --~ \ ~~~- ,;;\___( (.-~~~-. 换了破解轻狂 `~ _( ,_..--\ ( ,;'' / ~-- /._`\ /~~//' /' `~\ ) /--.._, )_ `~ " `~" " `" /~'`\ `\\~~\ " " "~' "" Cracked By 巢水工作坊――fly [OCN][FCG][NUKE] 2003-11-25 20:20 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 一蓑烟雨……任平生! |
|
请脱壳,并给出程序的密码
最初由 limee 发布 如果真的想学习,搜索一下就会发现很多东西在几百年前就有人写了. 如果连搜索都懒得做,实在无话可说. |
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值