首 页文章中心黑客软件黑客动画绿色软件私服技术私服下载本站论坛
您当前的位置:黑客之家文章中心脱壳破解软件脱壳 → 文章内容 退出登录 用户管理
本类热门文章
相关文章
站内广告
Obsidium V1.3.0.0-V1.3.0.4脱壳+脚本
作者:FLY  来源:www.hackjia.com  发布时间:2007-12-25 0:05:10

减小字体 增大字体

sp;     jmp short 0090D44B  ; There is some Special API need Handed Repaired.
0090D44B    9D              popfd
0090D44C    EB 03           jmp short 0090D451
0090D451    E9 7D3C0500     jmp 009610D3        ; Jump StolenOEP !  Found by heXer & fly
//飞向光明之颠

看看堆栈:
0012FF78   FFFFFFFF
0012FF7C   00908BC4   
0012FF80   00908BC8

寄存器:
ESP=0012FF78
EBP=0012FFC0
ESI=FFFFFFFF

找个Visual C++ 6.0的程序参考一下,Win98的WRITE.EXE

0040100C    55              push ebp
0040100D    8BEC            mov ebp,esp
0040100F    83EC 44         sub esp,44
00401012    56              push esi
00401013    FF15 58204000   call dword ptr ds:[402058]   ; kernel32.GetCommandLineA

Alt+M设置00960000区段为完整权限,否则会提示:
Unable to read memory of debugged process (00960000..00968FFF).

修复StolenOEPCode如下:

009610CC    55              push ebp
009610CD    8BEC            mov ebp,esp
009610CF    83EC 44         sub esp,44
009610D2    56              push esi
009610D3    FF15 E0639600   call dword ptr ds:[9663E0]    ; kernel32.GetCommandLineA
009610D9    8BF0            mov esi,eax
009610DB    8A00            mov al,byte ptr ds:[eax]
009610DD    3C 22           cmp al,22
009610DF    75 13           jnz short 009610F4

用LoadPE完全dump出Test.Obsidium V1.3.0.4.exe进程,区域dump出00960000-00969000段,Load入dump.exe,修改新区段VirtualAddress=00560000。只保留Rebuilder的Validate PE选项Rebuild dump.exe


—————————————————————————————————
四、输入表


在转存中察看输入表函数的开始和结束地址
运行ImportRec,OEP=005610CC、RVA=005662E0、Size=0000023C
会发现有几个无效指针,注意了,某些是填充在DLL之间的垃圾数据,而某些是待修复函数

如005662F4处明显是填充在DLL之间的垃圾数据,直接Cut掉
1  005662F0  advapi32.dll  01CE  RegCreateKeyA
0  005662F4  ?  0000  0097070A
1  005662F8  gdi32.dll  01A6  GetStockObject

而下面这些则是需要修复的函数:
1  00566368  kernel32.dll  0252  LocalUnlock
0  0056636C  ?  0000  00970090
1  00566370  kernel32.dll  024C  LocalFree
1  00566374  kernel32.dll  0248  LocalAlloc
0  00566378  ?  0000  009700B4
1  0056637C  kernel32.dll  01EB  GlobalAlloc

下面再说说如何修复这些函数吧。
现在我们用UEStudio打开Obsidium V1.3.0.0.osc,找到下面这行
log FixCode1
//jmp Final
把//jmp Final前的//去掉,这样脚本就不处理输入表,直接去OEP了

新开一个OllyDBG,载入Test.Obsidium V1.3.0.4.exe,运行修改后的脚本,走至StolenOEP
设置目前代码所在区段为完整权限,找到那些调用待修复函数的地方。如搜索常数:96636C
009634C6     FF15 6C639600      call dword ptr ds:[96636C]

找到这里,Ctrl+* 在009634C6处新建EIP,跟进去

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页

[] [返回上一页] [打 印]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 文章投稿 - 软件发布 -