吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8042|回复: 12
收起左侧

[分享] 双智格子铺管理软件--追码过程

[复制链接]
wanjiale 发表于 2009-3-17 23:40
【文章标题】: 双智格子铺管理软件--追码过程
【文章作者】: kelvar
【作者邮箱】: kelvar@sohu.com
【作者主页】: 建设中
【作者QQ号】: 44232165
【软件名称】: 双智格子铺管理软件 2.6
【软件大小】: 5468KB
【下载地址】: 自己搜索下载
【保护方式】: 注册码
【编写语言】: VB
【使用工具】: PEID0.95,FlyOD,野猪OD
【操作平台】: 盗版window xp2
【软件介绍】: http://www.newhua.com/soft/71803.htm
【作者声明】: 菜鸟凑热闹~^_^,失误之处请大虾们指出。
--------------------------------------------------------------------------------
【详细过程】
  看到有网友求破文和注册机。由于以前也没有写过注册机(发现注册机不能工作)。也算是锻炼下自己。好了废话少说,下面进入正题。
    首先下载安装,用PEID查壳,ASPack 2.12 -> Alexey Solodovnikov的壳。嘿嘿,小样忒简单的壳啦。
  直接用PEID插件--PEID通用脱壳器脱之。并选择使用IMREC修复,好了运行下脱壳后的文件,OK可以运行。PEID再查下,
  显示Microsoft Visual Basic 5.0 / 6.0。
   OD直接载入,忽略所有异常。隐藏OD 然后Ctrl+N,查找使用到的API函数,一般使用三个
  004010F0        MSVBVM60.rtcMsgBox
  00401188        MSVBVM60.__vbaStrCmp
  00401300        MSVBVM60.__vbaVarCmpEq
  
OK,三个函数上直接下断,然后Shift+F9运行,发现程序在NT.dll出现死机现象。(注:我在另一台电脑上
  调试的时候,先是一个中断,然后就是直接退出。后来再另一台机器上调试的时候试了几个版本的OD都不好用,但是最终找到
  野猪DBG加载成功)。所以猜测程序有校验之类的东西检测断点。所以我们只能先
  取消断点让程序跑起来,然后三个断点一个一个的试试。其实很快的。
  方法推荐下面的两种
  1。使用rtcMsgBox,出现错误提示框的时候查看堆栈中的返回地址回溯。
  2。使用两个__vbaStrCmp,__vbaVarCmpEq断点一个一个试试好了,看看程序先断在那里
  这里我就直接使用第一种方法。
  F9让程序先跑起来,然后点击帮助--软件注册,输入假码"123456789"。这里我的机器码是"F1BC9C1350940B60"
  此时先将断点rtcMsgBox激活,然后点击注册按钮。看到堆栈中出现
  0012E5C0   005F6ADF  返回到 双智格子.005F6ADF 来自 MSVBVM60.rtcMsgBox
  
