• 标 题: [爆破]菜鸟值得一看,手脱后修复输入表 
  • 作 者:辉仔Yock
  • 时 间:2003/08/26 06:51am
  • 链 接:http://bbs.pediy.com

【前    言】:上次做了6.0版本的主厕鸡,可是第二天早上就更新6.5版本了!由于工作,回来才知道已经更新到8.0了,所以就...

【软件名称】:心梦网页特效管理专家8.0 XP

【下载页面】:共享软件注册中心里面(自己找)

【软件大小】:2435kb

【应用平台】:WIN9X/WINNT/WIN2K/WINXP

【软件简介】:网页特效相关

【软件限制】:注册码,次数,验证码,脱壳验证

【文章作者】:辉仔Yock[DFCG][YCG][OCN][CTR]

【作者声明】:本人发表这篇文章只是为了学习和研究!!!请不用于商业用途或是将本文方法制作的注册机或是补丁文件任意传播,读者看了文章后所做的事情与我无关,我也不会负责,请读者看了文章后三思而后行!最后希望大家在经济基础好的时候,支持共享软件!(在这里最此软件的作者以万二分的歉意鞠躬...)

【破解工具】:Ollydbg(包括命令插件和脱壳插件)  ImportREC(中文)  PEid  Hiew  w32Dasm

—————————————————————————————————
【过    程】:用PEid查壳,发现软件是用ASPack 2.1 -> Alexey Solodovnikov加的壳!

用PEid查找OEP(嘻嘻,我就是喜欢PEid的这个强大功能),得知OEP=4d7f94

运行Ollydbg 按F3加载主程序sm8.exe 弹出一个框(按确定) 再弹出一个框(按NO) 会自动中断!

然后打命令g 4d7f94  来到了程序的入口4d7f94(嘻嘻..)

用脱壳插件把它Dump下来,记得要另外起个新的名字(Yock.exe)再按保存哦!(N久之后久OK了...)

那么现在运行一下脱壳后的程序Yock.exe出错(理所当然,没有修复输入表!!!)

那么现在回到Ollydbg,按F9(即运行软件,这个是我个人习惯)运行软件!

然后运行ImportREC,再最高(选择一个使用中的程序)那里选.../sm8.exe这行!

接着在ImportREC的左下角(IAT 所需信息)那里把OEP的值填好!(很重要,我这里得到的OEP是4d7f94,那么在这里就要输入d7f94就OK了!)然后按旁边那个(IAT自动搜索),弹出一个框后按确定!

然后就按ImportREC左下角的(获得输入信息),接着中间的大框会出来很多东西,接着按ImportREC右边从上往下数第二个按钮(显示无效的),这个时候看看中间大框没有ON或是否的就表示行了!(有NO或是否就表示要搜索函数了!还好我这里没有!如果有NO或否的话就在中间的大框对着NO的地方单击右键,用追踪成次1\2\3和用ImportREC插件来查找函数!再不行的话就要手动了!)直到所有的函数都变成YES或是的时候就可以按ImportREC下面的那个(修理抓取文件)来修复Yock.exe了!修理成功后再同目录下会有一个Yock_.exe文件!(运行一下看看,嘿嘿...成功了,弹出个提示框"你的操作破坏心梦软件的完整性,请尊重作者的辛苦劳动!"然后自动退出,我晕死!)

那么现在用w32Dasm反汇编Yock_.exe程序!

根据提示很快找到几处关键!

------------------------------------------------
:004D3B2F E80813F3FF              call 00404E3C
:004D3B34 7416                    je 004D3B4C

* Possible StringData Ref from Code Obj ->"你的操作破坏心梦软件的完整性,请尊重作者的辛苦"
                                       ->"劳动!"
                                 |
:004D3B36 B8A0404D00              mov eax, 004D40A0
:004D3B3B E8B0A6F6FF              call 0043E1F0
-----------------------------------------------//这里是脱壳后的检测,看见上面4D3B34的跳转没有,改成JMP就跳过去了!

:004D44B1 7424                    je 004D44D7
:004D44B3 6A40                    push 00000040

* Possible StringData Ref from Code Obj ->"警告"
                                 |
:004D44B5 B970464D00              mov ecx, 004D4670

* Possible StringData Ref from Code Obj ->"你使用的软件非正常注册!请支持心梦软件!联系软"
                                       ->"件作者注册!
作者主页:http://smw.in70s.com "
                                       ->"E-mail:wzsf992lwj@sina.com"
                                 |
:004D44BA BA78464D00              mov edx, 004D4678

-----------------------------------------------//这里是输入正确注册码后使用20次没有输入验证码是的弹出框!看见上面004D44B1的跳转没有,嘻嘻,改成JMP跳过去!

来到这里可以说是爆破成功一半了!

