b笨小孩b 发表于 2008-2-27 00:34:47

【原创】脱壳+去双自校验+爆破3种方法全过程

【原创】脱壳+去双自校验+爆破3种方法全过程   
         /:014 在看雪上发布过转来这里给和我一样的菜鸟看看!!!应该不算转帖吧
--------------------------------------------------------------------------------
【文章标题】: 原创!!脱壳+去双自校验+爆破3种方法全过程
【文章作者】: b笨小孩b
【作者邮箱】: [email protected]
【作者QQ号】: 122627056
【软件名称】: 多国语言互译专家
【软件大小】: 3.15M
【下载地址】: http://ftp.pconline.com.cn/pub/download/200707/hyfy_PConline.exe
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【保护方式】: ASPack 2.12壳+双自校验
【编写语言】: vb6.0
【使用工具】: od,ImportREC_fix
【操作平台】: winxpsp2
【软件介绍】: 各国语言互译“垃圾软件一个试试就知道了”
【作者声明】: 学习破解接近2个月的处女破献给所有和我一样的菜鸟,激励一下信心同时也是给自己的新年礼物!!同时在此感谢“惜u雪”的大力帮助!!
--------------------------------------------------------------------------------
【详细过程】
爆破语言互译专家全过程:
第一步:脱壳

查壳hyfy.exe为ASPack 2.12 -> Alexey Solodovnikov用四步打法脱壳查找popad四次来到

0042A3A6    59            pop   ecx
0042A3A7    0BC9            or      ecx, ecx
0042A3A9    8985 A8030000   mov   dword ptr , eax
0042A3AF    61            popad          和开始的pushad对应F4运行到此
0042A3B0    75 08         jnz   short 0042A3BA
0042A3B2    B8 01000000   mov   eax, 1
0042A3B7    C2 0C00         retn    0C
0042A3BA    68 00000000   push    0      两个retn是这个壳的特性
0042A3BF    C3            retn         找到他们oep就在这里进入就是!!!
0042A3C0    8B85 26040000   mov   eax, dword ptr


00402898    68 54454000   push    00404554       oep了dump   典型的vb程序
0040289D    E8 EEFFFFFF   call    00402890   jmp 到 msvbvm60.ThunRTMain                  
004028A2    0000            add   byte ptr , al
004028A4    0000            add   byte ptr , al
004028A6    0000            add   byte ptr , al
004028A8    3000            xor   byte ptr , al
004028AA    0000            add   byte ptr , al
004028AC    3800            cmp   byte ptr , al
004028AE    0000            add   byte ptr , al
004028B0    0000            add   byte ptr , al
004028B2    0000            add   byte ptr , al
004028B4    F5            cmc
004028B5    98            cwde
然后用ImportREC_fix修复删除无效的指针。不修复的话软件不能运行

修复后发现程序不能运行分析原因应该是自校验。

第二步:解除运行自校验