好了,我们直接alt+F9返回,然后在段首下断。
  005F6780   > \55            PUSH EBP
  005F6781   .  8BEC          MOV EBP,ESP
  005F6783   .  83EC 0C       SUB ESP,0C
  005F6786   .  68 16C24000   PUSH <JMP.&MSVBVM60.__vbaExceptHandler>                ;  SE 处理程序安装
  005F678B   .  64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
  005F6791   .  50            PUSH EAX
  005F6792   .  64:8925 00000>MOV DWORD PTR FS:[0],ESP
  005F6799   .  81EC CC000000 SUB ESP,0CC
  005F679F   .  53            PUSH EBX
  005F67A0   .  56            PUSH ESI
  005F67A1   .  57            PUSH EDI
  005F67A2   .  8965 F4       MOV DWORD PTR SS:[EBP-C],ESP
  005F67A5   .  C745 F8 20614>MOV DWORD PTR SS:[EBP-8],双智格子.00406120
  005F67AC   .  8B75 08       MOV ESI,DWORD PTR SS:[EBP+8]
  .......................
  005F684B   .  8BF8          MOV EDI,EAX
  005F684D   .  FF91 A0000000 CALL DWORD PTR DS:[ECX+A0]
  005F6853   .  3BC3          CMP EAX,EBX
  005F6855   .  DBE2          FCLEX
  005F6857   .  7D 12         JGE SHORT 双智格子.005F686B
  005F6859   .  68 A0000000   PUSH 0A0
  005F685E   .  68 08FF4300   PUSH 双智格子.0043FF08
  005F6863   .  57            PUSH EDI
  005F6864   .  50            PUSH EAX
  005F6865   .  FF15 9C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresultCheckObj>]   ;  MSVBVM60.__vbaHresultCheckObj
  005F686B   >  E8 002EF3FF   CALL 双智格子.00529670
  005F6870   .  8B1D 64134000 MOV EBX,DWORD PTR DS:[<&MSVBVM60.__vbaStrMove>]        ;  MSVBVM60.__vbaStrMove
  005F6876   .  8BD0          MOV EDX,EAX                                            ;  出现真码
  005F6878   .  8D4D E4       LEA ECX,DWORD PTR SS:[EBP-1C]
  005F687B   .  FFD3          CALL EBX
  005F687D   .  50            PUSH EAX
  005F687E   .  8B45 E8       MOV EAX,DWORD PTR SS:[EBP-18]
  005F6881   .  50            PUSH EAX
  005F6882   .  FF15 88114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCmp>]            ;  MSVBVM60.__vbaStrCmp
  005F6888   .  8BF8          MOV EDI,EAX
  005F688A   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
  005F688D   .  F7DF          NEG EDI
  005F688F   .  1BFF          SBB EDI,EDI
  005F6891   .  8D55 E4       LEA EDX,DWORD PTR SS:[EBP-1C]
  005F6894   .  51            PUSH ECX
  005F6895   .  47            INC EDI
  005F6896   .  52            PUSH EDX
  005F6897   .  6A 02         PUSH 2
  005F6899   .  F7DF          NEG EDI
  005F689B   .  FF15 DC124000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeStrList>]       ;  MSVBVM60.__vbaFreeStrList
  005F68A1   .  8D45 C8       LEA EAX,DWORD PTR SS:[EBP-38]
  005F68A4   .  8D4D CC       LEA ECX,DWORD PTR SS:[EBP-34]
  005F68A7   .  50            PUSH EAX
  005F68A8   .  51            PUSH ECX
  005F68A9   .  6A 02         PUSH 2
  005F68AB   .  FF15 54104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeObjList>]       ;  MSVBVM60.__vbaFreeObjList
  005F68B1   .  83C4 18       ADD ESP,18
  005F68B4   .  66:85FF       TEST DI,DI
  005F68B7   .  0F84 B6010000 JE 双智格子.005F6A73
  005F68BD   .  8B16          MOV EDX,DWORD PTR DS:[ESI]
  005F68BF   .  56            PUSH ESI
  005F68C0   .  FF92 FC020000 CALL DWORD PTR DS:[EDX+2FC]
  005F68C6   .  50            PUSH EAX
  005F68C7   .  8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
  005F68CA   .  50            PUSH EAX
  005F68CB   .  FF15 F4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaObjSet>]            ;  MSVBVM60.__vbaObjSet
  005F68D1   .  8BF8          MOV EDI,EAX
  005F68D3   .  8D55 C8       LEA EDX,DWORD PTR SS:[EBP-38]
  005F68D6   .  52            PUSH EDX
  005F68D7   .  6A 01         PUSH 1
  005F68D9   .  8B0F          MOV ECX,DWORD PTR DS:[EDI]
  005F68DB   .  57            PUSH EDI
  005F68DC   .  FF51 40       CALL DWORD PTR DS:[ECX+40]
  005F68DF   .  85C0          TEST EAX,EAX
  005F68E1   .  DBE2          FCLEX
  005F68E3   .  7D 0F         JGE SHORT 双智格子.005F68F4
  005F68E5   .  6A 40         PUSH 40
  005F68E7   .  68 58F64300   PUSH 双智格子.0043F658
  005F68EC   .  57            PUSH EDI
  005F68ED   .  50            PUSH EAX
  005F68EE   .  FF15 9C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresultCheckObj>]   ;  MSVBVM60.__vbaHresultCheckObj
  005F68F4   >  8B45 C8       MOV EAX,DWORD PTR SS:[EBP-38]
  005F68F7   .  8D55 DC       LEA EDX,DWORD PTR SS:[EBP-24]
  005F68FA   .  52            PUSH EDX
  005F68FB   .  50            PUSH EAX
  005F68FC   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
  005F68FE   .  8BF8          MOV EDI,EAX
  005F6900   .  FF91 A0000000 CALL DWORD PTR DS:[ECX+A0]
  005F6906   .  85C0          TEST EAX,EAX
  005F6908   .  DBE2          FCLEX
  005F690A   .  7D 12         JGE SHORT 双智格子.005F691E
  005F690C   .  68 A0000000   PUSH 0A0
  005F6911   .  68 08FF4300   PUSH 双智格子.0043FF08
  005F6916   .  57            PUSH EDI
  005F6917   .  50            PUSH EAX
  005F6918   .  FF15 9C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresultCheckObj>]   ;  MSVBVM60.__vbaHresultCheckObj
  005F691E   >  8B3D C8124000 MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaStrCopy>]        ;  MSVBVM60.__vbaStrCopy
  005F6924   .  BA 50214400   MOV EDX,双智格子.00442150                                  ;  UNICODE "13561322200*"
  005F6929   .  8D4D E4       LEA ECX,DWORD PTR SS:[EBP-1C]
  005F692C   .  FFD7          CALL EDI
  005F692E   .  BA 8CE94300   MOV EDX,双智格子.0043E98C                                  ;  UNICODE "7B293FF5D1A543C75F4E8D66A6BDDC97"
  005F6933   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
  005F6936   .  FFD7          CALL EDI
  005F6938   .  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]
  005F693B   .  68 D4204400   PUSH 双智格子.004420D4                                     ;  UNICODE "panan"
  005F6940   .  8D4D E8       LEA ECX,DWORD PTR SS:[EBP-18]
  005F6943   .  50            PUSH EAX
  005F6944   .  51            PUSH ECX
  005F6945   .  E8 C63CF3FF   CALL 双智格子.0052A610
  005F694A   .  8BD0          MOV EDX,EAX
  005F694C   .  8D4D E0       LEA ECX,DWORD PTR SS:[EBP-20]
  005F694F   .  FFD3          CALL EBX
  005F6951   .  50            PUSH EAX
  005F6952   .  FF15 7C104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCat>]            ;  MSVBVM60.__vbaStrCat
  005F6958   .  8BD0          MOV EDX,EAX
  005F695A   .  8D4D D4       LEA ECX,DWORD PTR SS:[EBP-2C]
  005F695D   .  FFD3          CALL EBX
  005F695F   .  8B55 DC       MOV EDX,DWORD PTR SS:[EBP-24]
  005F6962   .  8D4D D8       LEA ECX,DWORD PTR SS:[EBP-28]
  005F6965   .  C745 DC 00000>MOV DWORD PTR SS:[EBP-24],0
  005F696C   .  FFD3          CALL EBX
  005F696E   .  8D55 D4       LEA EDX,DWORD PTR SS:[EBP-2C]
  005F6971   .  8D45 D8       LEA EAX,DWORD PTR SS:[EBP-28]
  005F6974   .  52            PUSH EDX
  005F6975   .  50            PUSH EAX
  005F6976   .  E8 553AF3FF   CALL 双智格子.0052A3D0
  005F697B   .  8BD0          MOV EDX,EAX
  005F697D   .  8D4D D0       LEA ECX,DWORD PTR SS:[EBP-30]
  005F6980   .  FFD3          CALL EBX
  005F6982   .  50            PUSH EAX
  005F6983   .  68 30214400   PUSH 双智格子.00442130                                     ;  UNICODE "regcode"
  005F6988   .  68 1C214400   PUSH 双智格子.0044211C                                     ;  UNICODE "reginfo"
  005F698D   .  68 C4204400   PUSH 双智格子.004420C4
  005F6992   .  FF15 0C104000 CALL DWORD PTR DS:[<&MSVBVM60.rtcSaveSetting>]         ;  MSVBVM60.rtcSaveSetting
  005F6998   .  8D4D D0       LEA ECX,DWORD PTR SS:[EBP-30]
  005F699B   .  8D55 D4       LEA EDX,DWORD PTR SS:[EBP-2C]
  
