【破解作者】 Genius
【作者邮箱】 trains1982@163.com
【作者主页】 http://easysun.3322.net/
【使用工具】 OD
【破解平台】 Win9x/NT/2000/XP
【软件名称】 1RenWiz 1.9
【下载地址】 http://www.onlinedown.net/soft/132.htm
【软件简介】 批量文件改名工具,支持长、短文件名,类资源管理器界面。
【软件大小】 497KB
【加壳方式】 无
【破解声明】 我是一只小菜鸟,偶得一点心得,愿与大家分享:)
--------------------------------------------------------------------------------
【破解内容】
初学者必看的算法(没想到国外的软件作者会这样设计)
用DEDE分析,可以轻松到达这儿:
004851C4 . 8B45 F8 MOV EAX, DWORD PTR SS:[EBP-8]
004851C7 . 50 PUSH EAX
004851C8 . 8D45 F0 LEA EAX, DWORD PTR SS:[EBP-10]
004851CB . 50 PUSH EAX
004851CC . 8D45 F4 LEA EAX, DWORD PTR SS:[EBP-C]
004851CF . E8 845EFFFF CALL renwiz.0047B058 ; 取出机器码
004851D4 . 8B45 F4 MOV EAX, DWORD PTR SS:[EBP-C]
004851D7 . B9 1D000000 MOV ECX, 1D ; ecx=10
004851DC . BA 01000000 MOV EDX, 1 ; edx=1
004851E1 . E8 3AECF7FF CALL renwiz.00403E20 ; 取机器码的前0x1D(29)位
004851E6 . 8B45 F0 MOV EAX, DWORD PTR SS:[EBP-10]
004851E9 . 8D55 F4 LEA EDX, DWORD PTR SS:[EBP-C]
004851EC . E8 FF5DFFFF CALL renwiz.0047AFF0 ; 关键call 跟进(PRAT A)
004851F1 . 8B55 F4 MOV EDX, DWORD PTR SS:[EBP-C]
004851F4 . 58 POP EAX
004851F5 . E8 32EBF7FF CALL renwiz.00403D2C ; 比较call
004851FA 75 29 JNZ SHORT renwiz.00485225 ; 相等注册成功
004851FC . 8D55 EC LEA EDX, DWORD PTR SS:[EBP-14]
004851FF . 8B9E 88060000 MOV EBX, DWORD PTR DS:[ESI+688]
00485205 . 8BC3 MOV EAX, EBX
00485207 . E8 4083FAFF CALL renwiz.0042D54C
0048520C . 8D45 EC LEA EAX, DWORD PTR SS:[EBP-14]
0048520F . BA 1C534800 MOV EDX, renwiz.0048531C ; ASCII " Registerd"
00485214 . E8 0BEAF7FF CALL renwiz.00403C24
00485219 . 8B55 EC MOV EDX, DWORD PTR SS:[EBP-14]
0048521C . 8BC3 MOV EAX, EBX
0048521E . E8 5983FAFF CALL renwiz.0042D57C
00485223 . EB 27 JMP SHORT renwiz.0048524C
00485225 > 8D55 EC LEA EDX, DWORD PTR SS:[EBP-14]
00485228 . 8B9E 88060000 MOV EBX, DWORD PTR DS:[ESI+688]
0048522E . 8BC3 MOV EAX, EBX
00485230 . E8 1783FAFF CALL renwiz.0042D54C
00485235 . 8D45 EC LEA EAX, DWORD PTR SS:[EBP-14]
00485238 . BA 30534800 MOV EDX, renwiz.00485330 ; ASCII " NOT Registerd"
0048523D . E8 E2E9F7FF CALL renwiz.00403C24
00485242 . 8B55 EC MOV EDX, DWORD PTR SS:[EBP-14]
00485245 . 8BC3 MOV EAX, EBX
------------------------------
PRAT A
0047B00B |. 55 PUSH EBP
0047B00C |. 68 4CB04700 PUSH renwiz.0047B04C
0047B011 |. 64:FF30 PUSH DWORD PTR FS:[EAX]
0047B014 |. 64:8920 MOV DWORD PTR FS:[EAX], ESP
0047B017 |. 8B45 FC MOV EAX, [LOCAL.1] ; eax指向前29位机器码
0047B01A |. E8 01EBFFFF CALL renwiz.00479B20 ; 把机器号累加 (PART B)
0047B01F |. 8D55 F8 LEA EDX, [LOCAL.2]
0047B022 |. E8 7DD2F8FF CALL renwiz.004082A4 ; 把累加起来的数变成10进位
0047B027 |. 8B45 F8 MOV EAX, [LOCAL.2]
0047B02A |. 8BD3 MOV EDX, EBX
0047B02C |. E8 6BEBFFFF CALL renwiz.00479B9C ; 把值变为16进位
0047B031 |. 33C0 XOR EAX, EAX
0047B033 |. 5A POP EDX
0047B034 |. 59 POP ECX
0047B035 |. 59 POP ECX
0047B036 |. 64:8910 MOV DWORD PTR FS:[EAX], EDX
0047B039 |. 68 53B04700 PUSH renwiz.0047B053
0047B03E |> 8D45 F8 LEA EAX, [LOCAL.2]
0047B041 |. BA 02000000 MOV EDX, 2
0047B046 |. E8 7989F8FF CALL renwiz.004039C4
0047B04B \. C3 RETN
---------------------------------
PART B
00479B44 |. 8D85 FCFEFFFF LEA EAX, [LOCAL.65]
00479B4A |. 8B55 FC MOV EDX, [LOCAL.1]
00479B4D |. E8 FEEDF8FF CALL renwiz.00408950
00479B52 |. 33F6 XOR ESI, ESI ; esi=0
00479B54 |. 33DB XOR EBX, EBX ; ebx=0
00479B56 |> 33C0 /XOR EAX, EAX
00479B58 |. 8A841D FCFEFF>|MOV AL, BYTE PTR SS:[EBP+EBX-104]
00479B5F |. 03F0 |ADD ESI, EAX ;取出机器码的每一位加到esi
00479B61 |. 43 |INC EBX ; ebx为计数器
00479B62 |. 80BC1D FCFEFF>|CMP BYTE PTR SS:[EBP+EBX-104], 0 ; 是否取完
00479B6A |. 74 08 |JE SHORT renwiz.00479B74
00479B6C |. 81FB FF000000 |CMP EBX, 0FF
00479B72 |.^ 75 E2 \JNZ SHORT renwiz.00479B56
00479B74 |> 8BDE MOV EBX, ESI ; 累加
00479B76 |. 33C0 XOR EAX, EAX
00479B78 |. 5A POP EDX
00479B79 |. 59 POP ECX
00479B7A |. 59 POP ECX
00479B7B |. 64:8910 MOV DWORD PTR FS:[EAX], EDX
00479B7E |. 68 939B4700 PUSH renwiz.00479B93
00479B83 |> 8D45 FC LEA EAX, [LOCAL.1]
00479B86 |. E8 159EF8FF CALL renwiz.004039A0
00479B8B \. C3 RETN
--------------------------------------------------------------------------------
【破解总结】
这个软件的算法实在是太简单了,没想到国外的软件作者会这样设计,最近非常不幸,要不碰到的软件奇怪无比(如:幻影,MD5)
要不就是非常简单(如本软件),唉!
算法总结:
1、取机器码的前29位
2、把它们累加。
3、累加的数字转成16进制
--------------------------------------------------------------------------------
【算法注册机】
附VB注册机
Private Sub Command1_Click()
strtmp = Text1.Text
a = Text1.Text
For i = 1 To &H1D
b = b + Asc(Mid(a, i, 1))
Next i
Text2.Text = Hex(b)
End Sub
--------------------------------------------------------------------------------
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!