首页
论坛
课程
招聘
[原创]手脱ASProtect 2.0x Registered
2008-3-27 10:59 18267

[原创]手脱ASProtect 2.0x Registered

2008-3-27 10:59
18267
【文章作者】: sskey
【软件名称】: ASPR-test.exe
【下载地址】: 见附件
【保护方式】: ASProtect 2.0x Registered -> Alexey Solodovnikov
【使用工具】: od,lordPE,ImportREC,winxp
【程序语言】: vc

       ----------------------------------------------------------------------
【说明】:
         实验程序是syscom大侠一篇文章里的附件,有stolen code,对于stolen code一般
可以用手动还原(所偷的代码少时,可以手动跟出或用未加壳的同类语言编的程序对比来还原),
但所偷代码比较多时,就只有用补区段的方法了,我正是为了了解一下脱壳时的补区段,才下了
这个附件,结果弄得我很郁闷,断断续续用了4天的时间才搞定,还到论坛上发了求助的帖子,没
人回(更郁闷!!!),后终于想通,是我在补区段后没修正好Voffset,呵呵(听到后你们都晕了吧,
被这么简单的问题困扰了几天,太有才了 .......)
    口水有点多了,下面来分享一下脱壳过程吧(高手就飘过了)
【脱壳流程】:
1、找oep
2、修复call xxxxxx
3、补区段
4、去掉壳代码校验(Route CHECK)  
【详细过程】:
1、找oep
od载入后停在这里:
00401000 >  68 01C04800     push    0048C001       //壳入口
00401005    E8 01000000     call    0040100B
0040100A    C3              retn
0040100B    C3              retn
0040100C    47              inc     edi
0040100D    EF              out     dx, eax
0040100E    6D              ins     dword ptr es:[edi], dx
0040100F    60              pushad
00401010    FD              std
00401011    FE              ???                                      ; 未知命令
00401012    7A FB           jpe     short 0040100F

可以用多次内存断点来找,不过对这个壳来说不是很精确(会超过oep几行),下面这种方法比较
准确:忽略所有异常,然后直接shift+F9让程序运行起来,然后ALt+L来到记录窗口查看经过些什么异常:
71A10000   模块 C:\windows\system32\WS2HELP.dll
00AFA8ED   访问违规: 正在写入到 [00000000]
00AF9ED6   访问违规: 正在写入到 [00000000]
00AFA0E7   访问违规: 正在写入到 [00000000]
00AFA225   访问违规: 正在写入到 [00000000]
00AF7E76   访问违规: 正在写入到 [00000000]
00AF7FCB   访问违规: 正在写入到 [00000000]
00AF8145   访问违规: 正在写入到 [00000000]
00AF8221   访问违规: 正在写入到 [00000000]
00AF8392   访问违规: 正在写入到 [00000000]
00AFA3A9   访问违规: 正在写入到 [00000000]
00AFA490   访问违规: 正在写入到 [00000000]
00AFA5FD   访问违规: 正在写入到 [00000000]
00AF6AFE   INT3 命令位于00AF6AFE
00AF7884   访问违规: 正在写入到 [00000000]
00AF7A7B   访问违规: 正在写入到 [00000000]
00AF871A   访问违规: 正在写入到 [00000000]
00AF8901   访问违规: 正在写入到 [00000000]
00AF985E   访问违规: 正在写入到 [00000000]
00AF8C31   访问违规: 正在写入到 [00000000]
00AF8E9A   访问违规: 正在写入到 [00000000]
00AF9101   访问违规: 正在写入到 [00000000]
00AF92FA   访问违规: 正在写入到 [00000000]
00AF9407   访问违规: 正在写入到 [00000000]
00AF9554   访问违规: 正在写入到 [00000000]
00AFB3B0   访问违规: 正在写入到 [00000000]
00AFB4AC   访问违规: 正在写入到 [00000000]
00AFB833   访问违规: 正在写入到 [00000000]
00AFBAB5   访问违规: 正在写入到 [00000000]
00AFBD03   访问违规: 正在写入到 [00000000]
00AFBED0   访问违规: 正在写入到 [00000000]
00AF6AFE   INT3 命令位于00AF6AFE
5ADC0000   模块 C:\windows\system32\uxtheme.dll
00AF8575   访问违规: 正在写入到 [00000000]
00AF9BF7   访问违规: 正在写入到 [00000000]
10000000   模块 E:\aspr\5\BetterJPEG\BJPEG07.dll
73D30000   模块 C:\windows\system32\MFC42.DLL
75FF0000   模块 C:\windows\system32\MSVCP60.dll
61BE0000   模块 C:\windows\system32\MFC42LOC.DLL
74680000   模块 C:\windows\system32\MSCTF.dll
7C810659   ID 00000ACC 的新线程已创建
7C810659   ID 00000AD0 的新线程已创建
           线程 00000ACC 已终止, 退出代码 0
           线程 00000AD0 已终止, 退出代码 0

