以前的脱文
【破解作者】 coder【作者邮箱】 [email protected]
【作者主页】 www666.ttsite.com
【使用工具】 od,peid,脑子
【破解平台】 Win9x/NT/2000/XP
【软件名称】 FTPup
【软件简介】 猫兄那里拿来的!
【加壳方式】 穿山甲4.X
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
首先设置一下OD忽略所有,再忽略一个C000001E (INVALID LOCK SEQUENCE)
载入之后看停在
00449243 >/$55 PUSH EBP 壳入口点
00449244|.8BEC MOV EBP,ESP
00449246|.6A FF PUSH -1
00449248|.68 402F4700 PUSH NOTEPAD_.00472F40
0044924D|.68 808F4400 PUSH NOTEPAD_.00448F80 ;SE 处理程序安装
00449252|.64:A1 0000000>MOV EAX,DWORD PTR FS:
00449258|.50 PUSH EAX
00449259|.64:8925 00000>MOV DWORD PTR FS:,ESP
00449260|.83EC 58 SUB ESP,58
00449263|.53 PUSH EBX
00449264|.56 PUSH ESI
00449265|.57 PUSH EDI
00449266|.8965 E8 MOV DWORD PTR SS:,ESP
00449269|.FF15 88D14600 CALL DWORD PTR DS:[<&KERNEL32.GetVersion>;kernel32.GetVersion
0044926F|.33D2 XOR EDX,EDX
我下这个断点
he GetModuleHandleA+5
shitf+F9
然后看堆栈友好提示
当出现
00129528|00BC6DF3返回到 00BC6DF3 来自 kernel32.GetModuleHandleA
0012952C|00BDBC1CASCII "kernel32.dll"
00129530|00BDCEC4ASCII "VirtualAlloc"
00129534|00BDFA98
和
00129528|00BC6E10返回到 00BC6E10 来自 kernel32.GetModuleHandleA
0012952C|00BDBC1CASCII "kernel32.dll"
00129530|00BDCEB8ASCII "VirtualFree"
时说明马上就到返回时机了!
再shift+F9
到这里
0012928C|00BB5CE1返回到 00BB5CE1 来自 kernel32.GetModuleHandleA
00129290|001293DCASCII "kernel32.dll"
马上取消断点
alt+F9 返回
返回到这里
00BB5CE1 8B0D AC40BE00 MOV ECX,DWORD PTR DS:
00BB5CE7 89040E MOV DWORD PTR DS:,EAX
00BB5CEA A1 AC40BE00 MOV EAX,DWORD PTR DS:
00BB5CEF 391C06 CMP DWORD PTR DS:,EBX
00BB5CF2 75 16 JNZ SHORT 00BB5D0A
00BB5CF4 8D85 B4FEFFFF LEA EAX,DWORD PTR SS:
00BB5CFA 50 PUSH EAX
00BB5CFB FF15 BC62BD00 CALL DWORD PTR DS: ; kernel32.LoadLibraryA
00BB5D01 8B0D AC40BE00 MOV ECX,DWORD PTR DS:
00BB5D07 89040E MOV DWORD PTR DS:,EAX
00BB5D0A A1 AC40BE00 MOV EAX,DWORD PTR DS:
00BB5D0F 391C06 CMP DWORD PTR DS:,EBX
00BB5D12 0F84 2F010000 JE 00BB5E47
00BB5D18 33C9 XOR ECX,ECX
00BB5D1A 8B07 MOV EAX,DWORD PTR DS:
00BB5D1C 3918 CMP DWORD PTR DS:,EBX
00BB5D1E 74 06 JE SHORT 00BB5D26
00BB5D20 41 INC ECX
红色的就是magic jump 了
我把它改成jmp
之后跟随进入
到这里
00BB5E47 83C7 0C ADD EDI,0C
00BB5E4A 89BD 78FDFFFF MOV DWORD PTR SS:,EDI
00BB5E50 83C6 04 ADD ESI,4
00BB5E53 395F FC CMP DWORD PTR DS:,EBX
00BB5E56^ 0F85 49FEFFFF JNZ 00BB5CA5
00BB5E5C EB 03 JMP SHORT 00BB5E61
00BB5E5E D6 SALC
然后在jmp这里下断
F9 运行到这里
我们取消断点,然后往上看,到我们刚才的magic jump那里,撤消刚才的修改
再打开内存映象
找到第一个code或text 下访问断点。
现shift + F9
两次
马上飞到OEP
脱之。
修复
剪切17个无效指针,抓取之后成功运行,脱壳成功!
--------------------------------------------------------------------------------
【破解总结】
脱壳是为了写加壳做准备!慢慢体会其乐吧!
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
脱文2
【破解作者】 coder【作者邮箱】 [email protected]
【作者主页】 www666.ttsite.com
【使用工具】 OD,peid,ResScope,脑子
【破解平台】 Win9x/NT/2000/XP
【软件名称】 packman.exe
【下载地址】 不知道
【软件简介】 以前不知什么时候下载下来的一个压缩壳,昨日整理电脑被我发现,脱他,没想到没有搞定,今日再次脱之,终于搞定。现总结经验以防下次忘记!也做为学习笔记!
【软件大小】 未查
【加壳方式】 Upack 0.2x -> Dwing *
【破解声明】 让我再次遇见你,怒而改版权之!
--------------------------------------------------------------------------------
【破解内容】
首先
我们先来查壳,养成查壳的好习惯!发现是Upack 0.2x -> Dwing *
开始有最简单的也是最常用的方法脱之,F8单步向下走,遇向上跳则F4
不成功!
其次
这次好好分析,还是拿出我们的OD载入。来到这里。
00423733 >BE 88014000 MOV ESI,Packman.00400188//壳入口点
00423738 AD LODS DWORD PTR DS:
00423739 8BF8 MOV EDI,EAX
0042373B 95 XCHG EAX,EBP
0042373C AD LODS DWORD PTR DS:
0042373D 91 XCHG EAX,ECX
0042373E F3:A5 REP MOVS DWORD PTR ES:,DWORD PTR DS>
00423740 AD LODS DWORD PTR DS:
00423741 B5 1C MOV CH,1C
00423743 F3:AB REP STOS DWORD PTR ES:
00423745 AD LODS DWORD PTR DS:
00423746 50 PUSH EAX
00423747 97 XCHG EAX,EDI
00423748 51 PUSH ECX
00423749 58 POP EAX
0042374A 8D5485 5C LEA EDX,DWORD PTR SS:
0042374E FF16 CALL DWORD PTR DS:
00423750 72 57 JB SHORT Packman.004237A9
00423752 2C 03 SUB AL,3
00423754 73 02 JNB SHORT Packman.00423758
00423756 B0 00 MOV AL,0
00423758 3C 07 CMP AL,7
0042375A 72 02 JB SHORT Packman.0042375E
0042375C 2C 03 SUB AL,3
我们Alt+M 打开内存镜像!
在
内存映射, 条目 17
地址=00401000
大小=0001C000 (114688.)
属主=Packman00400000
区段=.Upack
包含=代码
类型=Imag 01001002
访问=R
初始访问=RWE
下内存访问断点或F2
再F9运行之!
来到这里:
00423747 97 XCHG EAX,EDI ; Packman.0042A9CC //停在这里
00423748 51 PUSH ECX
00423749 58 POP EAX
0042374A 8D5485 5C LEA EDX,DWORD PTR SS:
0042374E FF16 CALL DWORD PTR DS:
00423750 72 57 JB SHORT Packman.004237A9
00423752 2C 03 SUB AL,3
00423754 73 02 JNB SHORT Packman.00423758
00423756 B0 00 MOV AL,0
F8单步向下
到这里:
004238DD- 0F84 973DFEFF JE Packman.0040767A
004238E3 56 PUSH ESI
我们发现这个跳转很大,跨区段的跳转。有可能就是程序的OEP了!
我们回车跟入看看!!(昨天就因我没有回车,脱不了他!)
这时我们来到这里:
0040767A FF DB FF //来到这里
0040767B 15 DB 15
0040767C 00 DB 00
0040767D 10 DB 10
0040767E 40 DB 40 ;CHAR '@'
0040767F 00 DB 00
00407680 6A DB 6A ;CHAR 'j'
00407681 00 DB 00
00407682 FF DB FF
00407683 15 DB 15
我们分析一下代码也可以Ctral+A 变成:
0040767A FF DB FF //来到这里
0040767B 15 DB 15
0040767C 00104000 DD Packman.00401000
00407680 6A DB 6A ;CHAR 'j'
00407681 00 DB 00
00407682 FF DB FF
00407683 15 DB 15
00407684 44104000 DD Packman.00401044
00407688 A3 DB A3
我们脱下试试。
现在我们用peid查,发现 nothing found 区段为 rsrc
运行一下。发现报错了。我们修复看看,发现这人地方不是OEP的提示!
再次
我们再次载入刚才脱下的程序,这时我们发现代码变成如下代码:
004238DD >- 0F84 973DFEFF JE ddd.0040767A
004238E3 56 PUSH ESI
004238E4 97 XCHG EAX,EDI
004238E5 FF53 FC CALL DWORD PTR DS:
004238E8 95 XCHG EAX,EBP
004238E9 AC LODS BYTE PTR DS:
004238EA 84C0 TEST AL,AL
我们F8试试,再次脱下她!
OEP为:767A
运行,还是报错!
为什么,现次修复!
发现有一指针为假!
现在我们来剪切掉,抓取修复!
运行,成功,查壳,发现为 nothing found
我的妈呀!
有ResScope载入修改你的版权!!
完工!
--------------------------------------------------------------------------------
【破解总结】
这次学会了不能只用现成的脱壳方法,要总结及分析代码,运用所学知识多次分析,得到OEP!
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
破文3
【破解作者】 coder【作者邮箱】 [email protected]
【作者主页】 www666.ttsite.com
【使用工具】 od,peid,脑子
【破解平台】 Win9x/NT/2000/XP
【软件名称】 spuerdic.exe
【下载地址】 附件里
【软件简介】 一个字典生成器,居然要15元的注册费,像我这样的穷人哪有钱注册,只好破解你了,对不住了!
【软件大小】 332kb
【加壳方式】 无壳
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
首先查壳,发现VC编译
无壳就好办了。点注册选项卡,打入91919191,这可是我的大法哦,次次成功!呵
点注册,晕!它要重起验证,看看有没有生成什么文件,没有,那就是注册表里了,找啊找
终于在HKEY_CURRENT_USER\Software\EUsoft\superdic里找出她的!
删了它!
OD载入,然后找未注册字样。找到一处,上面还有已注册哦。看来作者还是挺好的。不破她还是过意不去了!
先来爆破,天热嘛,多爆几个解解火!
来到这里
004030F6 .83D8 FF SBB EAX,-1
004030F9 85C0 TEST EAX,EAX
004030FB 0F85 AB000000 JNZ superdic.004031AC//跳到未注册
00403101 8D6C24 2C LEA EBP,DWORD PTR SS:
00403105 8D86 A4050000 LEA EAX,DWORD PTR DS:
0040310B 8A10 MOV DL,BYTE PTR DS:
0040310D 8A5D 00 MOV BL,BYTE PTR SS:
00403110 8ACA MOV CL,DL
00403112 3AD3 CMP DL,BL
00403114 75 1E JNZ SHORT superdic.00403134
00403116 84C9 TEST CL,CL
00403118 74 16 JE SHORT superdic.00403130
0040311A 8A50 01 MOV DL,BYTE PTR DS:
0040311D 8A5D 01 MOV BL,BYTE PTR SS:
00403120 8ACA MOV CL,DL
00403122 3AD3 CMP DL,BL
00403124 75 0E JNZ SHORT superdic.00403134
00403126 83C0 02 ADD EAX,2
00403129 83C5 02 ADD EBP,2
0040312C 84C9 TEST CL,CL
0040312E ^ 75 DB JNZ SHORT superdic.0040310B
00403130 33C0 XOR EAX,EAX
00403132 EB 05 JMP SHORT superdic.00403139
00403134 1BC0 SBB EAX,EAX
00403136 83D8 FF SBB EAX,-1
00403139 85C0 TEST EAX,EAX
0040313B 74 6F JE SHORT superdic.004031AC//跳到未注册
0040313D 8D4424 2C LEA EAX,DWORD PTR SS:
00403141 .8BCE MOV ECX,ESI
00403143 .50 PUSH EAX
00403144 .68 A1040000 PUSH 4A1
00403149 .E8 C8AB0200 CALL superdic.0042DD16
下面是已注册与未注册代码处:
0040319B .8BC8 MOV ECX,EAX
0040319D .E8 7EAD0200 CALL superdic.0042DF20
004031A2 .68 B4214400 PUSH superdic.004421B4 ;易优软件--超级字典生成器 v3.2 (已注册)
004031A7 .E9 0E030000 JMP superdic.004034BA
004031AC >6A 00 PUSH 0
004031AE .68 52040000 PUSH 452
004031B3 .8BCE MOV ECX,ESI
004031B5 .E8 04AB0200 CALL superdic.0042DCBE
004031BA .8BC8 MOV ECX,EAX
004031BC .E8 5FAD0200 CALL superdic.0042DF20
004031C1 .6A 00 PUSH 0
004031C3 .68 9D040000 PUSH 49D
004031C8 .8BCE MOV ECX,ESI
004031CA .E8 EFAA0200 CALL superdic.0042DCBE
004031CF .8BC8 MOV ECX,EAX
004031D1 .E8 4AAD0200 CALL superdic.0042DF20
004031D6 .6A 00 PUSH 0
004031D8 .68 75040000 PUSH 475
004031DD .8BCE MOV ECX,ESI
004031DF .E8 DAAA0200 CALL superdic.0042DCBE
004031E4 .8BC8 MOV ECX,EAX
004031E6 .E8 35AD0200 CALL superdic.0042DF20
004031EB .6A 00 PUSH 0
我们在刚才跳到未注册字样的两处汇编,NOP掉还有早吗?
好吧,保存运行,成功注册了。
下面我们来做注册机,先删了注册表的注册项。
打开我们的KEYMAKE1。7
选内存注册机,我们找到刚才的注册按纽处,下断,再找到两个跳到未注册的跳传前面下断,运行,断在跳到未
注册字样的那个断点上,我们再来F8来到这里:
004030F4 > \1BC0 SBB EAX,EAX//下断处
004030F6 .83D8 FF SBB EAX,-1
004030F9 85C0 TEST EAX,EAX
004030FB 0F85 AB000000 JNZ superdic.004031AC//跳向未注册,死亡跳
00403101 8D6C24 2C LEA EBP,DWORD PTR SS:
00403105 8D86 A4050000 LEA EAX,DWORD PTR DS:
0040310B 8A10 MOV DL,BYTE PTR DS:
0040310D 8A5D 00 MOV BL,BYTE PTR SS:
00403110 8ACA MOV CL,DL
00403112 3AD3 CMP DL,BL
00403114 75 1E JNZ SHORT superdic.00403134
00403116 84C9 TEST CL,CL
00403118 74 16 JE SHORT superdic.00403130
0040311A 8A50 01 MOV DL,BYTE PTR DS:
0040311D 8A5D 01 MOV BL,BYTE PTR SS:
00403120 8ACA MOV CL,DL
00403122 3AD3 CMP DL,BL
00403124 75 0E JNZ SHORT superdic.00403134
00403126 83C0 02 ADD EAX,2
00403129 83C5 02 ADD EBP,2
0040312C 84C9 TEST CL,CL
0040312E ^ 75 DB JNZ SHORT superdic.0040310B
00403130 33C0 XOR EAX,EAX
00403132 EB 05 JMP SHORT superdic.00403139
00403134 1BC0 SBB EAX,EAX
00403136 83D8 FF SBB EAX,-1
00403139 85C0 TEST EAX,EAX
0040313B 74 6F JE SHORT superdic.004031AC//跳向未注册
0040313D 8D4424 2C LEA EAX,DWORD PTR SS:
00403141 .8BCE MOV ECX,ESI
00403143 .50 PUSH EAX
00403144 .68 A1040000 PUSH 4A1
00403149 .E8 C8AB0200 CALL superdic.0042DD16
0040314E .6A 00 PUSH 0
00403150 .68 A0040000 PUSH 4A0
00403155 .8BCE MOV ECX,ESI
我们F8来到004030F9 85C0 TEST EAX,EAX
这句的意思是把两个EAX的值相比较,然后再执行下一句,跳还是不跳!等就不跳,不等就跳向over
我们停在这里查看EAX发现其值为-1
难道这就是注册码?
不敢相信,我们就打入试试,天那,居然成功了。
再在KEYMAKE里写入地址
4030F9
1
85
2
添加,然后要注意的是,我们这回不是内存方式的。因为我们看不到注册码,可爱的宝贝在寄存器当中呢。
我们就在寄存器那里点勾,然后选EAX
生成,测试,成功注册,到此程序已破解成功!拿着内存注册机玩去吧!
--------------------------------------------------------------------------------
【破解总结】
第一次破重起注册成功!没有开注册表监视也没有文件监视就成功了,可怜的作者啊~~!成功的原因是发现了程序的字符串没加密,要不我也搞不定了!运气而已!
脱文4
【破解作者】 coder【作者邮箱】 [email protected]
【作者主页】 www666.ttsite.com
【使用工具】 OD Peid
【破解平台】 XP
【软件名称】 加了壳的delphi记事本
【下载地址】 向我要吧,呵呵
【软件简介】 没什么好介绍的,开脱吧
【加壳方式】 EZIP 1.0
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
1.查壳 EZIP 1.0 -> Jonathan Clark
overlay,不会吧,这样子,还是不要想这么多吧,先试脱!
2.OD伺候!来到这里
004980BE > $ /E9 19320000 JMP k_compre.0049B2DC
004980C3 . |E9 7C2A0000 JMP k_compre.0049AB44
004980C8 $ |E9 19240000 JMP k_compre.0049A4E6
004980CD $ |E9 FF230000 JMP k_compre.0049A4D1
004980D2 . |E9 1E2E0000 JMP k_compre.0049AEF5
004980D7 $ |E9 882E0000 JMP k_compre.0049AF64
004980DC $ |E9 2C250000 JMP k_compre.0049A60D
004980E1 $ |E9 AE150000 JMP k_compre.00499694
004980E6 $ |E9 772B0000 JMP k_compre.0049AC62
004980EB $ |E9 87020000 JMP k_compre.00498377
004980F0 $ |E9 702E0000 JMP k_compre.0049AF65
004980F5 |CC INT3
004980F6 |CC INT3
004980F7 |CC INT3
004980F8 |CC INT3
004980F9 |CC INT3
004980FA |CC INT3
004980FB |CC INT3
哇,这么多跳,偶不怕它,嘿嘿!我们先单步跟踪法跟跟看吧。
F8一步到这里:
0049B2DC/> \55 PUSH EBP
0049B2DD|.8BEC MOV EBP,ESP
0049B2DF|.81EC 28040000 SUB ESP,428
0049B2E5|.53 PUSH EBX
0049B2E6|.56 PUSH ESI
0049B2E7|.57 PUSH EDI
0049B2E8|.8D85 94FCFFFF LEA EAX,DWORD PTR SS:
0049B2EE|.50 PUSH EAX
0049B2EF|.E8 FCCDFFFF CALL k_compre.004980F0
0049B2F4|.59 POP ECX
0049B2F5|.85C0 TEST EAX,EAX
0049B2F7|.75 05 JNZ SHORT k_compre.0049B2FE
0049B2F9|.E9 8C030000 JMP k_compre.0049B68A
0049B2FE|>68 00800000 PUSH 8000
一直F8,遇近call就F7,可惜这个壳我都用F8就来这到这里了。
0049B664|.8B85 2CFCFFFF MOV EAX,DWORD PTR SS:
0049B66A|.8B40 10 MOV EAX,DWORD PTR DS:
0049B66D|.8B8D 2CFCFFFF MOV ECX,DWORD PTR SS:
0049B673|.0341 1C ADD EAX,DWORD PTR DS:
0049B676|.8985 38FCFFFF MOV DWORD PTR SS:,EAX
0049B67C|.8B85 38FCFFFF MOV EAX,DWORD PTR SS:
0049B682|.5F POP EDI
0049B683|.5E POP ESI
0049B684|.5B POP EBX
0049B685|.8BE5 MOV ESP,EBP
0049B687|.5D POP EBP
0049B688|.- FFE0 JMP EAX ;k_compre.00479A20
是不是和开头对应了?我看到的是哦!嘿。再F8,来到这里!
00479A20 55 PUSH EBP
00479A21 8BEC MOV EBP,ESP
00479A23 83C4 F0 ADD ESP,-10
00479A26 B8 D0974700 MOV EAX,k_compre.004797D0
像什么?delphi程序,脱下试试,第一种方式,脱下正常运行,成功!
--------------------------------------------------------------------------------
【破解总结】
简单的壳有利于学习加壳软件的编写,可惜偶看不懂这里汇编代码啊!多多向论坛里的隐居的高手学习了!
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
2005,12,10
破文5
【破解作者】 coder【作者邮箱】 [email protected]
【作者主页】 www.chinapyg.com
【使用工具】 od peid w32无极版 脑子
【破解平台】 WinXP
【软件名称】
【软件简介】 crackme
【加壳方式】 双壳
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
1。首先查壳为:ASPack 2.12 -> Alexey Solodovnikov 注意看区段,怀疑变形壳
2。OD载入,两次ESP脱下,查壳发现为UPX壳。再载入,再两次ESP,脱下。查,成功!C++编译!
3。w32无极版载入,查找字符串,双击,来到
004015af
向上看。发现原来只有你输入正确码才会提示成功(那几个单词我看不懂),否功提示出错。
4。向上找到提示成功的一个地址,随便找一个,OD载入,Ctral+G,来到
00401545 66:894D EC MOV WORD PTR SS:,CX
00401549 6A 0A PUSH 0A
0040154B 8D55 F4 LEA EDX,DWORD PTR SS:
0040154E 52 PUSH EDX
0040154F 68 E8030000 PUSH 3E8
00401554 8B4D E0 MOV ECX,DWORD PTR SS:
00401557 E8 A8050000 CALL <JMP.&mfc42.#3098_?GetDlgItemTextA@>
0040155C 8D45 F4 LEA EAX,DWORD PTR SS:
0040155F 50 PUSH EAX
00401560 FF15 04204000 CALL DWORD PTR DS:[<&kernel32.lstrlen>]; kernel32.lstrlenA
00401566 8945 F0 MOV DWORD PTR SS:,EAX
00401569 837D F0 01 CMP DWORD PTR SS:,1
0040156D 73 16 JNB SHORT DCG_Crac.00401585
0040156F 6A 40 PUSH 40
00401571 68 2C304000 PUSH DCG_Crac.0040302C ; ASCII "CrackMe"
00401576 68 34304000 PUSH DCG_Crac.00403034 ; ASCII "Krivo ti nisi Cracker!!!!"
0040157B 8B4D E0 MOV ECX,DWORD PTR SS:
0040157E E8 7B050000 CALL <JMP.&mfc42.#4224_?MessageBoxA@CWnd>
00401583 EB 3C JMP SHORT DCG_Crac.004015C1
00401585 8D4D E4 LEA ECX,DWORD PTR SS:
00401588 51 PUSH ECX
00401589 8D55 F4 LEA EDX,DWORD PTR SS:
0040158C 52 PUSH EDX
0040158D FF15 00204000 CALL DWORD PTR DS:[<&kernel32.lstrcmp>]; kernel32.lstrcmpA
00401593 85C0 TEST EAX,EAX
00401595 75 16 JNZ SHORT DCG_Crac.004015AD
00401597 6A 40 PUSH 40
00401599 68 50304000 PUSH DCG_Crac.00403050 ; ASCII "CrackMe"
0040159E 68 58304000 PUSH DCG_Crac.00403058 ; ASCII "Tocno ti si Cracker"
在这里下断 0040154E 52 PUSH EDX
运行之后打入9191919191来到断点。
F8走,,终于在00401588 出现注册码,马上记下,keymake做出注册机。
算是完成。
--------------------------------------------------------------------------------
【破解总结】
破解难,脱壳更难,我所会的只有一点点。不足之处请指教!
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
脱文6
【破解作者】 coder【作者邮箱】 [email protected]
【作者主页】 www666.ttsite.com
【使用工具】 od,peid,脑子
【破解平台】 Win9x/NT/2000/XP
【软件名称】 仙剑壳
【下载地址】 无
【软件简介】 脱吧,还说什么
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
查壳,发现C++编译,区段为XJ
脱壳,设置OD不忽略所有异常,OD载入。我们来到这里
00405060 >55 PUSH EBP
00405061 8BEC MOV EBP,ESP
00405063 6A FF PUSH -1
00405065 68 3E1E4000 PUSH 仙剑个人.00401E3E
0040506A 68 521E4000 PUSH 仙剑个人.00401E52
0040506F 64:A1 00000000MOV EAX,DWORD PTR FS:
shift+F9直到运行为止,记下次数。我这里是6次
再次载入,这次还是shift+F9这回我们少一次(5次),看堆栈友好提示,我们Ctral+G来到那里。
00405A7E 55 PUSH EBP
00405A7F 8BEC MOV EBP,ESP
00405A81 57 PUSH EDI
00405A82 8B45 10 MOV EAX,DWORD PTR SS:
00405A85 8BB8 C4000000 MOV EDI,DWORD PTR DS:
00405A8B FF37 PUSH DWORD PTR DS:
下断点。shift+F9运行之,来到断点。F8我们13次,来到这里
00405AB0 5F POP EDI ; 仙剑个人.00402D46
00405AB1 C9 LEAVE
00405AB2 C3 RETN
00405AB3 32C0 XOR AL,AL
看到什么了。仙剑个人....... Ctral+G快快拿下来吧!
来到这里
00402D46 6A 00 PUSH 0
00402D48 E8 7F020000 CALL 仙剑个人.00402FCC ; JMP 到 kernel32.GetModuleHandleA
00402D4D A3 00104000 MOV DWORD PTR DS:,EAX
00402D52 6A 00 PUSH 0
00402D54 68 6A2D4000 PUSH 仙剑个人.00402D6A
00402D59 6A 00 PUSH 0
00402D5B 6A 64 PUSH 64
记下特征,以备以后我们脱变形壳用。
用插件脱下即可!
不用修复,直接成功。
MASM32 / TASM32
--------------------------------------------------------------------------------
【破解总结】
脱壳要心细,小细节也不可放过。方可成功!最近发现人性有个弱点。这个一有饭吃就不知道自己以前饿过!
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢! 牛!支持兄弟!
页:
[1]