【文章标题】: Obsidium V1.3.0.4
【文章作者】:
【下载地址】: 自己搜索下载【加壳方式】: Obsidium 1.3.0.4 -> Obsidium Software [Overlay]
【编写语言】: VC6.0
【使用工具】: 一蓑烟雨 等等
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
试过了很多的OD都不行,只有一蓑烟雨的OD下 硬件断点才能断下来!
OD F9 运行可以 通过
OB壳对内存有检查,修改内存属性为 REW
搜索 00401000
搜索VC 的特征码: 随便选择 好用就行
00496EB8 >/$ 55 PUSH EBP ; (初始 cpu 选择) 00496EB9 |. 8BEC MOV EBP,ESP 00496EBB |. 6A FF PUSH -1 00496EBD |. 68 40375600 PUSH Screensh.00563740 00496EC2 |. 68 8CC74900 PUSH Screensh.0049C78C ; SE 处理程序安装 00496EC7 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0] 00496ECD |. 50 PUSH EAX 00496ECE |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP 00496ED5 |. 83EC 58 SUB ESP,58
在程序中搜到:
0040533B 64:A1 00000000 MOV EAX,DWORD PTR FS:[0] 00405341 50 PUSH EAX 00405342 64:8925 00000000 MOV DWORD PTR FS:[0],ESP 00405349 83EC 68 SUB ESP,0x68 0040534C 53 PUSH EBX 0040534D 56 PUSH ESI 0040534E 57 PUSH EDI 0040534F 8965 E8 MOV DWORD PTR SS:[EBP-0x18],ESP 00405352 33DB XOR EBX,EBX 00405354 895D FC MOV DWORD PTR SS:[EBP-0x4],EBX 00405357 6A 02 PUSH 0x2 上面几行被偷了
还有IAT 没有显示:
00406000 009F0414 00406004 009F0420 00406008 009F0000
··························这里省略 00406168 009F0294 0040616C 009F02A0 00406170 009F02AC 调向 009F0414
有很多jmp 当 看到 je判断时 je过去 下断 然后继续
知道看到显示 函数地址IAT
知道IAT的流程后 写脚本:
var fi var fix var oep var tmpesp mov oep,eip mov tmpesp,esp mov fi,405ffc loop: mov esp,tmpesp add fi,4 cmp fi,00406174 jae exit mov fix,[fi] cmp fix,10000000 jae loop mov eip,fix esto cmp eip,00995003 //此处为 显示函数地址的 左边的地址 jnz loop mov [fi],eax jmp loop exit: mov eip,oep mov esp,tmpesp ret
得到IAT后 复制二进制
重来
粘贴二进制 IAT
修复 代码头
LOADPE IMPORT (注意 import 要切除无用指针)