双智格子铺管理软件--追码过程
【文章标题】: 双智格子铺管理软件--追码过程【文章作者】: 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:
005F6791 .50 PUSH EAX
005F6792 .64:8925 00000>MOV DWORD PTR FS:,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:,ESP
005F67A5 .C745 F8 20614>MOV DWORD PTR SS:,双智格子.00406120
005F67AC .8B75 08 MOV ESI,DWORD PTR SS:
.......................
005F684B .8BF8 MOV EDI,EAX
005F684D .FF91 A0000000 CALL DWORD PTR DS:
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:
005F687B .FFD3 CALL EBX
005F687D .50 PUSH EAX
005F687E .8B45 E8 MOV EAX,DWORD PTR SS:
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:
005F688D .F7DF NEG EDI
005F688F .1BFF SBB EDI,EDI
005F6891 .8D55 E4 LEA EDX,DWORD PTR SS:
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:
005F68A4 .8D4D CC LEA ECX,DWORD PTR SS:
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:
005F68BF .56 PUSH ESI
005F68C0 .FF92 FC020000 CALL DWORD PTR DS:
005F68C6 .50 PUSH EAX
005F68C7 .8D45 CC LEA EAX,DWORD PTR SS:
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:
005F68D6 .52 PUSH EDX
005F68D7 .6A 01 PUSH 1
005F68D9 .8B0F MOV ECX,DWORD PTR DS:
005F68DB .57 PUSH EDI
005F68DC .FF51 40 CALL DWORD PTR DS:
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:
005F68F7 .8D55 DC LEA EDX,DWORD PTR SS:
005F68FA .52 PUSH EDX
005F68FB .50 PUSH EAX
005F68FC .8B08 MOV ECX,DWORD PTR DS:
005F68FE .8BF8 MOV EDI,EAX
005F6900 .FF91 A0000000 CALL DWORD PTR DS:
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:
005F692C .FFD7 CALL EDI
005F692E .BA 8CE94300 MOV EDX,双智格子.0043E98C ;UNICODE "7B293FF5D1A543C75F4E8D66A6BDDC97"
005F6933 .8D4D E8 LEA ECX,DWORD PTR SS:
005F6936 .FFD7 CALL EDI
005F6938 .8D45 E4 LEA EAX,DWORD PTR SS:
005F693B .68 D4204400 PUSH 双智格子.004420D4 ;UNICODE "panan"
005F6940 .8D4D E8 LEA ECX,DWORD PTR SS:
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:
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:
005F695D .FFD3 CALL EBX
005F695F .8B55 DC MOV EDX,DWORD PTR SS:
005F6962 .8D4D D8 LEA ECX,DWORD PTR SS:
005F6965 .C745 DC 00000>MOV DWORD PTR SS:,0
005F696C .FFD3 CALL EBX
005F696E .8D55 D4 LEA EDX,DWORD PTR SS:
005F6971 .8D45 D8 LEA EAX,DWORD PTR SS:
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:
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:
005F699B .8D55 D4 LEA EDX,DWORD PTR SS:
好了,试做了下注册机。但是提示错误,猜测可能有防止注册机的东西
但是既然找到方法了,我想大家也达到目的了,嘿嘿做人不能太冠希,凡是给人留条后路嘛。
好了收工,该休息了。
--------------------------------------------------------------------------------
【经验总结】
本例子壳很容易脱掉,破解的思路也很简单,关键是程序对于OD的检测很强。导致很多版本的OD不能载入程序或者程序载入
后不能下断点。明码比较,就不用多说了。
--------------------------------------------------------------------------------
【版权声明】: 本文原创于吾爱破解论坛, 转载请注明作者并保持文章的完整, 谢谢!
2009年03月17日 23:36:31 0012E5C0 005F6ADF返回到 双智格子.005F6ADF 来自 MSVBVM60.rtcMsgBox
复制代码好了,我们直接alt+F9返回,然后在段首下断。
-------------------------------------------------------------------------------------
能出视频吗?
不太清楚 你算出来的注册码是多少? 怪不得怎么老出错!
麻烦楼主给个 野猪DBG
注册机写不出来吗?
那可以修改机器码吗?写个软件修改机器码和导入注册码? 不错哦,是好文章,支持楼主 vb程序做起来就是比较难做。麻烦的很。 额
对中间的内容还懂,关于API函数的那点
不怎么懂
学习 不错,非常强大.支持一下 学习了,感谢分享
页:
[1]
2