Resource Builder 1.1.0 完全破解~~附彙編序號產生器 (10千字)
軟體名稱:Resource Builder 1.1.0
下載地址:漢化新世紀
軟體簡介:
自稱是自Borland Resource WorkShop 4.5後的長久期待??可以直接開啟資原始檔,可以匯入.exe檔案並可選擇指定的資源以便於修改,修改後只能存為資源格式,如果直接開啟表單可以類似exescope一樣修改,如果是匯入的話,只能看到16進位制碼。
軟體限制:未註冊每次進入會提醒註冊,功能限制未知
破解目的:
最近在學彙編程式設計,很多東西不懂,自己慢慢摸索,應該會用到以上軟體,下載後發現沒破解,於是自己動手.另外最近我買了一本《Windows環境下組合語言程式設計》,雖然是講Tasm的,不過基本的東西都差不多,但是好象還是不夠.這本書好象是市面上唯一一本講Windows下彙編程式設計的.
開始~~~~~~~這次是用最基本的方法,先hmemcpy,然後s,再bpm,F5....B.oOOM馬上在Step 2裡的0049D2B5處中斷,其實這個程式的註冊演算法很簡單,不過稍不留意的話可能就寫不出序號產生器了,請看~~~~~~~~
==Step 1======================================================================
這裡是我後來找到的,其實是呼叫Step 2的地方
:0049D39B 8B45FC
mov eax, dword ptr [ebp-04]
:0049D39E E8BDFEFFFF call 0049D260
<---計算假的註冊碼(67676767)
:0049D3A3 8BF0
mov esi, eax <---結果在eax
:0049D3A5 8D55F8
lea edx, dword ptr [ebp-08]
:0049D3A8 8B83D4020000 mov eax, dword
ptr [ebx+000002D4]
:0049D3AE E84597F9FF call 00436AF8
:0049D3B3 8B45F8
mov eax, dword ptr [ebp-08]
:0049D3B6 E8A5FEFFFF call 0049D260
<---計算機器碼
:0049D3BB 330598414C00 xor eax, dword
ptr [004C4198]<---結果在eax,[004C4198]=CFFF34BC
:0049D3C1 2BF0
sub esi, eax <---esi是假註冊碼計算後的結果
:0049D3C3 757C
jne 0049D441 <---相等就成功,執行到上一句時將esi改成eax裡的值就是永久註冊版了
:0049D3C5 33D2
xor edx, edx
:0049D3C7 B043
mov al, 43
:0049D3C9 E82E15FFFF call 0048E8FC
:0049D3CE 8BC8
mov ecx, eax
:0049D3D0 81F1CE703600 xor ecx, 003670CE
* Possible StringData Ref from Code Obj ->"Length"
註冊成功後會在以下注冊表裡寫下標誌(已加密)
HKEY_CURRENT_USER\Software\SiComponents\ResourceBuilder\Options\Length
|
:0049D3D6 BA7CD44900 mov edx,
0049D47C
* Possible StringData Ref from Code Obj ->"Options"
|
:0049D3DB B88CD44900 mov eax,
0049D48C
==Step 2====================================================================
為了寫序號產生器,我們必須進入此Call研究它的演算法,至於假註冊碼的計算我就不寫了,因為與機器碼的計算都是一樣的,我們只討論後者.
注:下面所提資料均為16進位制
* Referenced by a CALL at Addresses:
|:0049D39E , :0049D3B6
|
:0049D260 55
push ebp
:0049D261 8BEC
mov ebp, esp
:0049D263 83C4F4
add esp, FFFFFFF4
:0049D266 56
push esi
:0049D267 57
push edi
:0049D268 8945FC
mov dword ptr [ebp-04], eax
:0049D26B 8B45FC
mov eax, dword ptr [ebp-04]
:0049D26E E8A56DF6FF call 00404018
:0049D273 33C0
xor eax, eax
:0049D275 55
push ebp
:0049D276 68F5D24900 push 0049D2F5
:0049D27B 64FF30
push dword ptr fs:[eax]
:0049D27E 648920
mov dword ptr fs:[eax], esp
:0049D281 33C0
xor eax, eax
:0049D283 8945F8
mov dword ptr [ebp-08], eax
:0049D286 8B45FC
mov eax, dword ptr [ebp-04]
:0049D289 E8D66BF6FF call 00403E64
:0049D28E 83F808
cmp eax, 00000008 <---註冊碼必須是8位
:0049D291 754C
jne 0049D2DF
:0049D293 8B45FC
mov eax, dword ptr [ebp-04]
:0049D296 E8C96BF6FF call 00403E64
:0049D29B 8BF8
mov edi, eax
:0049D29D 85FF
test edi, edi <---如果沒填入註冊碼就跳走
:0049D29F 7E3E
jle 0049D2DF
:0049D2A1 BE01000000 mov esi,
00000001 <---這裡開始了,edi和esi是計數器
:0049D2A6 C745F418414C00 mov [ebp-0C], 004C4118
<---這個很重要,資料指標
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0049D2DD(C)
|
:0049D2AD 33D2
xor edx, edx
:0049D2AF 8B45F4
mov eax, dword ptr [ebp-0C]
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0049D2D5(C)
|
0030:004C4118 61 41 42 57 30 78 4C 39-44 73 64 66 72 76 53 34 aABW0xL9DsdfrvS4
D
0030:004C4128 48 63 5A 44 32 6E 4A 33-65 68 35 53 6B 56 77 67 HcZD2nJ3eh5SkVwg
H
0030:004C4138 4A 53 7A 33 66 43 4E 34-45 48 65 41 35 47 30 57 JSz3fCN4EHeA5G0W
W
0030:004C4148 72 73 57 36 6B 4C 33 37-52 50 31 51 38 70 30 35 rsW6kL37RP1Q8p05
s
0030:004C4158 59 78 76 32 75 4B 35 38-74 77 58 67 6B 6D 33 79 Yxv2uK58twXgkm3y
X
0030:004C4168 69 47 4E 38 55 61 33 39-63 57 4F 58 70 48 32 6B iGN8Ua39cWOXpH2k
3
0030:004C4178 49 6A 6D 50 34 73 38 32-54 65 4C 4B 39 64 68 4F IjmP4s82TeLK9dhO
m
0030:004C4188 4F 70 6C 4C 38 51 30 31-74 32 35 66 75 33 37 77 OplL8Q01t25fu37w
L
:0049D2B2 8B4DFC
mov ecx, dword ptr [ebp-04]
:0049D2B5 8A4C31FF mov
cl, byte ptr [ecx+esi-01]<---我的機器碼是DHWsX3mL,取第一位
:0049D2B9 3A08
cmp cl, byte ptr [eax]
d eax就可看到上面的資料,最後一列是我的機器碼(我加上去的),大家先看看機器碼與資料之間有什麼關係.這裡用機器碼的第一位與資料裡的第一位比較.
:0049D2BB 7513
jne 0049D2D0 <---不等就跳,先往下看
:0049D2BD 8BC6
mov eax, esi <---迴圈到第8次時就不跳了,esi=1
:0049D2BF 48
dec eax
:0049D2C0 8BC8
mov ecx, eax
:0049D2C2 C1E102
shl ecx, 02
:0049D2C5 33C0
xor eax, eax
:0049D2C7 8AC2
mov al, dl <---edx=8
:0049D2C9 D3E0
shl eax, cl
:0049D2CB 0145F8
add dword ptr [ebp-08], eax <---[ebp-08]=0,儲存結果
:0049D2CE EB07
jmp 0049D2D7 <---跳出小迴圈
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0049D2BB(C)
|
:0049D2D0 42
inc edx
:0049D2D1 40
inc eax
:0049D2D2 80FA10
cmp dl, 10 <---這是小迴圈,共10h(20)次
:0049D2D5 75DB
jne 0049D2B2
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0049D2CE(U)
|
:0049D2D7 46
inc esi <---計數器加1
:0049D2D8 8345F410 add
dword ptr [ebp-0C], 00000010 <---注意資料指標指向了004C4128
:0049D2DC 4F
dec edi <---共比較8次
:0049D2DD 75CE
jne 0049D2AD <---往上跳比較第二位
最後得到了個結果326A1F08並儲存在[ebp-08]處,大家一定要親自除錯下才可清楚看到得到這個結果的整個流程,程式的這個過程好象是在查表,這個結果是經過0049D2BD--0049D2CB這幾句得來的,那如果我們要寫序號產生器的話就一定要寫出這段的逆演算法來,雖然短短几句,但如果按照結果來算好象不可能算得出來,剛開始我是這樣想的,但當我看清楚它的關係後一切都變得簡單了.我來做個總結:
資料表 機器碼/對應位數
假註冊碼/計算結果
1. aABW0xL9DsdfrvS4 D (第8位)
6 (第0位) <---這幾個為0的結果是因為我輸入的假
2. HcZD2nJ3eh5SkVwg H (第0位)
7 (第0位) 註冊碼並沒有在資料表中找到
3. JSz3fCN4EHeA5G0W W (第F位)
6 (第0位)
4. rsW6kL37RP1Q8p05 s (第1位)
7 (第7位)
5. Yxv2uK58twXgkm3y X (第A位)
6 (第0位)
6. iGN8Ua39cWOXpH2k 3 (第6位)
7 (第0位)
7. IjmP4s82TeLK9dhO m (第2位)
6 (第0位)
8. OplL8Q01t25fu37w L (第3位)
7 (第E位)
看到它們之間的關係了嗎,其實資料表是分為8個部分的,每20位是一個部分,每個部分相對應著機器碼和註冊碼的一位,上面的程式碼只不過是將機器碼每一位處於對應的資料第幾位找出來,就得出了上面的結果.往上看Step
1比較的地方,它將用機器碼找到的結果與CFFF34BC相xor,得到FD952BB4,再與用假註冊碼找到的結果E0007000比較,那麼FD952BB4就應該是正確的註冊碼算出來的結果,而且正確的註冊碼一定是資料表中的字串,如果沒有序號產生器,用人工的方法可以找到正確的註冊碼:0SAWKWdw
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0049D291(C), :0049D29F(C)
|
:0049D2DF 33C0
xor eax, eax
:0049D2E1 5A
pop edx
:0049D2E2 59
pop ecx
:0049D2E3 59
pop ecx
:0049D2E4 648910
mov dword ptr fs:[eax], edx
:0049D2E7 68FCD24900 push 0049D2FC
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0049D2FA(U)
|
:0049D2EC 8D45FC
lea eax, dword ptr [ebp-04]
:0049D2EF E8D468F6FF call 00403BC8
:0049D2F4 C3
ret
==KeyGen====================================================================
附上序號產生器,將下面程式碼儲存為.rek檔案,用序號產生器編寫器編譯,序號產生器編寫器1.65測試通過.
.data
szHomePage db "http://www.365hz.net",0
szEmail db "mailto:ljyljx@163.com",0
szErrMess db "請輸入機器碼!",0
szErr db "機器碼不能大於8位!",0
DATA1 db "aABW0xL9DsdfrvS4"
DATA2 db "HcZD2nJ3eh5SkVwg"
DATA3 db "JSz3fCN4EHeA5G0W"
DATA4 db "rsW6kL37RP1Q8p05"
DATA5 db "Yxv2uK58twXgkm3y"
DATA6 db "iGN8Ua39cWOXpH2k"
DATA7 db "IjmP4s82TeLK9dhO"
DATA8 db "OplL8Q01t25fu37w",0
szBuffer db 9 dup(0)
.code
mov ebx,eax
invoke lstrlen,eax
cmp eax,8
jg ERR
mov esi,1
mov edi,8
sub esp,8
mov ebp,esp
lea eax,DATA1
mov [ebp],eax
mov [ebp+4],dword ptr 0
START:
xor edx,edx
mov eax,dword ptr [ebp]
PRO0:
mov ecx,ebx
mov cl,byte ptr [ecx+esi-1]
cmp cl,byte ptr [eax]
jne PRO1
mov eax,esi
dec eax
mov ecx,eax
shl ecx,2
xor eax,eax
mov al,dl
shl eax,cl
add dword ptr [ebp+4],eax
jmp PRO2
PRO1:
inc edx
inc eax
cmp dl,10h
jne PRO0
PRO2:
inc esi
add [ebp],dword ptr 10h
dec edi
jne START
;//這上面基本是照程式搬過來的
mov eax,0CFFF34BCh
xor eax,dword ptr [ebp+4]
mov [ebp+4],eax
lea esi,DATA1
mov [ebp],esi
lea edi,szBuffer
mov ebx,8
mov edx,0000000Fh ;//這裡開始逐位查表
mov ecx,0
PRO3:
mov esi,[ebp]
mov eax,[ebp+4]
and eax,edx
shr eax,cl
mov al,byte ptr [esi+eax]
mov [edi],byte ptr al
shl edx,4
add ecx,4
inc edi
add [ebp],dword ptr 10h
dec ebx
jne PRO3
lea eax,szBuffer
add esp,8
jmp Sam
ERR:
lea eax,szErr
Sam:
;==Code End================================================================
因時間倉促,如有錯漏請指正~~~~~~~~~~~
_/_/_/
_/ _/_/_/ _/_/_/
_/_/
_/_/ _/ _/ _/ _/
_/
_/ _/ _/ _/
_/ _/
_/_/_/ _/_/_/ _/ _/ _/
Sam.com
9:00 2002-3-22
相關文章
- Kalua Cocktails 1.1完全破解,內附彙編序號產生器(用序號產生器編寫器,並有它的使用教程)
(22千字)2002-02-27AI
- Pexplorer 1.70 完全破解(KeyFile&Name+Code),附序號產生器~~~~~~~~~
(17千字)2002-04-03
- NetTalk破解與序號產生器(高手勿進) (10千字)2001-09-20
- AlgoLab PtVector的破解及序號產生器的編寫 (17千字)2001-05-04Go
- 文書處理大師 3.0 破解~~~附序號產生器 (17千字)2002-03-24
- 010
Editorv1.3破解(序號產生器)2004-05-17
- winzip序號產生器 (1千字)2001-04-12
- UltraEdit-32 8.10.1.0的破解及序號產生器的生成 (15千字)2001-05-15
- 序號產生器制分析: (1千字)2001-11-19
- 破解accoustica
2.21(帶序號產生器)----讓高手見笑了:) (11千字)2002-03-31
- 網頁加密器(HTMLEncryptor1.1)破解及序號產生器 (1千字)2001-04-22網頁加密HTML
- hellfire2000破解過程及序號產生器的編寫(上) (4千字)2001-01-19
- 一個CrackMe的破解以及序號產生器的製作
(4千字)2001-08-16
- 3DAxy貪吃蛇 AxySnake 破解與序號產生器 (21千字)2015-11-153D
- winzip的通用序號產生器 (2千字)2001-12-10
- readbook的序號產生器源程式(c++builder5)2002-01-30C++UI
- xplorer2之破解和序號產生器2004-12-05
- 序號產生器合集2024-03-17
- SWF探索者XP 1.2(swfexplorer)破解+分析+序號產生器
(18千字)2002-04-14
- KEYGENNING4NEWBIES #7破解過程+序號產生器 (6千字)2001-08-21
- win10如何執行序號產生器_win10怎麼執行序號產生器2020-08-28Win10
- GIF Movie Gear v3.0.2 破解小談(附序號產生器原始碼)2015-11-15原始碼
- 美萍安全衛士V8.45序號產生器制作分析過程,及序號產生器! (11千字)2001-10-28
- Gif2Swf Ver 2.1 TC20序號產生器 && MASM32序號產生器 (4千字)2001-12-10ASM
- 破解QQ圖形留言器3.0(不是OICQ圖形留言系統)及序號產生器編寫!! (6千字)2001-07-15
- SWF2Video Pro V1.0.1.2 完全破解 演算法分析+序號產生器2015-11-15IDE演算法
- 貼彩虹狗破解工具的序號產生器 (727字)2001-07-01
- 《中華壓縮 6.01》註冊碼破解及序號產生器 (14千字)2001-08-19
- supercapture3.0的版序號產生器!
(4千字)2002-04-23APT
- IrfanView 序號產生器分析(初級版)
(13千字)2015-11-15View
- 製作mIRC6.02序號產生器(給別人寫的初學者序號產生器教材) (14千字)2015-11-15
- 音樂處理acoustica2.0註冊碼破解及序號產生器 (8千字)2002-04-06
- 續未完成破解,寫出它的序號產生器,3k。。。 (8千字)2001-07-09
- myeclipse序號產生器使用教程(破解MyEclipse 10可用)2018-01-17Eclipse
- EmEditor V3.29和它的序號產生器 (12千字)2015-11-15
- Advanced Dialer v2.5演算法分析(附序號產生器) (3千字)2002-04-17演算法
- Myeclipse 6.5 序號產生器2020-04-06Eclipse
- 檔案密使2.0暴力破解及序號產生器的編寫―好久沒寫過東西了。 (11千字)2001-07-10