好了,试做了下注册机。但是提示错误,猜测可能有防止注册机的东西
  但是既然找到方法了,我想大家也达到目的了,嘿嘿做人不能太冠希,凡是给人留条后路嘛。
  好了收工,该休息了。
  
--------------------------------------------------------------------------------
【经验总结】
  本例子壳很容易脱掉,破解的思路也很简单,关键是程序对于OD的检测很强。导致很多版本的OD不能载入程序或者程序载入
  后不能下断点。明码比较,就不用多说了。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于吾爱破解论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年03月17日 23:36:31

免费评分

参与人数 1威望 +2 收起 理由
Hmily + 2 感谢发布原创作品,[吾爱破解]因你更精彩!

查看全部评分

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

et-boy 发表于 2009-3-19 00:57
0012E5C0   005F6ADF  返回到 双智格子.005F6ADF 来自 MSVBVM60.rtcMsgBox

  
复制代码好了,我们直接alt+F9返回,然后在段首下断。
-------------------------------------------------------------------------------------
能出视频吗?
不太清楚
头像被屏蔽
qiaozjhh 发表于 2009-3-18 20:33
et-boy 发表于 2009-3-18 20:30
et-boy 发表于 2009-3-18 20:12
怪不得怎么老出错!
麻烦楼主给个 野猪DBG

注册机写不出来吗?
那可以修改机器码吗?写个软件修改机器码和导入注册码?
热火朝天 发表于 2009-3-18 00:01
不错哦,是好文章,支持楼主
lyliucn 发表于 2009-3-23 17:16
vb程序做起来就是比较难做。麻烦的很。
q493632284 发表于 2009-3-24 15:57

  对中间的内容还懂,关于API函数的那点
  不怎么懂
  学习
回眸一笑 发表于 2009-5-2 21:28
不错,非常强大.支持一下
洞庭风 发表于 2009-5-2 21:42
学习了,感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-22 21:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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