- UID
- 2185
注册时间2005-6-29
阅读权限10
最后登录1970-1-1
周游历练
该用户从未签到
|
【破解作者】 magei
【作者邮箱】 [email protected]
【使用工具】 od c32asm PEiD UnAspack
【破解平台】 Win9x/NT/2000/XP
【软件名称】 配合比参考手册
【下载地址】 http://sygcs.9126.com/
【软件简介】 是混凝土设计时你参考的一个助手,它提供了从C15到C55所有的配合比,并分卵石和碎石混凝土,可根据不同强度的水泥,不同的坍落度,不同的水泥富裕系数提供不同的配合比!
【软件大小】 121k
【加壳方式】 aspack 2.12
【破解声明】 我是一只小菜鸟,本文章只为了加入PYG,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
1、用PEiD查壳,是ASPack 2.12 -> Alexey Solodovnikov
2、自然用UnAspack脱,也可以用手脱
3、用PEiD查脱壳后的vc6.0做的
4用C32ASM载入,ctrl+k搜索字符串找到成功提示
::004383A1:: 83C4 04 ADD ESP,4
::004383A4:: 8BCE MOV ECX,ESI
::004383A6:: 6A 00 PUSH 0
::004383A8:: 68 E4334400 PUSH 4433E4 \->: 混凝土配合比参考手册
::004383AD:: 68 88344400 PUSH 443488 \->: 谢谢你的支持!\x0D\x0A有什么好的建议和想法,请和我联系!\x0D\x0A 请你重新启动软件!!
::004383B2:: E8 4F250000 CALL 0043A906 \:JMPDOWN >>>: MFC42.DLL:?MessageBoxA@CWnd@@QAEHPBD0I@Z(对话窗口)
向上查找到
::00437EFC:: E8 292A0000 CALL 0043A92A \:JMPDOWN >>>: MFC42.DLL:?GetDlgItemTextA@CWnd@@QBEHHAAVCString@@@Z(得到注册码)
::00437F09:: 8B45 F0 MOV EAX,[EBP-10]
::00437F0C:: 8B40 F8 MOV EAX,[EAX-8]
::00437F0F:: 83F8 10 CMP EAX,10 \:输入的注册码是不是16位,
::00437F12:: 0F85 70020000 JNZ 00438188 \:JMPDOWN 不是就返回重新输入
.
.
.
::00437FCE:: E8 57290000 CALL 0043A92A \:JMPDOWN >>>: MFC42.DLL:?GetDlgItemTextA@CWnd@@QBEHHAAVCString@@@Z(得到机器码)
::00437FD3:: 8B4D D8 MOV ECX,[EBP-28]
::00437FD6:: 8B41 F8 MOV EAX,[ECX-8]
::00437FD9:: 83F8 08 CMP EAX,8 输入的机器码是不是8位,
::00437FDC:: 0F85 76010000 JNZ 00438158 \:JMPDOWN 不是就返回重新输入
.
.
::00438026:: 51 PUSH ECX 压入机器码
::00438027:: 52 PUSH EDX 压入WL750415,应该是作者名字的和生日组合
::00438028:: 8D4D DC LEA ECX,[EBP-24]
::0043802B:: E8 20D4FFFF CALL 00435450 \:JMPUP.把机器码和WL750415连接并处理L,要跟算法就F7
::00438030:: 8B45 D3 MOV EAX,[EBP-2D]
::00438033:: 8B4D D2 MOV ECX,[EBP-2E]
::00438036:: 8B55 D1 MOV EDX,[EBP-2F]
::00438039:: 25 FF000000 AND EAX,FF
::0043803E:: 81E1 FF000000 AND ECX,FF
00438030 8B45 D3 mov eax,dword ptr ss:[ebp-2D]
00438033 8B4D D2 mov ecx,dword ptr ss:[ebp-2E]
00438036 8B55 D1 mov edx,dword ptr ss:[ebp-2F]
00438039 25 FF000000 and eax,0FF 对上面的处理的结果按位处理
0043803E 81E1 FF000000 and ecx,0FF
00438044 50 push eax
00438045 8B45 D0 mov eax,dword ptr ss:[ebp-30]
00438048 51 push ecx
00438049 8B4D CF mov ecx,dword ptr ss:[ebp-31]
0043804C 81E2 FF000000 and edx,0FF
00438052 25 FF000000 and eax,0FF
00438057 52 push edx
00438058 8B55 CE mov edx,dword ptr ss:[ebp-32]
0043805B 81E1 FF000000 and ecx,0FF
00438061 50 push eax
00438062 8B45 CD mov eax,dword ptr ss:[ebp-33]
00438065 51 push ecx
00438066 8B4D CC mov ecx,dword ptr ss:[ebp-34]
00438069 81E2 FF000000 and edx,0FF
0043806F 25 FF000000 and eax,0FF
00438074 52 push edx
00438075 81E1 FF000000 and ecx,0FF
0043807B 50 push eax
0043807C 51 push ecx
0043807D 8D55 E4 lea edx,dword ptr ss:[ebp-1C]
00438080 68 FC334400 push 混凝土配.004433FC ; ASCII "%02X%02X%02X%02X%02X%02X%02X%02X"
00438085 52 push edx
00438086 E8 F3250000 call <jmp.&MFC42.#2818> 应该是把上面的结果连接
0043808B 8B45 D3 mov eax,dword ptr ss:[ebp-2D]
0043808E 8B4D D2 mov ecx,dword ptr ss:[ebp-2E]
00438091 8B55 D1 mov edx,dword ptr ss:[ebp-2F]
00438094 25 FF000000 and eax,0FF :得到的字符串再按位处理
00438099 81E1 FF000000 and ecx,0FF
0043809F 0C 08 or al,8
004380A1 83F1 04 xor ecx,4
004380A4 50 push eax
004380A5 8B45 D0 mov eax,dword ptr ss:[ebp-30]
004380A8 51 push ecx
004380A9 8B4D CF mov ecx,dword ptr ss:[ebp-31]
004380AC 81E2 FF000000 and edx,0FF
004380B2 25 FF000000 and eax,0FF
004380B7 83F2 05 xor edx,5
004380BA 81E1 FF000000 and ecx,0FF
004380C0 83F0 04 xor eax,4
004380C3 52 push edx
004380C4 8B55 CE mov edx,dword ptr ss:[ebp-32]
004380C7 83F1 03 xor ecx,3
004380CA 50 push eax
004380CB 8B45 CD mov eax,dword ptr ss:[ebp-33]
004380CE 51 push ecx
004380CF 8B4D CC mov ecx,dword ptr ss:[ebp-34]
004380D2 81E2 FF000000 and edx,0FF
004380D8 25 FF000000 and eax,0FF
004380DD 83F2 02 xor edx,2
004380E0 81E1 FF000000 and ecx,0FF
004380E6 83F0 01 xor eax,1
004380E9 52 push edx
004380EA 83F1 01 xor ecx,1
004380ED 50 push eax
004380EE 51 push ecx
004380EF 8D55 E0 lea edx,dword ptr ss:[ebp-20]
004380F2 68 FC334400 push 混凝土配.004433FC ; ASCII "%02X%02X%02X%02X%02X%02X%02X%02X"
004380F7 52 push edx
004380F8 E8 81250000 call <jmp.&MFC42.#2818> :再连接
004380FD 83C4 50 add esp,50 :这时候可以在寄存器看到真码了
.
.
.
00438149 50 push eax 压入真码
0043814A 51 push ecx 压入假码
0043814B FF15 34D54300 call dword ptr ds:[<&MSVCRT._mbscmp>; msvcrt._mbscmp 比较
00438151 83C4 08 add esp,8
00438154 85C0 test eax,eax
00438156 74 44 je short 混凝土配.0043819C 相等就跳
后面就不详细分析,如果不相等,这返回,相等则把注册放入注册表
--------------------------------------
【KeyMake之内存注册机】:
中断地址:00438100
中断次数:1
第一字节:E8
指令长度:5
保存下列信息为注册码 - 内存方式
寄存器 ECX
-------------------------------------------
【注册信息保存】:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\MeasureSoft\配合比]
"key1"="67247087"
"key2"="305134427021A083"
—————————————————————————————————
--------------------------------------------------------------------------------
【算法总结】
机器码先与字符串“WL750415”连接成一个新的字符串,然后经过一系列的运算,转换一串数据,最后这个数据与
你输入的注册码比较如果相等那么注册成功
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明转自PYG及作者并保持文章的完整, 谢谢!
[ Last edited by magei on 2005-7-25 at 01:03 AM ] |
|