【文章标题】: SoftWrap 6.x之二:Inline Patch SoftWrap壳的方法
【文章作者】: wynney
【软件名称】: Fractal PC 3.01
【下载地址】: http://www.fractalpc.com/resources/SetupFractalPC30.exe
【使用工具】: OD、CodeCaver
--------------------------------------------------------------------------------
【详细过程】
一、前言
像这种猛壳的Inline Patch无非就是找到Patch点后,一层一层的Patch,另外还需要Patch壳的CRC校验之类的。废话就不多说了,
我们来看如何Inline Patch SoftWrap壳吧
二、Pass NAG
0、准备工作,我们先找一块空白地址吧,Patch的数据长度是95字节
我在这里选择004277DF作为存放代码的地址
1、设置忽略除了特权指令和指定异常之外的所有异常
2、F9运行,停在异常之后,Alt+E,找到Softwrap.dll路径,Ctrl+N
3、找到swAccessQuery
双击来到代码处
几次Shift+F9通过异常,中断在10001934,看堆栈
Ctrl+G:0045BBA7
??
??
三、循环解码
Ctrl+F2,重新加载,可以设置忽略所有异常了
DD 0045BB31,下内存写入断点,F9
??
我们可以看看,刚加载程序的时候,这个地方并没有解码,所以,我们需要找到他的上一层解码点
不需要特殊的操作,往上翻下代码吧
??
????
??
????
??
??
复制上述几处修改,保存为别的文件名,运行看看,汗,没反映,又不提示错误,这就是CRC校验的问题了
四、CRC
重新加载程序
DD 0045993B,下硬件访问断点->Byte,F9运行
??
????
代码集合
??
图文版PDF下载
SoftWrap 6.x之二:Inline Patch SoftWrap壳的方法.pdf
--------------------------------------------------------------------------------
【经验总结】
Inline Patch的大致流程就在下面,但是需要大家有足够的耐心和一定的汇编基础,Enjoy!
下篇:SoftWrap 6.x之三:IAT修复之Jmp dword ptr ds:[API]
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
2007年04月23