首页
社区
课程
招聘
Obsidium V1.3.0.0-V1.3.0.4 UnPacK Script
发表于: 2005-11-1 16:17 15077

Obsidium V1.3.0.0-V1.3.0.4 UnPacK Script

fly 活跃值
85
2005-11-1 16:17
15077
收藏
免费 7
支持
分享
最新回复 (26)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
Obsidium V1.3.0.0-V1.3.0.4 UnPacK Script 演示

还是写个简单的脚本演示吧。
―――――――――――――――――――――――――――――――――
一、PEiD Sign

[Obsidium V1.3.0.0 -> Obsidium Software]
signature = EB 04 ?? ?? ?? ?? E8 ?? 00 00 00
ep_only = true

[Obsidium V1.3.0.4 -> Obsidium Software]
signature = EB 02 ?? ?? E8 ?? 00 00 00
ep_only = true

―――――――――――――――――――――――――――――――――
二、脚本说明

1、此脚本仅仅支持Obsidium V1.3.0.0和V1.3.0.4加壳程序,不支持其他版本

2、可以在Win2K.SP4/WinXP.SP2上使用,其他NT系统平台需要修改相关函数地址,不支持Win98

3、Get.eXe.PE.Information.osc为包含脚本,和Obsidium V1.3.0.0.osc必须放在相同目录下

4、heXer & fly 合作完成。由于要修复部分特殊函数的分支处理,所以写得很乱,各位见笑了。

5、SDK和某分支处理的特殊函数需要手动修复。Obsidium V1.3增强了输入表函数的加密,下次要换个思路来修复。

6、最后用Obsidium V1.3.0.4加壳Win98记事本来简单演示一下如何使用此脚本。

7、如果Obsidium重定位后的地址低于原eXe的基址,则需要手动处理Obsidium的重定位过程,不过这种情况很少见。

8、脚本已经处理了反跟踪,可以使用OllyDBG原版来运行此脚本。

―――――――――――――――――――――――――――――――――
三、运行脚本

清除掉以前的所有断点,设置OllyDBG忽略所有异常选项,虽然脚本已经对异常进行了处理,但还是要求忽略所有异常,免得麻烦。载入Test.Obsidium V1.3.0.4.exe

00407000    EB 02           jmp short Test_Obs.00407004
//暂停在壳入口    如果不是暂停在EP,请设置OllyDBG事件选项
00407002    94              xchg eax,esp

运行脚本。Plugins->OllyScript->Run Script->Obsidium V1.3.0.0.osc


选择“是”,脚本开始运行。弹出第2个对话框,提示某些api需要手动修复


第3个对话框弹出后我们要准备修复StolenOEPCode


确定后脚本结束。F7

0090D444    61              popad               ; Fixed ImportTable.
//此时我们暂停在这里
0090D445    EB 04           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,跟进去看看处理

00970090     60                 pushad
00970091     66:BF A665         mov di,65A6
00970095     B2 3A              mov dl,3A
00970097     E9 4370F9FF        jmp 009070DF
009070DF     EB 03              jmp short 009070E4

一直F7走就能看见正确的API了,当然,不是每个处理都一样的
0090166A     FFB6 A5050000      push dword ptr ds:[esi+5A5] ; kernel32._llseek
00901670     FF93 84000000      call dword ptr ds:[ebx+84]
所以0056636C应该修复成kernel32.dll _llseek

看到API后就不必再F7了,搜索其他常数:00966378
009632EA     FF15 78639600      call dword ptr ds:[966378]
F7跟踪会看到这里
00901514     FFB6 FB060000      push dword ptr ds:[esi+6FB] ; kernel32._lclose

找齐函数后就可以FixDump
Game Over

―――――――――――――――――――――――――――――――――                                 
         ,     _/
        /| _.-~/            \_     ,        青春都一晌
       ( /~   /              \~-._ |\
       `\\  _/                \   ~\ )          忍把浮名
   _-~~~-.)  )__/;;,.          \_  //'
  /'_,\   --~   \ ~~~-  ,;;\___(  (.-~~~-.        换了脱壳轻狂
`~ _( ,_..--\ (     ,;'' /    ~--   /._`\
  /~~//'   /' `~\         ) /--.._, )_  `~
  "  `~"  "      `"      /~'`\    `\\~~\   
                         "     "   "~'  ""
   
           UnPacKed By :  heXer & fly
               2005-11-01 16:00
2005-11-1 16:25
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
名必留强贴, 南蛮妈妈顶
2005-11-1 16:29
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
脚本大侠又出手了。我顶
2005-11-1 16:33
0
雪    币: 3688
活跃值: (4242)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
5
FLY打包一下吧。
2005-11-1 16:41
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
怎一个强字了得!!!我顶~~~~~~~~~~
2005-11-1 16:45
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
脚本已经打包上传了

附件包含:
Tree.txt
DumPed_.eXe
Obsidium V1.3.0.0.osc
Get.eXe.PE.Information.osc
Test.Obsidium V1.3.0.4.exe
Obsidium V1.3.0.0-V1.3.0.4 UnPacK Script 演示.mht
2005-11-1 16:47
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
巨牛
2005-11-1 17:09
0
雪    币: 5895
活跃值: (2717)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 fly 发布
脚本已经打包上传了

附件包含:
Tree.txt
DumPed_.eXe
........

在哪里?
2005-11-1 17:16
0
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
最初由 lucktiger 发布

在哪里?


第一楼
2005-11-1 17:28
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
11
支持先!来晚拉!
2005-11-1 20:48
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
12
fly近来喜欢玩脚本了
2005-11-1 20:58
0
雪    币: 200
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这帖不顶不行!学习!
2005-11-1 21:06
0
雪    币: 781
活跃值: (536)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
强贴要学习!
2005-11-1 21:18
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
强贴要支持
2005-11-1 22:15
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
16
强啊~~~~
2005-11-1 22:32
0
雪    币: 298
活跃值: (445)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
17
学习,好久没有OSC碰脚本了啊。。
2005-11-1 22:36
0
雪    币: 229
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
18
拿来主义~~~~~
2005-11-2 00:04
0
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
2005-11-2 00:08
0
雪    币: 398
活跃值: (1078)
能力值: ( LV9,RANK:970 )
在线值:
发帖
回帖
粉丝
20
学习.
2005-11-2 06:51
0
雪    币: 313
活跃值: (250)
能力值: ( LV9,RANK:650 )
在线值:
发帖
回帖
粉丝
21
现在不学习不行了
2005-11-2 08:11
0
雪    币: 671
活跃值: (723)
能力值: ( LV9,RANK:1060 )
在线值:
发帖
回帖
粉丝
22
学习脱壳啊,壳真是越来越厉害拉
2005-11-2 08:23
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
学习.
2005-11-2 11:10
0
雪    币: 690
活跃值: (1826)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
24
强强联手牛b
2005-11-2 13:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
牛呀!
2005-11-3 16:13
0
游客
登录 | 注册 方可回帖
返回
//