我的是2个int3异常和20次左右的内存访问异常,那么我们就可以利用这些异常找到OEP,这里当然选int3
异常了(只有2次,比你shift+f9 20次快多了),好了,重新载入od,异常设置里int3选不忽略,然后shift+f9
两次,再在代码段下访问断点,shift+f9就来到真正的oep处了:
00431EB8    55              push    ebp                     //oep
00431EB9    8BEC            mov     ebp, esp
00431EBB    6A FF           push    -1
00431EBD    68 F08D4600     push    00468DF0
00431EC2    68 04734300     push    00437304
00431EC7    64:A1 00000000  mov     eax, dword ptr fs:[0]
00431ECD    50              push    eax
00431ECE    64:8925 0000000>mov     dword ptr fs:[0], esp
00431ED5    83EC 58         sub     esp, 58
00431ED8    53              push    ebx
00431ED9    56              push    esi
00431EDA    57              push    edi
00431EDB    8965 E8         mov     dword ptr [ebp-18], esp
00431EDE    FF15 88134600   call    dword ptr [461388]               ; kernel32.GetVersion
00431EE4    33D2            xor     edx, edx
00431EE6    8AD4            mov     dl, ah
00431EE8    8915 84B34700   mov     dword ptr [47B384], edx

可以看到oep处没有被偷,那再来看看输入表,数据窗口中跟随00431ede处中ds段的地址,然后上下翻看一下,
发现输入表也没有被加密:
00461000  77DA6BF0  ADVAPI32.RegCloseKey               //IAT-start
00461004  77DA761B  ADVAPI32.RegOpenKeyExA
00461008  77DA7883  ADVAPI32.RegQueryValueExA
0046100C  77DAEBE7  ADVAPI32.RegSetValueExA
00461010  77DAEDE5  ADVAPI32.RegDeleteValueA
00461014  77DCC123  ADVAPI32.RegDeleteKeyA
00461018  77DAEAF4  ADVAPI32.RegCreateKeyExA
0046101C  00000000
00461020  77195140  COMCTL32.ImageList_GetImageCount
00461024  77195323  COMCTL32.ImageList_Replace
00461028  77195650  COMCTL32.ImageList_GetIconSize
0046102C  77195572  COMCTL32.ImageList_Remove

(一阵窃喜,这么容易的壳),那我们dump吧,呵呵,要是现在dump就上当了,我们在oep处上下看一下,你就
不会说简单了:
00431F2E    E8 B2000000     call    00431FE5
00431F33    59              pop     ecx
00431F34    33F6            xor     esi, esi
00431F36    8975 FC         mov     dword ptr [ebp-4], esi
00431F39    E8 1E6C0000     call    00438B5C
00431F3E    E8 BDE09100     call    00D50000                      //到壳里去了
00431F43    51              push    ecx
00431F44    A3 E8CA4700     mov     dword ptr [47CAE8], eax
00431F49    E8 DC6A0000     call    00438A2A
00431F4E    A3 B8B34700     mov     dword ptr [47B3B8], eax
00431F53    E8 85680000     call    004387DD
00431F58    E8 C7670000     call    00438724
00431F5D    E8 33FBFFFF     call    00431A95
00431F62    8975 D0         mov     dword ptr [ebp-30], esi
00431F65    8D45 A4         lea     eax, dword ptr [ebp-5C]
00431F68    50              push    eax
00431F69    E8 92E09100     call    00D50000                    //这里也是
00431F6E    19E8            sbb     eax, ebp

