吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 30122|回复: 79
收起左侧

[原创] 中原文件夹加密破解爆破+过伪Themida虚拟机检测

  [复制链接]
heiketian10 发表于 2010-12-10 01:57
本帖最后由 heiketian10 于 2010-12-10 17:47 编辑

【文章标题】: 中原文件夹加密破解爆破+过伪ThemIDA虚拟机检测
【文章作者】: heiketian10
【作者邮箱】: .com
【作者主页】: @###@#@#@#
【作者QQ号】: 13位【软件名称】:
中原文件夹加密【软件大小】: 2.82 MB
【下载地址】: 自己搜索下载
【加壳方式】: 无壳
【保护方式】: 注册码+重启验证
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: od【操作平台】: xp sp2
【软件介绍】: 这个软件是一个。。。。。下载的时候都有的。。。。
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!



【详细过程】         

今天在论坛上看见有人发布了一个中原文件夹加密的破解版本;授人以渔,总是根本性的;   
本人太菜,就找个软柿子捏。下面和大家一起分析一下对于软件的爆破和去掉一个类似于
Themida虚拟机检测的提示-------作者太能忽悠了。                                                                 
                                                                                         --------前言  
-----------------------------------【任务】--------------------------------
1、软件标题显示xx注册版;   
2、解除不能修改登录密码的限制;(单纯的标题显示注册版就算是伪破解吧);  
3、由于在虚拟机里调试,有一个Themida的-----can't run under virtual machine的窗口提示--------干掉他。   
---------------------------------------------------------------------------------------  
【任务1】  破解显示注册版    第一步:   
程序载入od-----由于是没有加壳的,大家首相想到的就是“字符串”参考-----至少对于我是;   
里面有几个:   字符串1.jpg          

上面这样的提示有两处,大家可以分别段首【其实就是在一段,段一次就可以,具体大家看代码】;  

接着找一下一个:【这个是重点】-----依然段首;   字符串2.jpg
   

【友情提示,在搜索完毕字符串的时候,双击跟进在汇编窗口有可能相应的注释没有显示,你可以手动复制过来】     
  -----------------------------------------------------------------------------------------------------  
第二步:    上面下了断点;od重新载入程序----开工      点击f9运行,看看段在哪里;