这个软件是明码比较的,所以注册码给有兴趣的朋友自己动手了!(不要问我要.因为是一机一码,我也没有,自己去问作者买吧!)

我经过N次反复跟踪得知爆破程序的几处关键:

004D4466  |.  E8 69EEFFFF   CALL    004D32D4
004D446B  |.  84C0          TEST    AL,AL
004D446D  |.  0F84 18010000 JE      004D458B
                           //这里跳走的话就出现程序未注册,所以nop掉

004D4473  |.  E8 10EBFFFF   CALL    004D2F88
004D4478  |.  84C0          TEST    AL,AL
004D447A  |.  74 5B         JE      SHORT 004D44D7
                           //这里不跳的话就表示注册后20次使用已经到了,改成jmp
                           //但不该也可以,想知道为什么就自己跟一下就明白了!

004D447C  |.  8D55 E8       LEA     EDX,[LOCAL.6]
004D447F  |.  8B83 64040000 MOV     EAX,[EBX+464]
004D4485  |.  E8 BE0EF7FF   CALL    00445348
004D448A  |.  8B45 E8       MOV     EAX,[LOCAL.6]
004D448D  |.  50            PUSH    EAX
004D448E  |.  8D45 E0       LEA     EAX,[LOCAL.8]
004D4491  |.  E8 DAFDFFFF   CALL    004D4270
004D4496  |.  8B55 E0       MOV     EDX,[LOCAL.8]
004D4499  |.  8D4D E4       LEA     ECX,[LOCAL.7]
004D449C  |.  A1 A0B74D00   MOV     EAX,[4DB7A0]
004D44A1  |.  8B00          MOV     EAX,[EAX]                        ;  TKSM8.004D1DF0
004D44A3  |.  E8 94ADFFFF   CALL    004CF23C
004D44A8  |.  8B55 E4       MOV     EDX,[LOCAL.7]
004D44AB  |.  58            POP     EAX                              ;  007CFA48
004D44AC  |.  E8 8B09F3FF   CALL    00404E3C
004D44B1  |.  74 24         JE      SHORT 004D44D7
                           //这里不跳的话就出现"你使用的软件非正常注册!请支持心梦软件!联系软件作者注册!
作者主页:http://smw.in70s.com E-mail:wzsf992lwj@sina.com"
                           //所以这里一定要改成jmp跳走!

----------------------------------------------------
由于跟踪多次得知程序的验证标志1(很重要!)
004D337E  |.  8B55 F8       MOV     EDX,[LOCAL.2]                    ;  KERNEL32.BFF847D9
004D3381  |.  8B45 FC       MOV     EAX,[LOCAL.1]
004D3384  |.  E8 B31AF3FF   CALL    00404E3C
004D3389  |.  75 04         JNZ     SHORT 004D338F
                           //把这里nop掉到下面去赋值

004D338B  |.  B3 01         MOV     BL,1
                           //这里是程序的注册码正确的标志!

004D338D  |.  EB 02         JMP     SHORT 004D3391

---------------------------------------------------
由于跟踪多次得知程序的验证标志2(不重要)
004D300C  |.  E8 5F62F3FF   CALL    00409270
004D3011  |.  3D A8000000   CMP     EAX,0A8
004D3016  |.  7E 04         JLE     SHORT 004D301C
                           //这里改jmp跳过下面

004D3018  |.  B3 01         MOV     BL,1
                           //这里是程序使用次数是过期的标志!

004D301A  |.  EB 02         JMP     SHORT 004D301E
----------------------------------------------------

来到这里就可以说是爆破完成了!(累啊...)

最后启动Hiew加载Yock_.exe   按F4选最下面那个后, 按F5搜索要改的地址, 到了要改的地址后按F3修改,修改好后按F9保存,当所有要修改的地方都改好了就按F10退出!

一共要修改下面处:
004D3389  |.  75 04         JNZ     SHORT 004D338F
                           //这里nop掉!

004D44B1  |.  74 24         JE      SHORT 004D44D7
                           //这里要改成jmp跳走!

004D446D  |.  0F84 18010000 JE      004D458B
                           //这里nop掉!

004D3B34  |.  74 16         JE      004D3B4C
                           //这里要改成JMP跳走!

现在运行一下Yock_.exe看看,成功了!

注册码和用户名保存在:
[HKEY_LOCAL_MACHINE\SOFTWARE\smsoft\sm80xp]
"smsn"="20038180343098856320"
"user"="Yock"

使用次数保存在:

[HKEY_USERS\(这里是你的用户名)\Software\Microsoft\Windows\CurrentVersion\Telephony\temp]
"smyx"="0"
------------------------------------------------------------------
【总    结】:
这篇文章主要是交朋友们怎么去手脱和修复输入表!

最后在这里真心感谢你花了那么多时间看这篇文章!希望对一些和我一样或我比我还差的朋友能起到帮助,高手就不要笑了!谢谢了...