还有n多处,ctrl+f:call 00d50000,搜索一下,搜出来的数量很惊人,200多处,函数调用的高级保护......

2、修复call xxxxxxxx
当然我们可以在00D50000处下短点,然后跟出它每次调用什么函数,但数量太大,我们就想到了patch,前段日子学了
一下脚本,干脆就自己写了个脚本来修复call xxxxxxxx:
*****************************************************************
var tmp1
var tmp2
var vmadd
var oepbase

dbh
gpa "GetSystemTime","kernel32.dll"
mov tmp1,$RESULT
cmp tmp1,0
je erro
bp tmp1
esto
bc tmp1
rtu
mov tmp1,eip
gmemi tmp1,MEMORYBASE
mov tmp1,$RESULT
cmp tmp1,0
je erro
mov vmadd,tmp1
gpa "GetVersion","kernel32.dll"
mov tmp1,$RESULT
cmp tmp1,0
je erro
bp tmp1
esto
bc tmp1
rtu
mov tmp1,eip
gmemi tmp1,MEMORYBASE
mov oepbase,$RESULT
cmp oepbase,0
je erro
mov tmp2,00460b00
mov [tmp2],#BA00104000803AE875128B420103C283C0053D0000D500750360FFE24281FA00#
add tmp2,20
mov [tmp2],#10460076E0EB36B9001046008B55F43911751D890D0008460081C43C02000061#
add tmp2,20
mov [tmp2],#8B1D00084600895A0266C702FF15EBCC83C10481F9AC1646007CD4EB009090#
mov tmp1,vmadd
find tmp1,#68A443B0008D85C4FEFFFF#
mov tmp2,$RESULT
cmp tmp2,0
je erro
asm tmp2,"push 00460b27"
mov eip,00460b00
bp 00460b5d
run
cmp eip,00460b5d
jne erro
bc eip
fill 00460b00,70,00
mov [tmp2],#68A443B000#
find oepbase,#558BEC6AFF68F08D46006804734300#
mov tmp1,$RESULT
cmp tmp1,0
je erro
mov eip, tmp1
jmp end
erro:
msg "error!"
end:
msg "now,you can dump!"
ret
******************************************************************************

讲一下脚本的处理思路:从代码段的开头到结尾搜索call 00d50000这条指令,找到后直接跳去壳代码里去执行,
不过得到函数的地址我们用脚本写回代码段,而不是壳里了,具体代码我也不多说了..........
用od重新加载目标程序,忽略所有异常,然后直接运行脚本,完成后我们就可以dump了,然后再建一下输入表,
注意有一个输入表指针ImportREC不识别,用它的反汇编可以看一下它的代码,就是GetProcAddress

3、补区段
这时运行dump.exe会提示"xxxxxxxx地址的内存不可读.......",我们跟踪一下原程序可发现:
00432348    68 0000D900     push    0D90000            
0043234D    C3              retn                           //变形的jmp
0043234E    9E              sahf
0043234F    03CB            add     ecx, ebx
00432351    3AF8            cmp     bh, al

jmp的变形,又到壳代码去了,还有多处,我不帖出代码了,这些其实是solen code,代码少的话,可以手工还原,
但这个壳的stolen code是不少的,那就只有用补区段的方法了,现在问题有来了,你怎么知道哪些区段要补,我
的思路是这样的,先让原程序走到oep,这时代码已基本解压完毕,然后在壳在内存中申请的所有区段下访问断点,
然后一直shift+F9,直到程序启动,这时直接ALT+M到内存窗口看用了哪些段,再区域转存下来,(当然也可以在下
好所有的访问断点后,每次shift+f9中断的时候记下访问了哪个段):
地址                   大小                         类型
00990000          00008000 (32768.)              Priv 00021004
00A90000          00003000 (12288.)              Priv 00021004
.
.
.
00DE0000          00001000 (4096.)               Priv 00021040

总共下断30多个,shift+f9完后,我数了下,用了22个段,记录下来,然后就是体力活了,用 lordpe区域转存把
那22个段全dump下来,然后再用lordpe的pe编辑功能,把刚才那些段全部添加到dump.exe文件的尾部,(注意要按地址
的先后顺序添加,要不到时就会出错了),添加完后还有很重要的一步就是修改刚才添加段的Voffset:
如:00990000--> 改为:00990000-00400000=00590000
    00DE0000--> 改为:00DE0000-00400000=009E0000