需要用到的函数是vb的退出函数vbaEnd,od插件设置隐藏"这个程序检测调试器"
od载入ctrl+n"在右键---查找---当前模块的名称"中找vb的退出函数__vbEnd右键---在每个参考上设置断点然后F9运行!
运行后断在:
0041314C   .50            push    eax                              ; /String8
0041314D   .8D4D A4       lea   ecx, dword ptr           ; |
00413150   .51            push    ecx                              ; |ARG2
00413151   .FF15 58114000 call    dword ptr [<&msvbvm60.__vbaStrVa>; \__vbaStrVarVal
00413157   .50            push    eax                              ; /FileName         获取我们修改后的文件名
00413158   .FF15 B4114000 call    dword ptr [<&msvbvm60.rtcFileLen>; \rtcFileLen
0041315E   .33D2          xor   edx, edx
00413160      3D 0A300200   cmp   eax, 2300A                      比较文件大小大于115k就跳我们脱壳后的文件是192k
"此时eax的值是:196608字节大于143370字节,可以把这个2300A改成32000也就是改成2m大小或是把13181的je改成jnz

0413165   .0F9FC2      setg    dl
00413168   .F7DA          neg   edx
0041316A   .66:8995 ACFEF>mov   word ptr , dx
00413171   .8D4D A4       lea   ecx, dword ptr
00413174   .FF15 34124000 call    dword ptr [<&msvbvm60.__vbaFreeS>;msvbvm60.__vbaFreeStr
0041317A   .0FBF85 ACFEFF>movsx   eax, word ptr
00413181   .85C0          test    eax, eax
00413183   .74 12         je      short 00413197      
00413185   .C745 FC 05000>mov   dword ptr , 5
0041318C   .FF15 34104000 call    dword ptr [<&msvbvm60.__vbaEnd>] ;msvbvm60.__vbaEnd断在这个位置
00413192   .E9 7A5C0000   jmp   00418E11
00413197   >C745 FC 08000>mov   dword ptr , 8
0041319E   .833D BC684200>cmp   dword ptr , 0
004131A5   .75 1C         jnz   short 004131C3
004131A7   .68 BC684200   push    004268BC
004131AC   .68 9C794000   push    0040799C
004131B1   .FF15 7C114000 call    dword ptr [<&msvbvm60.__vbaNew2>>;msvbvm60.__vbaNew2

好了修改保存再次运行我们修改后的程序"嘿嘿成功运行了"

第三步:解除注册自校验

可以运行了那就注册试试吧我想大家也等布及来爆破它了吧,运行后注册....???怎么出错了莫非这是传说中的注册自校验?有校验我就给你解了它
好了od载入运行"注意隐藏od哦这个软件检测调试器的"和上次校验一样只不过有个出错提示"嘿嘿,知道下什么断点了吧,对了还是vbaEnd断点"
运行后删除以前的断点,然后再ctrl+n"在右键---查找---当前模块的名称"中找vb的退出函数__vbEnd右键---在每个参考上设置断点然后F9运行!"
点注册,嘿嘿断下来了:
00421F69   .51            push    ecx
00421F6A   .FF15 D8104000 call    dword ptr [<&msvbvm60.rtcKillFil>;msvbvm60.rtcKillFiles
00421F70   .C745 FC 06000>mov   dword ptr , 6
00421F77   .8B55 DC       mov   edx, dword ptr
00421F7A   .52            push    edx                              ; /FileName            取我们修改后的文件名
00421F7B   .FF15 B4114000 call    dword ptr [<&msvbvm60.rtcFileLen>; \rtcFileLen
00421F81      3D 92430200   cmp   eax, 24392                                                又是比较大小
00421F86   .7E 0D         jle   short 00421F95      小于等于就跳,这里是不会跳的嘿嘿大小不一样我们在这里改成jge或是改上面24392改成32000
00421F88   .C745 FC 07000>mov   dword ptr , 7
00421F8F   .FF15 34104000 call    dword ptr [<&msvbvm60.__vbaEnd>] ;msvbvm60.__vbaEnd      停在这个位置"嘿嘿看看上面发现了什么!!!"
00421F95   >C745 F0 00000>mov   dword ptr , 0
00421F9C   .68 13204200   push    00422013
00421FA1   .EB 66         jmp   short 00422009
00421FA3   .8D45 D0       lea   eax, dword ptr
00421FA6   .50            push    eax
00421FA7   .8D4D D4       lea   ecx, dword ptr
00421FAA   .51            push    ecx
00421FAB   .8D55 D8       lea   edx, dword ptr
00421FAE   .52            push    edx
00421FAF   .6A 03         push    3
00421FB1   .FF15 A0114000 call    dword ptr [<&msvbvm60.__vbaFreeS>;msvbvm60.__vbaFreeStrList
00421FB7   .83C4 10       add   esp, 10
00421FBA   .8D45 C4       lea   eax, dword ptr


至此所有的自校验修改完成。下一步爆破"嘿嘿,最终目的”


第四步:破解使用次数限制
原来我们拿到的这个软件有30次的使用限制"嘿嘿要是好用的话使用次数不多啊!怎么办呢???让它变成无数次好不好,呵呵动手"
首先说下使用限制的次数一般情况下,除了注册表中存放,就是WINDOWS/SYSTEM32目录下,再就是自身安装文件目录下创建DAT文件或者INI配置文件中,然后重启的时候再取出来
比较下看你用了多少次,如果次数够了呢就不让你运行了!我们这个软件是通过注册表来比较的!!"呵呵怎么知道的呢,自己摸索下吧。先告诉大家一些常用的断点都是重启验证的哦!
访问注册表类常用API:

RegOpenKeyA   //打开一个现有的注册表项。

RegOpenKeyExA   //打开一个现有的注册表项。

RegCreateKeyA    //在指定的项下创建或打开一个项。

RegCreateKeyExA   //在指定的项下创建新项的更复杂的方式。

RegDeleteKeyA   //删除现有项下一个指定的子项。

RegDeleteValueA   //删除指定项下的一个值。

RegQueryValueA    //获取一个项的设置值。

RegQueryValueExA   //获取一个项的设置值。

RegSetValueA    //设置指定项或子项的值。

RegSetValueExA   //设置指定项的值。

RegCloseKey    //关闭系统注册表中的一个项。

访问文件类常用API:

CreateFileA   //打开和创建文件、管道、通信服务、设备以及控制台。

OpenFile       //它可以执行大量不同的文件操作。

ReadFile   //从文件中读出数据。

ReadFileEx    //与ReadFile相似,只是他只能用于异步读操作,并包含了一个完整的回调。

INI初始化文件相关API:

GetPrivateProfileString   //得到INI文件的配置信息。

GetPrivateProfileInt         //为初始化文件中指定的条目获得一个整数值。

WritePrivateProfilestring   //将一个KEY值写入INI文件的指定Section中。

我们这个软件在启动的时候出来一个提示对话框提示你使用了多少次还剩下多少次,我就是利用这点破它的,思路是这样的它如果要告诉你用了多少次还剩下多少次必须先做个比较我们就抓提示框,看我具体操作啊:

首先od载入运行"注意隐藏od哦这个软件检测调试器的,点F9运行等出现提示框时点F12暂停暂停后稍微等od停下后再点查看调用堆栈ALT+K,然后我们看到下面:
调用堆栈:   主线程
地址       堆栈       函数过程 / 参数                     调用来自                      结构
0012C6F0   7C92DC61   包含ntdll.KiFastSystemCallRet         ntdll.7C92DC5F                0012C7E4
0012C6F4   7C93C3DA   ntdll.ZwMapViewOfSection            ntdll.7C93C3D5                0012C7E4
0012C7E8   7C936071   ? ntdll.7C93C53F                      ntdll.7C93606C                0012C7E4
0012CAA8   7C9362DA   ? ntdll.7C936329                      ntdll.7C9362D5                0012CAA4
0012CD50   7C801BB9   ? <jmp.&ntdll.LdrLoadDll>             kernel32.7C801BB4             0012CD4C             这个就是调用提示框的地址双击进入然后停在:{1}这个位置:

“有用的代码太多不全贴出来了”
00417E89   .FF15 94114000 call    dword ptr [<&msvbvm60.__vbaStrCo>;msvbvm60.__vbaStrCopy
00417E8F   .C745 FC 82000>mov   dword ptr , 82
00417E96   .8D4D C0       lea   ecx, dword ptr
00417E99   .898D F8FEFFFF mov   dword ptr , ecx
00417E9F   .C785 F0FEFFFF>mov   dword ptr , 4008
00417EA9   .BA A0884000   mov   edx, 004088A0                  ;UNICODE "jiv1"                        jiv1这个字符串压入edx
00417EAE   .8D4D A0       lea   ecx, dword ptr                                                    将堆栈地址0012FAD4装入ecx

00417EB1   .FF15 94114000 call    dword ptr [<&msvbvm60.__vbaStrCo>;msvbvm60.__vbaStrCopy                  
00417EB7   .BA A48F4000   mov   edx, 00408FA4                  ;UNICODE "Software\Microsoft\QQPP"       将Software\Microsoft\QQPP这个注册表的项传送到edx“注册表项出来了”
00417EBC   .8D4D A4       lea   ecx, dword ptr
00417EBF   .FF15 94114000 call    dword ptr [<&msvbvm60.__vbaStrCo>;msvbvm60.__vbaStrCopy
00417EC5   .C785 B8FEFFFF>mov   dword ptr , 80000002
00417ECF   .8D95 F0FEFFFF lea   edx, dword ptr
00417ED5   .52            push    edx
00417ED6   .8D45 A0       lea   eax, dword ptr
00417ED9   .50            push    eax
00417EDA   .8D4D A4       lea   ecx, dword ptr
00417EDD   .51            push    ecx
00417EDE   .8D95 B8FEFFFF lea   edx, dword ptr
00417EE4   .52            push    edx
00417EE5   .E8 66BC0000   call    00423B50
00417EEA   .8D45 A0       lea   eax, dword ptr
00417EED   .50            push    eax
00417EEE   .8D4D A4       lea   ecx, dword ptr
00417EF1   .51            push    ecx
00417EF2   .6A 02         push    2
00417EF4   .FF15 A0114000 call    dword ptr [<&msvbvm60.__vbaFreeS>;msvbvm60.__vbaFreeStrList
00417EFA   .83C4 0C       add   esp, 0C
00417EFD   .C745 FC 83000>mov   dword ptr , 83
00417F04   .8B55 C0       mov   edx, dword ptr
00417F07   .52            push    edx
00417F08   .FF15 40124000 call    dword ptr [<&msvbvm60.rtcR8ValFr>;msvbvm60.rtcR8ValFromBstr
00417F0E   .FF15 F0114000 call    dword ptr [<&msvbvm60.__vbaFpI4>>;msvbvm60.__vbaFpI4
00417F14   .8B4D 08       mov   ecx, dword ptr
00417F17   .8941 58       mov   dword ptr , eax
00417F1A   .C745 FC 84000>mov   dword ptr , 84
00417F21   .8B55 C0       mov   edx, dword ptr
00417F24   .52            push    edx
00417F25   .FF15 80114000 call    dword ptr [<&msvbvm60.__vbaR8Str>;msvbvm60.__vbaR8Str
00417F2B   .DC1D F01A4000 fcomp   qword ptr
00417F31   .DFE0          fstsw   ax
00417F33   .F6C4 41       test    ah, 41                                 比较ah的值与41比较“这个41和ah是经过运算的出来的所以不是30                              
00417F36   .0F84 36020000 je      00418172                         ;      如果使用次数等于30次就跳到使用到期对话框同时要求注册!我们可以改成nop掉{2}
00417F3C   .C745 FC 85000>mov   dword ptr , 85
00417F43   .8B45 08       mov   eax, dword ptr
00417F46   .8B48 58       mov   ecx, dword ptr
00417F49   .83C1 01       add   ecx, 1                                    在我们上次使用的次数基础上加上1
00417F4C      0F80 BC0F0000 jo      00418F0E                         ;      修改这里为jmp可以让我们的使用次数永远为0                               {3}
00417F52   .FF15 E0104000 call    dword ptr [<&msvbvm60.__vbaI2I4>>;msvbvm60.__vbaI2I4
00417F58   .8B4D 08       mov   ecx, dword ptr
00417F5B   .66:8941 5C    mov   word ptr , ax
00417F5F   .C745 FC 86000>mov   dword ptr , 86
00417F66   .8B55 08       mov   edx, dword ptr
00417F69   .83C2 5C       add   edx, 5C
00417F6C   .8995 F8FEFFFF mov   dword ptr , edx
00417F72   .C785 F0FEFFFF>mov   dword ptr , 4002
00417F7C   .8D85 F0FEFFFF lea   eax, dword ptr
00417F82   .50            push    eax
00417F83   .8D8D 70FFFFFF lea   ecx, dword ptr
00417F89   .51            push    ecx
00417F8A   .FF15 E4114000 call    dword ptr [<&msvbvm60.rtcVarStrF>;msvbvm60.rtcVarStrFromVar
00417F90   .8D95 70FFFFFF lea   edx, dword ptr
00417F96   .52            push    edx
00417F97   .8D85 60FFFFFF lea   eax, dword ptr
00417F9D   .50            push    eax
00417F9E   .FF15 A4104000 call    dword ptr [<&msvbvm60.rtcTrimVar>;msvbvm60.rtcTrimVar
00417FA4   .8D8D 60FFFFFF lea   ecx, dword ptr
00417FAA   .51            push    ecx
00417FAB   .FF15 24104000 call    dword ptr [<&msvbvm60.__vbaStrVa>;msvbvm60.__vbaStrVarMove
00417FB1   .8BD0          mov   edx, eax
00417FB3   .8D4D 9C       lea   ecx, dword ptr
00417FB6   .FF15 08124000 call    dword ptr [<&msvbvm60.__vbaStrMo>;msvbvm60.__vbaStrMove
00417FBC   .BA A0884000   mov   edx, 004088A0                  ;UNICODE "jiv1"
00417FC1   .8D4D A0       lea   ecx, dword ptr
00417FC4   .FF15 94114000 call    dword ptr [<&msvbvm60.__vbaStrCo>;msvbvm60.__vbaStrCopy
00417FCA   .BA 948D4000   mov   edx, 00408D94                  ;UNICODE "HKEY_LOCAL_MACHINE\Software\Microsoft\QQPP"
00417FCF   .8D4D A4       lea   ecx, dword ptr
00417FD2   .FF15 94114000 call    dword ptr [<&msvbvm60.__vbaStrCo>;msvbvm60.__vbaStrCopy
00417FD8   .8D55 9C       lea   edx, dword ptr
00417FDB   .52            push    edx
00417FDC   .8D45 A0       lea   eax, dword ptr
00417FDF   .50            push    eax
00417FE0   .8D4D A4       lea   ecx, dword ptr
00417FE3   .51            push    ecx
00417FE4   .8D95 50FFFFFF lea   edx, dword ptr
00417FEA   .52            push    edx
00417FEB   .E8 00C70000   call    004246F0
00417FF0   .8D45 9C       lea   eax, dword ptr
00417FF3   .50            push    eax
00417FF4   .8D4D A0       lea   ecx, dword ptr
00417FF7   .51            push    ecx
00417FF8   .8D55 A4       lea   edx, dword ptr
00417FFB   .52            push    edx
00417FFC   .6A 03         push    3
00417FFE   .FF15 A0114000 call    dword ptr [<&msvbvm60.__vbaFreeS>;msvbvm60.__vbaFreeStrList
00418004   .83C4 10       add   esp, 10
00418007   .8D85 50FFFFFF lea   eax, dword ptr
0041800D   .50            push    eax
0041800E   .8D8D 60FFFFFF lea   ecx, dword ptr
00418014   .51            push    ecx
00418015   .8D95 70FFFFFF lea   edx, dword ptr
0041801B   .52            push    edx
0041801C   .6A 03         push    3
0041801E   .FF15 30104000 call    dword ptr [<&msvbvm60.__vbaFreeV>;msvbvm60.__vbaFreeVarList
00418024   .83C4 10       add   esp, 10
00418027   .C745 FC 87000>mov   dword ptr , 87
0041802E   .C785 48FFFFFF>mov   dword ptr , 80020004
00418038   .C785 40FFFFFF>mov   dword ptr , 0A
00418042   .C785 58FFFFFF>mov   dword ptr , 80020004
0041804C   .C785 50FFFFFF>mov   dword ptr , 0A
00418056   .C785 68FFFFFF>mov   dword ptr , 80020004
00418060   .C785 60FFFFFF>mov   dword ptr , 0A
0041806A   .68 DC8F4000   push    00408FDC
0041806F   .8B45 08       mov   eax, dword ptr
00418072   .66:8B48 5C    mov   cx, word ptr
00418076   .51            push    ecx
00418077   .FF15 08104000 call    dword ptr [<&msvbvm60.__vbaStrI2>;msvbvm60.__vbaStrI2
0041807D   .8BD0          mov   edx, eax
0041807F   .8D4D A4       lea   ecx, dword ptr
00418082   .FF15 08124000 call    dword ptr [<&msvbvm60.__vbaStrMo>;msvbvm60.__vbaStrMove
00418088   .50            push    eax                              ; /String
00418089   .FF15 5C104000 call    dword ptr [<&msvbvm60.__vbaStrCa>; \__vbaStrCat
0041808F   .8BD0          mov   edx, eax
00418091   .8D4D A0       lea   ecx, dword ptr
00418094   .FF15 08124000 call    dword ptr [<&msvbvm60.__vbaStrMo>;msvbvm60.__vbaStrMove
0041809A   .50            push    eax
0041809B   .68 04904000   push    00409004                         ; /String = "!k",0C,"",FF,"貜iRYO"
004180A0   .FF15 5C104000 call    dword ptr [<&msvbvm60.__vbaStrCa>; \__vbaStrCat
004180A6   .8BD0          mov   edx, eax
004180A8   .8D4D 9C       lea   ecx, dword ptr
004180AB   .FF15 08124000 call    dword ptr [<&msvbvm60.__vbaStrMo>;msvbvm60.__vbaStrMove
004180B1   .50            push    eax
004180B2   .8B55 08       mov   edx, dword ptr
004180B5   .66:B8 1E00    mov   ax, 1E
004180B9   .66:2B42 5C    sub   ax, word ptr
004180BD   .0F80 4B0E0000 jo      00418F0E                                                            修改这里为jmp可以跳过烦人的使用次数对话框    {4}
004180C3   .50            push    eax
004180C4   .FF15 08104000 call    dword ptr [<&msvbvm60.__vbaStrI2>;msvbvm60.__vbaStrI2
004180CA   .8BD0          mov   edx, eax
004180CC   .8D4D 98       lea   ecx, dword ptr
004180CF   .FF15 08124000 call    dword ptr [<&msvbvm60.__vbaStrMo>;msvbvm60.__vbaStrMove
004180D5   .50            push    eax                              ; /String
004180D6   .FF15 5C104000 call    dword ptr [<&msvbvm60.__vbaStrCa>; \__vbaStrCat
004180DC   .8BD0          mov   edx, eax
004180DE   .8D4D 94       lea   ecx, dword ptr
004180E1   .FF15 08124000 call    dword ptr [<&msvbvm60.__vbaStrMo>;msvbvm60.__vbaStrMove
004180E7   .50            push    eax
004180E8   .68 14904000   push    00409014                         ; /String = "!k",01,"",FF,""
004180ED   .FF15 5C104000 call    dword ptr [<&msvbvm60.__vbaStrCa>; \__vbaStrCat
004180F3   .8985 78FFFFFF mov   dword ptr , eax
004180F9   .C785 70FFFFFF>mov   dword ptr , 8
00418103   .8D8D 40FFFFFF lea   ecx, dword ptr
00418109   .51            push    ecx
0041810A   .8D95 50FFFFFF lea   edx, dword ptr
00418110   .52            push    edx
00418111   .8D85 60FFFFFF lea   eax, dword ptr
00418117   .50            push    eax
00418118   .6A 40         push    40
0041811A   .8D8D 70FFFFFF lea   ecx, dword ptr
00418120   .51            push    ecx
00418121   .FF15 94104000 call    dword ptr [<&msvbvm60.rtcMsgBox>>;msvbvm60.rtcMsgBox                   {1}原始位置停在这里“呼叫提示框”
00418127   .8D55 94       lea   edx, dword ptr
0041812A   .52            push    edx
0041812B   .8D45 98       lea   eax, dword ptr
0041812E   .50            push    eax


好了我们通过上面的代码可以看出怎么爆破了吧!
在上面这段代码中我们可以修改{2}{4}或是{3}这两段代码来爆破成使用无数次效果是一样的都不出现提示框“嘿嘿如果你想看那个对话框的话就不要改{4}了,不过很烦人的哦”虽然注册不成功但是无数次使用
功能不减少那是什么???“相当与注册了吧 ^_^ ”


最后的方法:爆破破注册

顺着代码往上找来到这里:

00417CFF   .50            push    eax
00417D00   .6A 02         push    2
00417D02   .FF15 A0114000 call    dword ptr [<&msvbvm60.__vbaFreeStrLis>;msvbvm60.__vbaFreeStrList
00417D08   .83C4 0C       add   esp, 0C
00417D0B   .C745 FC 7D000>mov   dword ptr , 7D
00417D12   .8B4D C0       mov   ecx, dword ptr
00417D15   .51            push    ecx
00417D16   .68 288C4000   push    00408C28
00417D1B   .FF15 D0104000 call    dword ptr [<&msvbvm60.__vbaStrCmp>]   ;msvbvm60.__vbaStrCmp
00417D21   .85C0          test    eax, eax
00417D23      0F85 51010000 jnz   00417E7A                                                                  修改这里jnz为je即可注册用户名序列号随便
00417D29   .C745 FC 7E000>mov   dword ptr , 7E
00417D30   .8B55 08       mov   edx, dword ptr
00417D33   .8B02          mov   eax, dword ptr
00417D35   .8B4D 08       mov   ecx, dword ptr
00417D38   .51            push    ecx
00417D39   .FF90 2C030000 call    dword ptr
00417D3F   .50            push    eax
00417D40   .8D55 90       lea   edx, dword ptr
00417D43   .52            push    edx
00417D44   .FF15 90104000 call    dword ptr [<&msvbvm60.__vbaObjSet>]   ;msvbvm60.__vbaObjSet
00417D4A   .8985 ACFEFFFF mov   dword ptr , eax
00417D50   .68 187D4000   push    00407D18                              ;UNICODE "89"

为什么自己慢慢分析吧!嘿嘿!

注册信息和使用次数在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\QQPP”下



--------------------------------------------------------------------------------
【经验总结】
1:    对付一般ASPack壳的快速方法可以用我所称的四步法试试查找popad4次
retn    0C
push    0      两个retn是这个壳的特性
retn
出现这三句的时候一般就oep就出来了!
2:   破解自校验时注意出来的提示对症下断点
3:破解使用次数时可以用上面的暂停法试试,说不定比你下端点还快.

后话:
学习破解真的是件很枯燥的事情尤其是对于我这种初中毕业生来说,汇编是个门槛,工具的使用也是个门槛,英语还是个门槛,但是我相信只要努力没有办不到的事情!
希望大家多多的帮助!希望菜鸟们早些变成老鸟!谢谢帮助我的朋友!
座右铭:有思路就有出路,思路决定出路!
最后祝福大家新年快乐!在新的一年有个好的开始!!!
   

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2008年02月06日 16:49:11

b笨小孩b 发表于 2008-2-27 00:35:51

这次抢到自己的沙发了!!/:001 /:001

天颖 发表于 2008-2-27 05:10:54

哈 支持楼主~ 
  教程写得很好~~
 很详细~~    

深海中的游鱼 发表于 2008-2-27 05:39:57

收藏。
一宿了,收藏了不少的咚咚。等以后慢慢消化

gdhwl2004 发表于 2008-2-27 10:07:03

我后面破解的还没有看懂。。。

zjid520 发表于 2008-2-27 10:14:55

很不错的分析,足足看了我十多分钟,学习了.

pw2000 发表于 2008-2-27 10:59:54

很详细的破文..

hjxyp1986 发表于 2008-2-27 12:47:34

呵呵.看看.../:010 /:010

wan 发表于 2008-2-27 12:52:45

思路清晰.写得详细,学习一下~~

tony2008 发表于 2008-2-27 16:14:45

谢谢!收藏!
页: [1] 2
查看完整版本: 【原创】脱壳+去双自校验+爆破3种方法全过程