-------------【注意,多问问段在的地方有没有用】      
第一次断下来是在下面这段代码:    着重分析下跳转,发现也没有什么特别重要的地方;     
结果证实,这段代码跑过,就出现了登录框和Themida提示; 1.jpg   



  而且段在了下一个地方了哦---------------也就是第二处断点;------------------滑动鼠标吧各位亲们---
  
  00401640   .  6A FF         push -0x1
  00401642   .  68 FD324300   push 中原文件.004332FD                       ;  SE 处理程序安装
  00401647   .  64:A1 0000000>mov eax,dword ptr fs:[0]
  0040164D   .  50            push eax
  0040164E   .  64:8925 00000>mov dword ptr fs:[0],esp
  00401655   .  81EC 54020000 sub esp,0x254
  0040165B   .  53            push ebx
  0040165C   .  55            push ebp
  0040165D   .  56            push esi
  0040165E   .  33DB          xor ebx,ebx
  00401660   .  57            push edi
  00401661   .  8BF1          mov esi,ecx
  00401663   .  53            push ebx
  00401664   .  897424 24     mov dword ptr ss:[esp+0x24],esi
  00401668   .  E8 A4180300   call 中原文件.00432F11
  0040166D   .  85C0          test eax,eax
  0040166F   .  75 0F         jnz short 中原文件.00401680
  00401671   .  6A FF         push -0x1
  00401673   .  53            push ebx
  00401674   .  6A 67         push 0x67
  00401676   .  E8 76D30200   call 中原文件.0042E9F1
  0040167B   .  E9 42040000   jmp 中原文件.00401AC2
  00401680   >  53            push ebx
  00401681   .  E8 41B90000   call 中原文件.0040CFC7
  00401686   .  83C4 04       add esp,0x4
  00401689   .  8BCE          mov ecx,esi
  0040168B   .  E8 05E90200   call 中原文件.0042FF95
  00401690   .  B9 41000000   mov ecx,0x41
  00401695   .  33C0          xor eax,eax
  00401697   .  8DBC24 600100>lea edi,dword ptr ss:[esp+0x160]
  0040169E   .  68 04010000   push 0x104                               ; /BufSize = 104 (260.)
  004016A3   .  F3:AB         rep stos dword ptr es:[edi]              ; |
  004016A5   .  8D8424 640100>lea eax,dword ptr ss:[esp+0x164]         ; |
  004016AC   .  50            push eax                                 ; |Buffer
  004016AD   .  FF15 CC624300 call dword ptr ds:[<&KERNEL32.GetSystemD>; \GetSystemDirectoryA
  004016B3   .  68 288E4400   push 中原文件.00448E28
  004016B8   .  8D4C24 20     lea ecx,dword ptr ss:[esp+0x20]
  004016BC   .  E8 C5800200   call 中原文件.00429786
  004016C1   .  8D8C24 600100>lea ecx,dword ptr ss:[esp+0x160]
  004016C8   .  8D5424 1C     lea edx,dword ptr ss:[esp+0x1C]
  004016CC   .  51            push ecx
  004016CD   .  68 E0414400   push 中原文件.004441E0                       ;  ASCII "%s\protect.db"
  
                  
                      【此处省略部分代码】
  
  004017CC   .  50            push eax
  004017CD   .  68 90414400   push 中原文件.00444190                       ;  ASCII "indir"
  004017D2   .  E8 B9620000   call 中原文件.00407A90
  004017D7   >  8D4C24 14     lea ecx,dword ptr ss:[esp+0x14]
  004017DB   .  E8 50620000   call 中原文件.00407A30
  004017E0   .  68 70414400   push 中原文件.00444170                       ;  中原文件夹加密 3.5 [未注册用户]
  004017E5   .  68 68414400   push 中原文件.00444168                       ;  ASCII "#32770"
  004017EA   .  FFD5          call ebp
  004017EC   .  8BF0          mov esi,eax
  004017EE   .  3BF3          cmp esi,ebx
  004017F0   .  75 12         jnz short 中原文件.00401804
  004017F2   .  68 48414400   push 中原文件.00444148                       ;  中原文件夹加密 3.5 [已注册用户]
  004017F7   .  68 68414400   push 中原文件.00444168                       ;  ASCII "#32770"
  004017FC   .  FFD5          call ebp
  004017FE   .  8BF0          mov esi,eax
  00401800   .  3BF3          cmp esi,ebx
  00401802   .  74 21         je short 中原文件.00401825
  00401804   >  56            push esi                                 ; /hWnd
  00401805   .  FF15 F4644300 call dword ptr ds:[<&USER32.IsWindow>]   ; \IsWindow
  0040180B   .  85C0          test eax,eax
  0040180D   .  74 16         je short 中原文件.00401825
  0040180F   .  53            push ebx                                 ; /lParam
  00401810   .  53            push ebx                                 ; |wParam
  00401811   .  6A 10         push 0x10                                ; |Message = WM_CLOSE
  00401813   .  56            push esi                                 ; |hWnd
  00401814   .  FF15 F8644300 call dword ptr ds:[<&USER32.PostMessageA>; \PostMessageA
  0040181A   .  68 F00A0000   push 0xAF0                               ; /Timeout = 2800. ms
  0040181F   .  FF15 D0624300 call dword ptr ds:[<&KERNEL32.Sleep>]    ; \Sleep
  00401825   >  8D4C24 14     lea ecx,dword ptr ss:[esp+0x14]
  00401829   .  C68424 6C0200>mov byte ptr ss:[esp+0x26C],0x1
  00401831   .  E8 2A610000   call 中原文件.00407960
  00401836   .  E9 5A010000   jmp 中原文件.00401995
  0040183B   >  68 40414400   push 中原文件.00444140                       ;  ASCII "/des "
  00401840   .  8D4C24 14     lea ecx,dword ptr ss:[esp+0x14]
  00401844   .  E8 84250200   call 中原文件.00423DCD
  00401849   .  85C0          test eax,eax
  0040184B   .  68 288E4400   push 中原文件.00448E28
  00401850   .  0F8C 35010000 jl 中原文件.0040198B
  00401856   .  68 38414400   push 中原文件.00444138                       ;  ASCII "/des"
  0040185B   .  8D4C24 18     lea ecx,dword ptr ss:[esp+0x18]
  0040185F   .  E8 4E230200   call 中原文件.00423BB2
  00401864   .  68 288E4400   push 中原文件.00448E28
  00401869   .  68 D0414400   push 中原文件.004441D0
  0040186E   .  8D4C24 18     lea ecx,dword ptr ss:[esp+0x18]
  00401872   .  E8 3B230200   call 中原文件.00423BB2
  00401877   .  68 288E4400   push 中原文件.00448E28
  0040187C   .  68 D0414400   push 中原文件.004441D0
  00401881   .  8D4C24 18     lea ecx,dword ptr ss:[esp+0x18]
  00401885   .  E8 28230200   call 中原文件.00423BB2
  0040188A   .  8D4C24 10     lea ecx,dword ptr ss:[esp+0x10]
  0040188E   .  E8 1F290200   call 中原文件.004241B2
  00401893   .  8D4C24 10     lea ecx,dword ptr ss:[esp+0x10]
  00401897   .  E8 CA280200   call 中原文件.00424166
  0040189C   .  68 288E4400   push 中原文件.00448E28
  004018A1   .  B9 D0974400   mov ecx,中原文件.004497D0
  004018A6   .  E8 F67F0200   call 中原文件.004298A1
  004018AB   .  51            push ecx
  004018AC   .  8D5424 14     lea edx,dword ptr ss:[esp+0x14]
  004018B0   .  8BCC          mov ecx,esp
  004018B2   .  896424 18     mov dword ptr ss:[esp+0x18],esp
  004018B6   .  52            push edx
  004018B7   .  E8 D17B0200   call 中原文件.0042948D
  004018BC   .  B9 28974400   mov ecx,中原文件.00449728                    ;  ASCII "hwC"
  004018C1   .  E8 DAAE0000   call 中原文件.0040C7A0
  004018C6   .  3BC3          cmp eax,ebx
  004018C8   .  7C 68         jl short 中原文件.00401932
  004018CA   .  50            push eax
  004018CB   .  53            push ebx
  004018CC   .  B9 28974400   mov ecx,中原文件.00449728                    ;  ASCII "hwC"
  004018D1   .  E8 6AA30000   call 中原文件.0040BC40
  004018D6   .  68 70414400   push 中原文件.00444170                       ;  中原文件夹加密 3.5 [未注册用户]
  004018DB   .  68 68414400   push 中原文件.00444168                       ;  ASCII "#32770"
  004018E0   .  FFD5          call ebp
  004018E2   .  8BF0          mov esi,eax
  004018E4   .  3BF3          cmp esi,ebx
  004018E6   .  75 16         jnz short 中原文件.004018FE
  004018E8   .  68 48414400   push 中原文件.00444148                       ;  中原文件夹加密 3.5 [已注册用户]
  004018ED   .  68 68414400   push 中原文件.00444168                       ;  ASCII "#32770"
  004018F2   .  FFD5          call ebp
  004018F4   .  8BF0          mov esi,eax
  004018F6   .  3BF3          cmp esi,ebx
  004018F8   .  0F84 97000000 je 中原文件.00401995
  004018FE   >  56            push esi                                 ; /hWnd
  004018FF   .  FF15 F4644300 call dword ptr ds:[<&USER32.IsWindow>]   ; \IsWindow
  00401905   .  85C0          test eax,eax
  00401907   .  0F84 88000000 je 中原文件.00401995
  0040190D   .  56            push esi                                 ; /hWnd
  0040190E   .  FF15 FC644300 call dword ptr ds:[<&USER32.IsWindowVisi>; \IsWindowVisible
  00401914   .  85C0          test eax,eax
  00401916   .  74 07         je short 中原文件.0040191F
  00401918   .  56            push esi                                 ; /hWnd
  00401919   .  FF15 6C644300 call dword ptr ds:[<&USER32.SetForegroun>; \SetForegroundWindow
  0040191F   >  53            push ebx                                 ; /lParam
  00401920   .  53            push ebx                                 ; |wParam
  00401921   .  68 23040000   push 0x423                               ; |Message = WM_USER+35.
  00401926   .  56            push esi                                 ; |hWnd
  00401927   .  FF15 F8644300 call dword ptr ds:[<&USER32.PostMessageA>; \PostMessageA
  0040192D   .  E9 6C010000   jmp 中原文件.00401A9E
  00401932   >  8B4424 10     mov eax,dword ptr ss:[esp+0x10]
  
                   【此处省略N多代码】
  
  00401AC9   .  5F            pop edi
  00401ACA   .  5E            pop esi
  00401ACB   .  5D            pop ebp
  00401ACC   .  33C0          xor eax,eax
  00401ACE   .  64:890D 00000>mov dword ptr fs:[0],ecx
  00401AD5   .  5B            pop ebx
  00401AD6   .  81C4 60020000 add esp,0x260
  00401ADC   .  C3            retn
  
  ---------------------【上面这段代码就算是给大家参考了】---------------------
  
  
  先不理会Themida提示;直接点击退出这个提示,在登陆框里面输入原始密码“123456”
  
  点击“确定登录”;然后段到下面的地方了;
  
  
  
  第二个断点处:【这个是重点】
  
   2.jpg   
  00403690   .  6A FF         push -0x1
  00403692   .  68 50374300   push 中原文件.00433750                       ;  SE 处理程序安装
  00403697   .  64:A1 0000000>mov eax,dword ptr fs:[0]
  0040369D   .  50            push eax
  0040369E   .  64:8925 00000>mov dword ptr fs:[0],esp
  004036A5   .  51            push ecx
  004036A6   .  A1 048F4400   mov eax,dword ptr ds:[0x448F04]
  004036AB   .  56            push esi
  004036AC   .  85C0          test eax,eax
  004036AE   .  8BF1          mov esi,ecx
  004036B0   .  74 17         je short 中原文件.004036C9
  004036B2   .  E8 C12B0200   call 中原文件.00426278
  004036B7   .  5E            pop esi
  004036B8   .  8B4C24 04     mov ecx,dword ptr ss:[esp+0x4]
  004036BC   .  64:890D 00000>mov dword ptr fs:[0],ecx
  004036C3   .  83C4 10       add esp,0x10
  004036C6   .  C2 0400       retn 0x4
  004036C9   >  8B4424 18     mov eax,dword ptr ss:[esp+0x18]
  004036CD   .  C705 048F4400>mov dword ptr ds:[0x448F04],0x1
  004036D7   .  83F8 0A       cmp eax,0xA
  004036DA   .  0F85 A6000000 jnz 中原文件.00403786                        ;  一定要关注这个跳转,跳过去就死定了---nop
  004036E0   .  8B46 1C       mov eax,dword ptr ds:[esi+0x1C]
  004036E3   .  6A 0A         push 0xA                                 ; /TimerID = A (10.)
  004036E5   .  50            push eax                                 ; |hWnd
  004036E6   .  FF15 04654300 call dword ptr ds:[<&USER32.KillTimer>]  ; \KillTimer
  004036EC   .  68 288E4400   push 中原文件.00448E28
  004036F1   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+0x1C]
  004036F5   .  E8 8C600200   call 中原文件.00429786
  004036FA   .  8D4C24 18     lea ecx,dword ptr ss:[esp+0x18]
  004036FE   .  C74424 10 000>mov dword ptr ss:[esp+0x10],0x0
  00403706   .  51            push ecx
  00403707   .  8BCE          mov ecx,esi
  00403709   .  E8 CE350200   call 中原文件.00426CDC
  0040370E   .  68 48414400   push 中原文件.00444148                       ;  中原文件夹加密 3.5 [已注册用户]
  00403713   .  8D4C24 1C     lea ecx,dword ptr ss:[esp+0x1C]
  00403717   .  E8 85610200   call 中原文件.004298A1
  0040371C   .  8B5424 18     mov edx,dword ptr ss:[esp+0x18]
  00403720   .  8BCE          mov ecx,esi
  00403722   .  52            push edx
  00403723   .  E8 2C560200   call 中原文件.00428D54
  00403728   .  68 288E4400   push 中原文件.00448E28
  0040372D   .  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
  00403731   .  E8 50600200   call 中原文件.00429786
  00403736   .  8B46 1C       mov eax,dword ptr ds:[esi+0x1C]
  00403739   .  8D4C24 04     lea ecx,dword ptr ss:[esp+0x4]
  0040373D   .  50            push eax
  0040373E   .  68 60424400   push 中原文件.00444260                       ;  ASCII "%d"
  00403743   .  51            push ecx
  00403744   .  C64424 1C 01  mov byte ptr ss:[esp+0x1C],0x1
  00403749   .  E8 050A0200   call 中原文件.00424153
  0040374E   .  8B5424 10     mov edx,dword ptr ss:[esp+0x10]
  00403752   .  A1 B0974400   mov eax,dword ptr ds:[0x4497B0]
  00403757   .  83C4 0C       add esp,0xC
  0040375A   .  52            push edx                                 ; /String
  0040375B   .  68 FC434400   push 中原文件.004443FC                       ; |Key = "lookwnd"
  00403760   .  50            push eax                                 ; |Section => "FileProtect"
  00403761   .  FF15 C8624300 call dword ptr ds:[<&KERNEL32.WriteProfi>; \WriteProfileStringA
  00403767   .  8D4C24 04     lea ecx,dword ptr ss:[esp+0x4]
  0040376B   .  C64424 10 00  mov byte ptr ss:[esp+0x10],0x0
  00403770   .  E8 A35F0200   call 中原文件.00429718
  00403775   .  8D4C24 18     lea ecx,dword ptr ss:[esp+0x18]
  00403779   .  C74424 10 FFF>mov dword ptr ss:[esp+0x10],-0x1
  00403781   .  E8 925F0200   call 中原文件.00429718
  00403786   >  68 98434400   push 中原文件.00444398                       ; /Title = "FileProtected"
  0040378B   .  68 68414400   push 中原文件.00444168                       ; |Class = "#32770"
  00403790   .  FF15 F0644300 call dword ptr ds:[<&USER32.FindWindowA>>; \FindWindowA
  00403796   .  85C0          test eax,eax
  00403798   .  74 07         je short 中原文件.004037A1
  0040379A   .  68 EC434400   push 中原文件.004443EC
  0040379F   .  EB 05         jmp short 中原文件.004037A6
  004037A1   >  68 DC434400   push 中原文件.004443DC
  004037A6   >  8D4E 5C       lea ecx,dword ptr ds:[esi+0x5C]
  004037A9   .  E8 A6550200   call 中原文件.00428D54
  004037AE   .  8BCE          mov ecx,esi
  004037B0   .  E8 C32A0200   call 中原文件.00426278
  004037B5   .  8B4C24 08     mov ecx,dword ptr ss:[esp+0x8]
  004037B9   .  C705 048F4400>mov dword ptr ds:[0x448F04],0x0
  004037C3   .  5E            pop esi
  004037C4   .  64:890D 00000>mov dword ptr fs:[0],ecx
  004037CB   .  83C4 10       add esp,0x10
  004037CE   .  C2 0400       retn 0x4
  
  -----------------------------【nop掉这个jnz之后,运行程序就成了“已注册”了】---------------------------------
  
  
  
  【任务2】:   解除修不能修改登录密码的限制;【都显示注册了,再不能用修改登录密码,你心里爽?????????】
   
3.jpg   
  依然字符串找限制提示“只有注册用户才能设置登录密码!”啊:
  
  双击跟进代码:段首分析掠过。。。。
  
  修复如下:
  
  00402750   .  64:A1 0000000>mov eax,dword ptr fs:[0]
  00402756   .  6A FF         push -0x1
  00402758   .  68 47354300   push 中原文件.00433547
  0040275D   .  50            push eax
  0040275E   .  A1 74974400   mov eax,dword ptr ds:[0x449774]
  00402763   .  64:8925 00000>mov dword ptr fs:[0],esp
  0040276A   .  81EC 04010000 sub esp,0x104
  00402770   .  85C0          test eax,eax
  00402772   .  56            push esi
  00402773   .  8BF1          mov esi,ecx
  00402775   .  6A 00         push 0x0
  00402777   .  0F84 AF000000 je 中原文件.0040282C                         ;  这个je修改成jmp就行了
  0040277D   .  8D4C24 6C     lea ecx,dword ptr ss:[esp+0x6C]
  00402781   .  E8 EA170000   call 中原文件.00403F70
  00402786   .  68 A4424400   push 中原文件.004442A4
  0040278B   .  8D8C24 040100>lea ecx,dword ptr ss:[esp+0x104]
  00402792   .  C78424 140100>mov dword ptr ss:[esp+0x114],0x0
  0040279D   .  E8 FF700200   call 中原文件.004298A1
  004027A2   .  68 84424400   push 中原文件.00444284                       ;  只有注册用户才能设置登录密码!
  004027A7   .  8D8C24 080100>lea ecx,dword ptr ss:[esp+0x108]
  004027AE   .  E8 EE700200   call 中原文件.004298A1
  004027B3   .  8D4C24 68     lea ecx,dword ptr ss:[esp+0x68]
  004027B7   .  E8 30320200   call 中原文件.004259EC
  004027BC   .  8D8C24 040100>lea ecx,dword ptr ss:[esp+0x104]
  004027C3   .  C78424 100100>mov dword ptr ss:[esp+0x110],0x3
  
  --------------------------【至此,程序破解算是完成了,功能也能用,非虚拟机环境也可以正常使用了】-------------------------------
6.jpg


  【任务3】:Fuck  伪Themida
  
  
  但是在虚拟机下运行竟然有这个提示:Themida xxxxxxxx   ;那就一起干掉了,前面已经说过了,

进程查看.jpg
  
  找到system32下面有一个:FileEn.EXE就是罪魁祸首,拿命来。。。。。。。。。。。。。。。
  
  第一步:
  
  搜索字符串:FileEn.EXE
  
  这个确实有很多,很多,很多。。。。。大家依次双击跟进,  “段首”---------别忘了以前的断点删掉;
  
  方便调试啊。。。。。
  
  下好所有的断点之后,我们重新载入程序,f9运行;第一次段在:
  
  0040B890  /$  6A FF         push -0x1
  0040B892  |.  68 30434300   push 中原文件.00434330                       ;  SE 处理程序安装
  0040B897  |.  64:A1 0000000>mov eax,dword ptr fs:[0]
  0040B89D  |.  50            push eax
  0040B89E  |.  64:8925 00000>mov dword ptr fs:[0],esp
  0040B8A5  |.  83EC 0C       sub esp,0xC
  0040B8A8  |.  56            push esi
  0040B8A9  |.  8BF1          mov esi,ecx
  0040B8AB  |.  68 02000080   push 0x80000002
  0040B8B0  |.  8D4C24 0C     lea ecx,dword ptr ss:[esp+0xC]
  0040B8B4  |.  E8 67C0FFFF   call 中原文件.00407920
  0040B8B9  |.  68 584B4400   push 中原文件.00444B58                       ;  ASCII "Software\Microsoft\Windows\CurrentVersion\Run"
  0040B8BE  |.  8D4C24 0C     lea ecx,dword ptr ss:[esp+0xC]
  0040B8C2  |.  C74424 1C 000>mov dword ptr ss:[esp+0x1C],0x0
  0040B8CA  |.  E8 21C1FFFF   call 中原文件.004079F0
  0040B8CF  |.  85C0          test eax,eax
  0040B8D1  |.  74 62         je short 中原文件.0040B935                   ;  这个跳转跳     je  --jmp
  0040B8D3  |.  68 288E4400   push 中原文件.00448E28
  0040B8D8  |.  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
  0040B8DC  |.  E8 A5DE0100   call 中原文件.00429786
  0040B8E1  |.  8B46 34       mov eax,dword ptr ds:[esi+0x34]
  0040B8E4  |.  8D4C24 04     lea ecx,dword ptr ss:[esp+0x4]
  0040B8E8  |.  50            push eax
  0040B8E9  |.  68 88434400   push 中原文件.00444388                       ;  ASCII "%s\FileEn.exe"
  0040B8EE  |.  51            push ecx
  0040B8EF  |.  C64424 24 01  mov byte ptr ss:[esp+0x24],0x1
  0040B8F4  |.  E8 5A880100   call 中原文件.00424153
  0040B8F9  |.  8B4424 2C     mov eax,dword ptr ss:[esp+0x2C]
  0040B8FD  |.  83C4 0C       add esp,0xC
  0040B900  |.  85C0          test eax,eax
  0040B902  |.  75 10         jnz short 中原文件.0040B914
  0040B904  |.  68 4C4B4400   push 中原文件.00444B4C                       ;  ASCII "fileProtect"
  0040B909  |.  8D4C24 0C     lea ecx,dword ptr ss:[esp+0xC]
  0040B90D  |.  E8 3EC1FFFF   call 中原文件.00407A50
  0040B912  |.  EB 13         jmp short 中原文件.0040B927
  0040B914  |>  8B5424 04     mov edx,dword ptr ss:[esp+0x4]
  0040B918  |.  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
  0040B91C  |.  52            push edx
  0040B91D  |.  68 4C4B4400   push 中原文件.00444B4C                       ;  ASCII "fileProtect"
  0040B922  |.  E8 69C1FFFF   call 中原文件.00407A90
  0040B927  |>  8D4C24 04     lea ecx,dword ptr ss:[esp+0x4]
  0040B92B  |.  C64424 18 00  mov byte ptr ss:[esp+0x18],0x0
  0040B930  |.  E8 E3DD0100   call 中原文件.00429718
  0040B935  |>  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
  0040B939  |.  C74424 18 FFF>mov dword ptr ss:[esp+0x18],-0x1
  0040B941  |.  E8 1AC0FFFF   call 中原文件.00407960
  0040B946  |.  8B4C24 10     mov ecx,dword ptr ss:[esp+0x10]
  0040B94A  |.  5E            pop esi
  0040B94B  |.  64:890D 00000>mov dword ptr fs:[0],ecx
  0040B952  |.  83C4 18       add esp,0x18
  0040B955  \.  C2 0400       retn 0x4
  
  --------------------------------------------------------------------------------------
  
  第二次段在这里:
  
  0040B210  /$  64:A1 0000000>mov eax,dword ptr fs:[0]
  0040B216  |.  6A FF         push -0x1
  0040B218  |.  68 EC424300   push 中原文件.004342EC
  0040B21D  |.  50            push eax
  0040B21E  |.  64:8925 00000>mov dword ptr fs:[0],esp
  0040B225  |.  81EC 18010000 sub esp,0x118
  0040B22B  |.  33C0          xor eax,eax
  0040B22D  |.  53            push ebx
  0040B22E  |.  55            push ebp
  0040B22F  |.  56            push esi
  0040B230  |.  8BD9          mov ebx,ecx
  0040B232  |.  8B35 70624300 mov esi,dword ptr ds:[<&KERNEL32.GetModu>;  kernel32.GetModuleFileNameA
  0040B238  |.  57            push edi
  0040B239  |.  B9 41000000   mov ecx,0x41
  0040B23E  |.  8D7C24 24     lea edi,dword ptr ss:[esp+0x24]
  0040B242  |.  F3:AB         rep stos dword ptr es:[edi]
  0040B244  |.  8D4424 24     lea eax,dword ptr ss:[esp+0x24]
  0040B248  |.  68 04010000   push 0x104                               ; /BufSize = 104 (260.)
  0040B24D  |.  50            push eax                                 ; |PathBuffer
  0040B24E  |.  6A 00         push 0x0                                 ; |hModule = NULL
  0040B250  |.  FFD6          call esi                                 ; \GetModuleFileNameA
  0040B252  |.  8B2D A0624300 mov ebp,dword ptr ds:[<&KERNEL32.lstrlen>;  kernel32.lstrlenA
  0040B258  |.  8D4C24 24     lea ecx,dword ptr ss:[esp+0x24]
  0040B25C  |.  51            push ecx                                 ; /String
  0040B25D  |.  FFD5          call ebp                                 ; \lstrlenA
  0040B25F  |.  48            dec eax
  0040B260  |.  78 11         js short 中原文件.0040B273
  0040B262  |>  807C04 24 5C  /cmp byte ptr ss:[esp+eax+0x24],0x5C
  0040B267  |.  74 05         |je short 中原文件.0040B26E
  0040B269  |.  48            |dec eax
  0040B26A  |.^ 79 F6         \jns short 中原文件.0040B262
  0040B26C  |.  EB 05         jmp short 中原文件.0040B273
  0040B26E  |>  C64404 25 00  mov byte ptr ss:[esp+eax+0x25],0x0
  0040B273  |>  8D5424 24     lea edx,dword ptr ss:[esp+0x24]
  0040B277  |.  8D4C24 20     lea ecx,dword ptr ss:[esp+0x20]
  0040B27B  |.  52            push edx
  0040B27C  |.  E8 05E50100   call 中原文件.00429786
  0040B281  |.  68 7C454400   push 中原文件.0044457C
  0040B286  |.  8D4424 1C     lea eax,dword ptr ss:[esp+0x1C]
  0040B28A  |.  68 5C974400   push 中原文件.0044975C
  0040B28F  |.  50            push eax
  0040B290  |.  C78424 3C0100>mov dword ptr ss:[esp+0x13C],0x0
  0040B29B  |.  E8 0DE70100   call 中原文件.004299AD
  0040B2A0  |.  8B4C24 18     mov ecx,dword ptr ss:[esp+0x18]
  0040B2A4  |.  8B5424 20     mov edx,dword ptr ss:[esp+0x20]
  0040B2A8  |.  51            push ecx
  0040B2A9  |.  52            push edx
  0040B2AA  |.  C68424 380100>mov byte ptr ss:[esp+0x138],0x1
  0040B2B2  |.  E8 72A40000   call 中原文件.00415729
  0040B2B7  |.  83C4 08       add esp,0x8
  0040B2BA  |.  85C0          test eax,eax
  0040B2BC      0F84 0D040000 je 中原文件.0040B6CF                         ;  这个je要实现----------je   jmp
  0040B2C2  |.  68 244B4400   push 中原文件.00444B24                       ; /Title = "D2009History"
  0040B2C7  |.  68 68414400   push 中原文件.00444168                       ; |Class = "#32770"
  0040B2CC  |.  FF15 F0644300 call dword ptr ds:[<&USER32.FindWindowA>>; \FindWindowA
  0040B2D2  |.  68 288E4400   push 中原文件.00448E28
  0040B2D7  |.  8D4C24 14     lea ecx,dword ptr ss:[esp+0x14]
  0040B2DB  |.  E8 A6E40100   call 中原文件.00429786
  0040B2E0  |.  8B43 34       mov eax,dword ptr ds:[ebx+0x34]
  0040B2E3  |.  8D4C24 10     lea ecx,dword ptr ss:[esp+0x10]
  0040B2E7  |.  50            push eax
  0040B2E8  |.  68 68434400   push 中原文件.00444368                       ;  ASCII "%s\Box.exe"
  0040B2ED  |.  51            push ecx
  0040B2EE  |.  C68424 3C0100>mov byte ptr ss:[esp+0x13C],0x2
  0040B2F6  |.  E8 588E0100   call 中原文件.00424153
  0040B2FB  |.  83C4 0C       add esp,0xC
  0040B2FE  |.  8D4C24 14     lea ecx,dword ptr ss:[esp+0x14]
  0040B302  |.  68 288E4400   push 中原文件.00448E28
  0040B307  |.  E8 7AE40100   call 中原文件.00429786
  0040B30C  |.  8D5424 24     lea edx,dword ptr ss:[esp+0x24]
  0040B310  |.  B9 41000000   mov ecx,0x41
  0040B315  |.  33C0          xor eax,eax
  0040B317  |.  8D7C24 24     lea edi,dword ptr ss:[esp+0x24]
  0040B31B  |.  68 04010000   push 0x104
  0040B320  |.  52            push edx
  0040B321  |.  F3:AB         rep stos dword ptr es:[edi]
  0040B323  |.  50            push eax
  0040B324  |.  C68424 3C0100>mov byte ptr ss:[esp+0x13C],0x3
  0040B32C  |.  FFD6          call esi
  0040B32E  |.  8D4424 24     lea eax,dword ptr ss:[esp+0x24]
  0040B332  |.  50            push eax
  0040B333  |.  FFD5          call ebp
  0040B335  |.  48            dec eax
  0040B336  |.  78 11         js short 中原文件.0040B349
  0040B338  |>  807C04 24 5C  /cmp byte ptr ss:[esp+eax+0x24],0x5C
  0040B33D  |.  74 05         |je short 中原文件.0040B344
  0040B33F  |.  48            |dec eax
  0040B340  |.^ 79 F6         \jns short 中原文件.0040B338
  0040B342  |.  EB 05         jmp short 中原文件.0040B349
  0040B344  |>  C64404 25 00  mov byte ptr ss:[esp+eax+0x25],0x0
  0040B349  |>  51            push ecx
  0040B34A  |.  8D5424 14     lea edx,dword ptr ss:[esp+0x14]
  0040B34E  |.  8BCC          mov ecx,esp
  0040B350  |.  896424 20     mov dword ptr ss:[esp+0x20],esp
  0040B354  |.  52            push edx
  0040B355  |.  E8 33E10100   call 中原文件.0042948D
  0040B35A  |.  E8 B182FFFF   call 中原文件.00403610
  0040B35F  |.  8B35 D0624300 mov esi,dword ptr ds:[<&KERNEL32.Sleep>] ;  kernel32.Sleep
  0040B365  |.  83C4 04       add esp,0x4
  0040B368  |.  85C0          test eax,eax
  0040B36A  |.  75 53         jnz short 中原文件.0040B3BF
  0040B36C  |.  8B4424 10     mov eax,dword ptr ss:[esp+0x10]
  0040B370  |.  68 204B4400   push 中原文件.00444B20                       ;  ASCII "one"
  0040B375  |.  68 8A000000   push 0x8A
  0040B37A  |.  50            push eax
  0040B37B  |.  E8 90E9FFFF   call 中原文件.00409D10
  0040B380  |.  83C4 0C       add esp,0xC
  0040B383  |.  85C0          test eax,eax
  0040B385  |.  75 38         jnz short 中原文件.0040B3BF
  0040B387  |.  68 C8000000   push 0xC8
  0040B38C  |.  FFD6          call esi
  0040B38E  |.  8B4C24 10     mov ecx,dword ptr ss:[esp+0x10]
  0040B392  |.  51            push ecx                                 ; /FileName
  0040B393  |.  FF15 DC624300 call dword ptr ds:[<&KERNEL32.DeleteFile>; \DeleteFileA
  0040B399  |.  68 C8000000   push 0xC8
  0040B39E  |.  FFD6          call esi
  0040B3A0  |.  8B5424 10     mov edx,dword ptr ss:[esp+0x10]
  0040B3A4  |.  68 204B4400   push 中原文件.00444B20                       ;  ASCII "one"
  0040B3A9  |.  68 8A000000   push 0x8A
  0040B3AE  |.  52            push edx
  0040B3AF  |.  E8 5CE9FFFF   call 中原文件.00409D10
  0040B3B4  |.  83C4 0C       add esp,0xC
  0040B3B7  |.  85C0          test eax,eax
  0040B3B9  |.  0F84 CD000000 je 中原文件.0040B48C
  0040B3BF  |>  8D4424 24     lea eax,dword ptr ss:[esp+0x24]
  0040B3C3  |.  68 04010000   push 0x104                               ; /BufSize = 104 (260.)
  0040B3C8  |.  50            push eax                                 ; |PathBuffer
  0040B3C9  |.  6A 00         push 0x0                                 ; |hModule = NULL
  0040B3CB  |.  FF15 70624300 call dword ptr ds:[<&KERNEL32.GetModuleF>; \GetModuleFileNameA
  0040B3D1  |.  8D4C24 24     lea ecx,dword ptr ss:[esp+0x24]
  0040B3D5  |.  51            push ecx
  0040B3D6  |.  FFD5          call ebp
  0040B3D8  |.  48            dec eax
  0040B3D9  |.  78 11         js short 中原文件.0040B3EC
  0040B3DB  |>  807C04 24 5C  /cmp byte ptr ss:[esp+eax+0x24],0x5C
  0040B3E0  |.  74 05         |je short 中原文件.0040B3E7
  0040B3E2  |.  48            |dec eax
  0040B3E3  |.^ 79 F6         \jns short 中原文件.0040B3DB
  0040B3E5  |.  EB 05         jmp short 中原文件.0040B3EC
  0040B3E7  |>  C64404 25 00  mov byte ptr ss:[esp+eax+0x25],0x0
  0040B3EC  |>  8D5424 24     lea edx,dword ptr ss:[esp+0x24]
  0040B3F0  |.  8D4424 14     lea eax,dword ptr ss:[esp+0x14]
  0040B3F4  |.  52            push edx
  0040B3F5  |.  68 144B4400   push 中原文件.00444B14                       ;  ASCII "%suser.dll"
  0040B3FA  |.  50            push eax
  0040B3FB  |.  E8 538D0100   call 中原文件.00424153
  0040B400  |.  8B4B 34       mov ecx,dword ptr ds:[ebx+0x34]
  0040B403  |.  83C4 0C       add esp,0xC
  0040B406  |.  8D5424 10     lea edx,dword ptr ss:[esp+0x10]
  0040B40A  |.  51            push ecx
  0040B40B  |.  68 88434400   push 中原文件.00444388                       ;  ASCII "%s\FileEn.exe"
  0040B410  |.  52            push edx
  0040B411  |.  E8 3D8D0100   call 中原文件.00424153
  0040B416  |.  83C4 08       add esp,0x8
  0040B419  |.  8D4424 14     lea eax,dword ptr ss:[esp+0x14]
  0040B41D  |.  8BCC          mov ecx,esp
  0040B41F  |.  896424 20     mov dword ptr ss:[esp+0x20],esp
  0040B423  |.  50            push eax
  
  省略好多代码:
  
  --------------------------
  
  修改完毕两处:-----启动软件是没有提示了。
  
  0040B8D1  |.  74 62         je short 中原文件.0040B935                   ;  这个跳转跳     je  --jmp
  
  
  0040B2BC      0F84 0D040000 je 中原文件.0040B6CF                         ;  这个je要实现----------je   jmp
  
  
  ---------------【-记得以上的每一次操作都保存一下,包括任务1,任务2的过程中,适当的保存方便调试】-------
  
  
  破文到此是不是就该结束了???????????????
  
  我大声说“NO NO NO NO NO”。。。。。。。。。。。。。。。
  
  
  当大家修改设置里面的东西的时候,点击确定会有tmd的那个提示,利用我们之前下过的断点;
  
  继续fuck。。。。。。。。。。。。。。
7.jpg


  
  【【友情提示】:最好是之前的都保存好了,然后重新载入进行调试】
  
  
  按照操作,断在:
  
  00404350   .  64:A1 0000000>mov eax,dword ptr fs:[0]
  00404356   .  6A FF         push -0x1
  00404358   .  68 38384300   push 中原文件.00433838
  0040435D   .  50            push eax
  0040435E   .  64:8925 00000>mov dword ptr fs:[0],esp
  00404365   .  83EC 08       sub esp,0x8
  00404368   .  56            push esi
  00404369   .  57            push edi
  0040436A   .  8BF1          mov esi,ecx
  0040436C   .  6A 01         push 0x1
  0040436E   .  E8 3C3F0200   call 中原文件.004282AF
  00404373   .  8B46 60       mov eax,dword ptr ds:[esi+0x60]
  00404376   .  33FF          xor edi,edi
  00404378   .  A3 58974400   mov dword ptr ds:[0x449758],eax
  0040437D   .  8B4E 5C       mov ecx,dword ptr ds:[esi+0x5C]
  00404380   .  890D 54974400 mov dword ptr ds:[0x449754],ecx
  00404386   .  8A46 64       mov al,byte ptr ds:[esi+0x64]
  00404389   .  8A0D 50974400 mov cl,byte ptr ds:[0x449750]
  0040438F   .  04 41         add al,0x41
  00404391   .  3AC1          cmp al,cl
  00404393   .  74 05         je short 中原文件.0040439A
  00404395   .  BF 01000000   mov edi,0x1
  0040439A   >  B9 28974400   mov ecx,中原文件.00449728                    ;  ASCII "hwC"
  0040439F   .  A2 50974400   mov byte ptr ds:[0x449750],al
  004043A4   .  E8 E7810000   call 中原文件.0040C590
  004043A9   .  8B15 54974400 mov edx,dword ptr ds:[0x449754]
  004043AF   .  B9 28974400   mov ecx,中原文件.00449728                    ;  ASCII "hwC"
  004043B4   .  52            push edx
  004043B5   .  E8 B67E0000   call 中原文件.0040C270
  004043BA   .  85FF          test edi,edi
  004043BC   .  0F84 9F000000 je 中原文件.00404461                         ;  这个je  跳啊    jmp
  004043C2   .  68 98434400   push 中原文件.00444398                       ; /Title = "FileProtected"
  004043C7   .  68 68414400   push 中原文件.00444168                       ; |Class = "#32770"
  004043CC   .  FF15 F0644300 call dword ptr ds:[<&USER32.FindWindowA>>; \FindWindowA
  004043D2   .  85C0          test eax,eax
  004043D4   .  74 18         je short 中原文件.004043EE
  004043D6   .  6A 00         push 0x0                                 ; /lParam = 0
  004043D8   .  6A 00         push 0x0                                 ; |wParam = 0
  004043DA   .  6A 12         push 0x12                                ; |Message = WM_QUIT
  004043DC   .  50            push eax                                 ; |hWnd
  004043DD   .  FF15 F8644300 call dword ptr ds:[<&USER32.PostMessageA>; \PostMessageA
  004043E3   .  68 C4090000   push 0x9C4                               ; /Timeout = 2500. ms
  004043E8   .  FF15 D0624300 call dword ptr ds:[<&KERNEL32.Sleep>]    ; \Sleep
  004043EE   >  68 288E4400   push 中原文件.00448E28
  004043F3   .  8D4C24 0C     lea ecx,dword ptr ss:[esp+0xC]
  004043F7   .  E8 8A530200   call 中原文件.00429786
  004043FC   .  A1 5C974400   mov eax,dword ptr ds:[0x44975C]
  00404401   .  8D4C24 08     lea ecx,dword ptr ss:[esp+0x8]
  00404405   .  50            push eax
  00404406   .  68 88434400   push 中原文件.00444388                       ;  ASCII "%s\FileEn.exe"
  0040440B   .  51            push ecx
  0040440C   .  C74424 24 000>mov dword ptr ss:[esp+0x24],0x0
  00404414   .  E8 3AFD0100   call 中原文件.00424153
  00404419   .  83C4 08       add esp,0x8
  0040441C   .  8D5424 0C     lea edx,dword ptr ss:[esp+0xC]
  
  -------------------------------------------------------------
  
  修改完毕:
  
  004043BC   .  0F84 9F000000 je 中原文件.00404461                         ;  这个je  跳啊    jmp
  
  一处,咱们总结收工吧。第一次写这么长的破文,还得截图
  
  累啊。。。。。。。。。。。。。
  





最终效果.jpg

【经验总结】

  白菜一棵,但是学习呢就一步步的来,有思路有条理简单的也可以学出乐趣来;发工具总是没有分析过程和思路
  
  来的彻底一些;希望牛牛们如果有时间就或多或少的多说说思路。
  
  1。整个过程中要修改的地方如下:
  
  004036DA   .  0F85 A6000000 jnz 中原文件.00403786                           不能跳哦,nop掉
  
  00402777   .  0F84 AF000000 je 中原文件.0040282C                         ;  这个je修改成jmp就行了     
  
  0040B8D1  |.  74 62         je short 中原文件.0040B935                   ;  这个跳转跳     je  --jmp
  
  
  0040B2BC      0F84 0D040000 je 中原文件.0040B6CF                         ;  这个je要实现----------je   jmp
  
  004043BC   .  0F84 9F000000 je 中原文件.00404461                         ;  这个je  跳啊    jmp   
  
  2、就这些了。。。。。。睡觉去。。。。。。。。。。。。。。。。。         
  






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



                                                       2010年12月10日 1:34:06



-----------------------------------------------------------------------------------------------
语音教程补充:标志位爆破的补充:

下载地址:http://u.115.com/file/t5bb521430            
4.jpg
5.jpg

免费评分

参与人数 2热心值 +2 收起 理由
CrazyCCU + 1 精彩的一篇破文!
missviola + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| heiketian10 发表于 2010-12-10 02:02
编辑了好几次,这一篇可真是写了n久。。。。。。。。

沙发
一笑为红颜 发表于 2010-12-10 05:52
cchx0022 发表于 2010-12-10 10:10
zone0826 发表于 2010-12-10 13:02
仔细看了一遍,写的挺详细的,最后也圆满结束,来回调试,各种验证爆破确实麻烦,如果能找出算法就更好了,期待LZ更上一层楼,大家共同进步。
 楼主| heiketian10 发表于 2010-12-10 13:46
感谢楼上各位兄弟的鼓励;

感谢missviola老大加精,菜菜一个;

希望多多和大家交流。

牛牛们见笑了。。
sjg8 发表于 2010-12-10 14:08
lz确实分析的很具体,多多向你学习
gkimqulove 发表于 2010-12-10 15:50
我还没到那个时候,还在努力,
hanyingkun 发表于 2010-12-10 19:13
表示大力的支持
1aty 发表于 2010-12-10 19:36
小鸟前来学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-23 08:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表