- UID
- 59749
注册时间2009-1-30
阅读权限8
最后登录1970-1-1
初入江湖
该用户从未签到
|
首先要感谢PYG版主以及各位热心的网友一直以来无私的帮助,没有你们的帮助,这个外挂的壳也不知道什么时候能脱掉!
如果你和我一样对穿山甲一无所知,那我们先来恶补一下穿山甲的知识,懂的就直接PASS吧。
如果你手上有穿山甲的软件,请仔细对照了,穿山甲因为种类繁多,脱壳的方法才各不相同的。查壳后显示有Copy MEM II 的就是非标准版啦,其余就是标准版咯,脱穿山甲壳最主要的区别就是这了。
双变单的脚本坛子上很多,很容易就下载到了!
关于程序的启动参数问题:
WIN32 函数的入口都有一个COMMANDLINE 这个就是启动参数,类似DOS 的 int main(char *argv[])。
废话不说了,进入主题吧。
用ArmFP 查壳后显示为:
Protection system (Professional)
!- <Protection Options>
Debug-Blocker
Enable Import Table Elimination
Enable Strategic Code Splicing
Enable Nanomites Processing
版本为6.24 。 我们关心的是他的保护方式,知道保护方式后就好办了。 为了方便下像我等超级菜鸟,我就多说几句。 反调试器选项我们不用管,多换几个OD试试,IAT的处理,远地址跳,以及可恶的CC由ARMinline代劳。关于CC,CC是作者在编程的时候加入的标记,刚脱好壳后的程序,一不小心就能找到一个可恶的CC。
程序为吉祥天FLYWOOOL.exe 版本为2.41 可以到吉祥天的网站或者其他地方下载,我在文章的最后会附上下载地址
直接用OD载入吧,入口为
00989000 > 60 PUSHAD
00989001 E8 00000000 CALL FlyWoool.00989006
00989006 5D POP EBP
00989007 50 PUSH EAX
按照前辈们总结的经验,我直接用脚本双变单。
接下来下he VirtualProtect断点, SHIFT+F9运行,总共7次后程序就跑起来了,总的感觉是有2次缓冲比较大的过程,其中第6次缓冲时间最长,因此第6次断下后就ALT+F9返回,返回后的代码为:
01509DA4 8B8D BCD5FFFF MOV ECX,DWORD PTR SS:[EBP-2A44] ;//*********返回到这一行**********//
01509DAA 51 PUSH ECX
01509DAB 8B95 B8D5FFFF MOV EDX,DWORD PTR SS:[EBP-2A48]
01509DB1 52 PUSH EDX
01509DB2 8B85 68D8FFFF MOV EAX,DWORD PTR SS:[EBP-2798]
01509DB8 0385 B4D5FFFF ADD EAX,DWORD PTR SS:[EBP-2A4C]
CTRL+F查找PUSH 100 并把这个块选项勾上 找到后在段首找到push ebp
01492DF0 55 PUSH EBP
01492DF1 8BEC MOV EBP,ESP
01492DF3 83EC 2C SUB ESP,2C
01492DF6 833D C0A45501 0>CMP DWORD PTR DS:[155A4C0],0
01492DFD 75 59 JNZ SHORT 01492E58
01492DFF C745 EC D7C68A6>MOV DWORD PTR SS:[EBP-14],618AC6D7
01492E06 68 00010000 PUSH 100
将push 100 修改为retn, 之后下CreateThread断点,断下后返回,然后F8 单步,很快就到达OEP了
01510985 50 PUSH EAX
01510986 6A 00 PUSH 0
01510988 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+8]
0151098B 8B51 0C MOV EDX,DWORD PTR DS:[ECX+C]
0151098E 52 PUSH EDX
0151098F 8B45 F4 MOV EAX,DWORD PTR SS:[EBP-C]
01510992 2B45 DC SUB EAX,DWORD PTR SS:[EBP-24]
01510995 FFD0 CALL EAX ;//这就是OEP了
//******************OEP*************//
004E40AC . 6A 60 PUSH 60
004E40AE . 68 A0F36E00 PUSH FlyWoool.006EF3A0
004E40B3 . E8 3C120000 CALL FlyWoool.004E52F4
004E40B8 . BF 94000000 MOV EDI,94
004E40BD . 8BC7 MOV EAX,EDI
F7 跟进,OEP就到了,接下来修复的事情都交给ARM 了。
修复远地址跳的时候把length 修改为20000, IAT把大小也改为1000 ,为什么是1000,你可以去试试更大的数,那样是浪费CPU,改小了的话可能不够,但是对于一般的程序还是足够的。
修复好后就可以脱壳了。
这里我得再多下嘴了:
到达OEP后我有很多次都是失败的,为什么会这样,我的感觉是穿山甲的断点检测比较严格。然后导致IAT出错,第一次成功之后我没怎么仔细研究,昨天有网友叫我再脱一次,我在自己机器上怎么搞也不行了, 今天换了个以前的OD,居然可以用了,很奇怪的事情。我的猜测是OD检测断点。
当你脱壳后不能运行那你得换个OD了,DS:[0119B3A0]=014DF2B0 ,如果你是这个14DF2B0地址出错的话,恭喜你,我也不下10次遇到了。换个OD试试。
修复CC的时候需要注意下,如果直接修复显示为失败的话,那你需要加个启动参数,Arminline 左边有个Edit Command Line,勾上,启动参数为start ,为什么是这个? 吉祥天启动后弹出一个更新的对话框就退出了,如果你在更新的程序里下CreateProcess断的话,你会发现他的参数是FLYWOOOL.EXE start 。
文中相关的工具下载:
吉祥天2.41:http://www.namipan.com/d/JXT.rar/844ec3abdb6c794e5bbe40aca5d52fc3eedadc3fa6063900
我脱壳所用的OD :http://www.namipan.com/d/OD.rar/e2c2c8cae978203c02566274701a750d689aadbc0e685800
脱壳后,以及修复CC后的:http://www.namipan.com/d/%e5%90%89%e7%a5%a5%e5%a4%a9.rar/3d8fda481a547df0878812f17739b8429d455f7fb04d7a00
破解不是本文的重点,各位自己去体会吧,不过这个挂不能爆破,爆破后他的程序在收发TCP包的时候会解析错误,希望有心人能够分享下他的数据包解密报告。直接修改本地DNS,可以把发送到server.jxtwg.com的数据包改到自己想要的地方。
其余工具皆来自小生我怕怕工具包
email:[email protected]
QQ: 156164697
视频地址:http://www.namipan.com/d/%e5%bd% ... c40336e816b7437a902
//版权没有,还是别到处发了//
[ 本帖最后由 msn1900 于 2009-3-11 20:37 编辑 ] |
|