(我脱这个壳时就是因为这里没弄对,还以为自己没脱成功,弄得我郁闷了好几天..........)
修改完Voffset后,保存再重建一下pe,(完了没有,我看都看累了),还有最后一步

4、去掉壳代码校验(Route CHECK)
Route check:代码完整性校验,不修改它的话脱掉的程序是运行不起的,怎么找了,用特征码吧:

MOV  EAX,[EAX+34]  
CALL EAX            
SUB  [EBP+C],EAX      
MOV  EAX,[EBP+C]
二进制搜索:8B 40 34 FF D0 29 45 0C 8B 45 0C
          地址             大小
我的是在:00AE0000        00030000  段中
找到后把上面几句改为:

MOV  EAX,[EAX+34]    =>  NOP
CALL EAX             =>  NOP
SUB  [EBP+C],EAX     =>  MOV   EAX,[ESP+58]  
MOV  EAX,[EBP+C]     =>  SUB   EAX,5
(具体的原因请参考syscom的帖子,我再写上来就显得重复了)
再复制到可执行文件
运行一下,正常,打完收工了.........

【尾声】:
打字速度慢,弄完这篇文章,用了3个小时左右,发这篇帖子,为自己在脱壳学习的历程上留个记恋吧
因为脱壳的学习可能要告一段落了,没时间啊..........,不过论坛还是会经常来的,随时掌握动态嘛 .......
脱壳过程中参考了syscom的帖子,Volx的脚本,发现他的脚本只补了一个区段,(大部分stolen code都被他的脚本自己
修复了),实在是强 .........
最后祝各位:happy everyday!
感谢观看!!!

   ----------------------------------------------------------------------

看雪招聘平台创建简历并且简历完整度达到90%及以上可获得500看雪币~

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (29)
雪    币: 157
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
河边渔者 活跃值 1 2008-3-27 12:39
2
0
传说中的沙发?学习了……
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lunglungyu 活跃值 1 2008-3-27 13:36
3
0
很好很强大  

我要学写脚本
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
shishaojie 活跃值 2008-3-27 14:25
4
0
厉害。顺便请教一下这个壳在程序里插入了CALL 这个入口,那进去后开头部分应该有PUSH 寄存器 这样的保护现场指令吧。
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
peilan 活跃值 2008-3-27 15:13
5
0
volx大侠的脚本已经非常强大了~~ 不过还是那句话,手脱才是硬道理,跟随学习了~~
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nbgj 活跃值 2008-3-27 21:53
6
0
补区段有点弄不明白高手要是出个教程说明一下就好了
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lunglungyu 活跃值 1 2008-3-27 23:11
7
0
看了基礎區的OLLYSCRIPT 教程 也不太懂
雪    币: 209
活跃值: 活跃值 (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
sskey 活跃值 1 2008-3-28 09:26
8
0
感谢版主鼓励............
雪    币: 209
活跃值: 活跃值 (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
sskey 活跃值 1 2008-3-28 09:30
9
0
进去后肯定有保护现场的指令,只不过有n多代码变形和干扰的代码,要不就可以直接手动还原,而不用补那么多区段了.............
雪    币: 209
活跃值: 活跃值 (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
sskey 活跃值 1 2008-3-28 09:33
10
0
因为有stolen code ,所以要补区段,当然你也可以自己手动还原.............
雪    币: 271
活跃值: 活跃值 (71)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
theendone 活跃值 2008-3-28 19:11
11
0
进来看个思路,现在还没这个深度~~~
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
侃学二二 活跃值 2008-3-28 19:19
12
0
很详细,很经典。
雪    币: 180
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stuboy 活跃值 2008-3-28 21:55
13
0
按照楼主的手脱方式
ASProtect V2.X Registered -> Alexey Solodovnikov *

我们的壳应该是一样的

但是我没有到达OEP
雪    币: 180
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stuboy 活跃值 2008-3-28 21:58
14
0
记录数据
地址       信息
73FA0000   模块 C:\WINDOWS\system32\USP10.dll
77BD0000   模块 C:\WINDOWS\system32\version.dll
71A40000   模块 C:\WINDOWS\system32\wsock32.dll
71A20000   模块 C:\WINDOWS\system32\WS2_32.dll
71A10000   模块 C:\WINDOWS\system32\WS2HELP.dll
00F3FF66   访问违例: 写入到 [00000000]
00F3E2BA   INT3 命令在 00F3E2BA
00F3F004   访问违例: 写入到 [00000000]
00F3F382   访问违例: 写入到 [00000000]
00F3E2BA   INT3 命令在 00F3E2BA
5ADC0000   模块 C:\WINDOWS\system32\uxtheme.dll
66630000   模块 C:\WINDOWS\system32\vb6chs.dll
73640000   模块 C:\WINDOWS\system32\msctfime.ime
76FA0000   模块 C:\WINDOWS\system32\CLBCATQ.DLL
77020000   模块 C:\WINDOWS\system32\COMRes.dll
212F0000   模块 C:\Documents and Settings\boy\桌面\060219ASProtect\xy3shangjin\TABCTL32.OCX
27580000   模块 C:\WINDOWS\system32\MSCOMCTL.OCX
76320000   模块 C:\WINDOWS\system32\comdlg32.dll
77F40000   模块 C:\WINDOWS\system32\SHLWAPI.dll
5D170000   模块 C:\WINDOWS\system32\COMCTL32.dll
7D590000   模块 C:\WINDOWS\system32\SHELL32.dll
77180000   模块 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll
76370000   模块 C:\WINDOWS\system32\shdocvw.dll
765E0000   模块 C:\WINDOWS\system32\CRYPT32.dll
76DB0000   模块 C:\WINDOWS\system32\MSASN1.dll
75430000   模块 C:\WINDOWS\system32\CRYPTUI.dll
76C00000   模块 C:\WINDOWS\system32\WINTRUST.dll
76C60000   模块 C:\WINDOWS\system32\IMAGEHLP.dll
5FDD0000   模块 C:\WINDOWS\system32\NETAPI32.dll
76680000   模块 C:\WINDOWS\system32\WININET.dll
76F30000   模块 C:\WINDOWS\system32\WLDAP32.dll
77FC0000   模块 C:\WINDOWS\system32\Secur32.dll
76D70000   模块 C:\WINDOWS\system32\appHelp.dll
75E00000   模块 C:\WINDOWS\system32\SXS.DLL
75C60000   模块 C:\WINDOWS\system32\urlmon.dll
03AB0000   模块 C:\WINDOWS\system32\xpsp2res.dll
20000000   模块 C:\WINDOWS\system32\shdoclc.dll
7C810659   ID 00000504 的新线程已经创建
74CF0000   模块 C:\WINDOWS\system32\mlang.dll
20B00000   模块 C:\WINDOWS\system32\imon.dll
7C812A5B   调试字符:NOD32 protected [MSAFD Tcpip [TCP/IP]]
7C812A5B   调试字符:NOD32 protected [MSAFD Tcpip [UDP/IP]]
7C812A5B   调试字符:NOD32 protected [MSAFD Tcpip [RAW/IP]]
7C812A5B   调试字符:NOD32 protected [RSVP UDP Service Provider]
7C812A5B   调试字符:NOD32 protected [RSVP TCP Service Provider]
20C00000   模块 D:\网络安全\nod\pr_imon.dll
719C0000   模块 C:\WINDOWS\system32\mswsock.dll
60FD0000   模块 C:\WINDOWS\system32\hnetcfg.dll
7C810659   ID 0000017C 的新线程已经创建
7C810659   ID 00000558 的新线程已经创建
7C810659   ID 00000434 的新线程已经创建
71A00000   模块 C:\WINDOWS\System32\wshtcpip.dll
76EB0000   模块 C:\WINDOWS\system32\RASAPI32.DLL
76E60000   模块 C:\WINDOWS\system32\rasman.dll
76E80000   模块 C:\WINDOWS\system32\TAPI32.dll
76E50000   模块 C:\WINDOWS\system32\rtutils.dll
76B10000   模块 C:\WINDOWS\system32\WINMM.dll
759D0000   模块 C:\WINDOWS\system32\USERENV.dll
76EF0000   模块 C:\WINDOWS\system32\DNSAPI.dll
7C810659   ID 000001E4 的新线程已经创建
7C810659   ID 00000720 的新线程已经创建
76F90000   模块 C:\WINDOWS\system32\rasadhlp.dll
7E210000   模块 C:\WINDOWS\system32\mshtml.dll
74620000   模块 C:\WINDOWS\system32\msls31.dll
7C810659   ID 000003E4 的新线程已经创建
76BC0000   模块 C:\WINDOWS\system32\PSAPI.DLL
74650000   模块 C:\WINDOWS\system32\msimtf.dll
74680000   模块 C:\WINDOWS\system32\MSCTF.dll
           线程 00000434 已经终止,退出代码 0
           线程 00000720 已经终止,退出代码 0

只有两处INT3

然后重新设置  异常
雪    币: 180
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
stuboy 活跃值 2008-3-28 22:08
15
0
重载入后
F9
出现INT3中断

如果SHIFT+F9两次  程序运行
所以只一次SHIFT+F9
代码段 下访问断点  SHIFT+F9
到这里
00F239AB    C603 E9         mov byte ptr ds:[ebx],0E9  //停在这里,不象是OEP 但是状态栏提示 访问0040106C中断(用大狭的脚本脱出来现实OEP就是106C但是不能修复,提示不无有用数据)
00F239AE    8D53 01         lea edx,dword ptr ds:[ebx+1]
00F239B1    8902            mov dword ptr ds:[edx],eax
00F239B3    8B45 08         mov eax,dword ptr ss:[ebp+8]
00F239B6    8910            mov dword ptr ds:[eax],edx
00F239B8    B8 05000000     mov eax,5
00F239BD    5B              pop ebx
00F239BE    5D              pop ebp
00F239BF    C2 0400         retn 4

用大狭的脚本脱的时候提示偷窃代码  不大明白 据说是要补区段 不会有没找到教程
所以决定手脱试试

请问下面该怎么办 ?
雪    币: 209
活跃值: 活跃值 (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
sskey 活跃值 1 2008-3-28 22:40
16
0
到106C去看看,估计是oep被偷了,可找个相同语言的程序还原oep,
修复时无有用数据应该是输入表被加密了................
先用脚本吧,你的帖里给你推荐了2种脚本,希望能帮你脱掉...............
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wanghh 活跃值 2008-3-29 09:48
17
0
用脚本如何脱?
雪    币: 200
活跃值: 活跃值 (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kymeii 活跃值 2008-3-29 17:16
18
0
思路和方法学习了,还差细节没有懂!
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
icelinger 活跃值 2008-3-29 23:37
19
0
有时候脚本跑不起来,
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
侃学二二 活跃值 2008-3-30 19:00
20
0
学习了,很强~
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yybns 活跃值 2008-3-30 21:19
21
0
试了一下,一共补了13个段,可以运行。

00990000-00400000=590000
00A90000-00400000=690000
00AE0000-00400000=6E0000
00B30000-00400000=730000
00B84000-00400000=784000
00D90000-00400000=990000
00E20000-00400000=A20000
00E40000-00400000=A40000
00E50000-00400000=A50000
00E60000-00400000=A60000
00E70000-00400000=A70000
01CD0000-00400000=018D0000
01CE0000-00400000=018E0000
雪    币: 1221
活跃值: 活跃值 (288)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
zhujian 活跃值 2 2008-4-12 09:50
22
0
兄弟你太强了,很黄很暴力啊,哈哈
雪    币: 203
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
网络帅客 活跃值 2008-4-13 04:21
23
0
请问下如何隐藏OD,调试带XTrap保护的程序?
雪    币: 200
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
紫云 活跃值 2008-4-14 21:55
24
0
volx大侠的脚本已经非常强大了~~ 不过还是那句话,手脱才是硬道理,跟随学习了~~
雪    币: 205
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zznyysy 活跃值 2008-5-11 10:58
25
0
楼主:忽略所有异常, F9程序运行,出现调试警告窗口,用od中的HideoD插件进行od隐藏,F9程序运行后还是出现调试警告窗口;另外,用ALt+L查看记录窗口也没有int3异常记录,请指教。
游客
登录 | 注册 方可回帖
返回