史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 應用軟體使用技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2004-02-09, 02:42 AM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 應用 - WinImage v6.10 算法淺析

WinImage是一套可將文件或是資料夾製成 Image 文件的程序,然後完整複製至另一硬碟
的工具,它與 Ghost 不同的是,它可直接將鏡象檔案分割成數快存儲至a磁牒中,
另外程序提供製作與還原程序.它容許你從軟碟上做磁牒鏡像,從一個鏡像中釋放
文件,新增一個空的鏡像,通過在一空碟上放置鏡像複製磁牒,在一鏡像中注入文件
與目錄,轉換一個鏡像格式等等.WinImage 支持許多不同標準和非標準格式,包括
微軟的 DMF 格式.WinImage 可以用於制作備份 WINDOWS 95 磁牒和大部份微軟的軟體
產品.我的這個版本是V6.10.6100 版,當然如果你感興趣的話,可以到下面位址
去下載:http://www.winimage.com/winimage.htm
我們輸入以下信息:

Name:dengkeng[DFCG]
Registration Code:123456

由於是明碼比較所以找到關鍵點:
0044208A /$ 55 PUSH EBP
0044208B |. 8BEC MOV EBP,ESP
0044208D |. 81EC 00020000 SUB ESP,200
00442093 |. 56 PUSH ESI
00442094 |. 8B75 10 MOV ESI,DWORD PTR SS:[EBP+10]
00442097 |. 85F6 TEST ESI,ESI
00442099 |. 57 PUSH EDI
0044209A |. 74 03 JE SHORT WINIMAGE.0044209F
0044209C |. 8326 00 AND DWORD PTR DS:[ESI],0
0044209F |> FF75 0C PUSH DWORD PTR SS:[EBP+C]
004420A2 |. 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
004420A8 |. 50 PUSH EAX
004420A9 |. E8 E2FEFFFF CALL WINIMAGE.00441F90
004420AE |. FF75 08 PUSH DWORD PTR SS:[EBP+8]
004420B1 |. E8 06FFFFFF CALL WINIMAGE.00441FBC ;關鍵部分,進入
004420B6 |. 8BF8 MOV EDI,EAX ;eax就是最終結果
004420B8 |. 83C4 0C ADD ESP,0C
004420BB |. 81FF 26DDDCB8 CMP EDI,B8DCDD26
004420C1 |. 0F84 FE000000 JE WINIMAGE.004421C5
004420C7 |. 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
004420CD |. 50 PUSH EAX
004420CE |. 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
004420D4 |. 57 PUSH EDI ;EDI被壓入
004420D5 |. 50 PUSH EAX
004420D6 |. E8 63FFFFFF CALL WINIMAGE.0044203E ;把輸入的EDI進行變換
004420DB |. 59 POP ECX ; |
004420DC |. 59 POP ECX ; |
004420DD |. 50 PUSH EAX ; |s1
004420DE |. E8 97020000 CALL <JMP.&CRTDLL.strcmp> ; \strcmp
004420E3 |. 85C0 TEST EAX,EAX
004420E5 |. 59 POP ECX
004420E6 |. 59 POP ECX
004420E7 |. 0F84 A0000000 JE WINIMAGE.0044218D
004420ED |. 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
004420F3 |. 50 PUSH EAX
004420F4 |. 8D87 48190514 LEA EAX,DWORD PTR DS:[EDI+14051948] ;上次的EDI不變+14051948H,下面同理
004420FA |. 50 PUSH EAX
004420FB |. 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
00442101 |. 50 PUSH EAX
00442102 |. E8 37FFFFFF CALL WINIMAGE.0044203E ;根據計算的EDI計算第二個註冊碼,下面同理
00442107 |. 59 POP ECX ; |
00442108 |. 59 POP ECX ; |
00442109 |. 50 PUSH EAX ; |s1
0044210A |. E8 6B020000 CALL <JMP.&CRTDLL.strcmp> ; \strcmp
0044210F |. 85C0 TEST EAX,EAX
00442111 |. 59 POP ECX
00442112 |. 59 POP ECX
00442113 |. 74 78 JE SHORT WINIMAGE.0044218D
00442115 |. 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0044211B |. 50 PUSH EAX
0044211C |. 8D87 54190617 LEA EAX,DWORD PTR DS:[EDI+17061954]
00442122 |. 50 PUSH EAX
00442123 |. 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
00442129 |. 50 PUSH EAX
0044212A |. E8 0FFFFFFF CALL WINIMAGE.0044203E
0044212F |. 59 POP ECX ; |
00442130 |. 59 POP ECX ; |
00442131 |. 50 PUSH EAX ; |s1
00442132 |. E8 43020000 CALL <JMP.&CRTDLL.strcmp> ; \strcmp
00442137 |. 85C0 TEST EAX,EAX
00442139 |. 59 POP ECX
0044213A |. 59 POP ECX
0044213B |. 74 50 JE SHORT WINIMAGE.0044218D
0044213D |. 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
00442143 |. 50 PUSH EAX
00442144 |. 8D87 81190510 LEA EAX,DWORD PTR DS:[EDI+10051981]
0044214A |. 50 PUSH EAX
0044214B |. 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
00442151 |. 50 PUSH EAX
00442152 |. E8 E7FEFFFF CALL WINIMAGE.0044203E
00442157 |. 59 POP ECX ; |
00442158 |. 59 POP ECX ; |
00442159 |. 50 PUSH EAX ; |s1
0044215A |. E8 1B020000 CALL <JMP.&CRTDLL.strcmp> ; \strcmp
0044215F |. 85C0 TEST EAX,EAX
00442161 |. 59 POP ECX
00442162 |. 59 POP ECX
00442163 |. 74 55 JE SHORT WINIMAGE.004421BA
00442165 |. 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
0044216B |. 50 PUSH EAX
0044216C |. 8D87 95190104 LEA EAX,DWORD PTR DS:[EDI+4011995]
00442172 |. 50 PUSH EAX
00442173 |. 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
00442179 |. 50 PUSH EAX
0044217A |. E8 BFFEFFFF CALL WINIMAGE.0044203E
0044217F |. 59 POP ECX ; |
00442180 |. 59 POP ECX ; |
00442181 |. 50 PUSH EAX ; |s1
00442182 |. E8 F3010000 CALL <JMP.&CRTDLL.strcmp> ; \strcmp
00442187 |. 85C0 TEST EAX,EAX
00442189 |. 59 POP ECX
0044218A |. 59 POP ECX
0044218B |. 75 05 JNZ SHORT WINIMAGE.00442192
0044218D |> 33C0 XOR EAX,EAX
0044218F |. 40 INC EAX
00442190 |. EB 35 JMP SHORT WINIMAGE.004421C7
00442192 |> 8D85 00FFFFFF LEA EAX,DWORD PTR SS:[EBP-100]
00442198 |. 50 PUSH EAX
00442199 |. 81C7 97190602 ADD EDI,2061997
0044219F |. 8D85 00FEFFFF LEA EAX,DWORD PTR SS:[EBP-200]
004421A5 |. 57 PUSH EDI
004421A6 |. 50 PUSH EAX
004421A7 |. E8 92FEFFFF CALL WINIMAGE.0044203E
004421AC |. 59 POP ECX ; |
004421AD |. 59 POP ECX ; |
004421AE |. 50 PUSH EAX ; |s1
004421AF |. E8 C6010000 CALL <JMP.&CRTDLL.strcmp> ; \strcmp





00441FBC /$ 55 PUSH EBP
00441FBD |. 8BEC MOV EBP,ESP
00441FBF |. 81EC 08010000 SUB ESP,108
00441FC5 |. FF75 08 PUSH DWORD PTR SS:[EBP+8]
00441FC8 |. 8D85 F8FEFFFF LEA EAX,DWORD PTR SS:[EBP-108]
00441FCE |. 50 PUSH EAX
00441FCF |. C745 FC 4C6947>MOV DWORD PTR SS:[EBP-4],WINIMAGE.004769>
00441FD6 |. E8 B5FFFFFF CALL WINIMAGE.00441F90 ;小寫轉換成大寫
00441FDB |. 59 POP ECX
00441FDC |. 59 POP ECX
00441FDD |. 8D85 F8FEFFFF LEA EAX,DWORD PTR SS:[EBP-108]
00441FE3 |. 50 PUSH EAX ; /String
00441FE4 |. FF15 5C624400 CALL DWORD PTR DS:[<&KERNEL32.lstrlenA>] ; \lstrlenA
00441FEA |. 33C9 XOR ECX,ECX
00441FEC |. 85C0 TEST EAX,EAX
00441FEE |. 8945 F8 MOV DWORD PTR SS:[EBP-8],EAX ;字串串的個數送入全局變數儲存
00441FF1 |. 7E 46 JLE SHORT WINIMAGE.00442039
00441FF3 |. 53 PUSH EBX
00441FF4 |. 56 PUSH ESI
00441FF5 |. 8B75 F8 MOV ESI,DWORD PTR SS:[EBP-8]
00441FF8 |. 57 PUSH EDI
00441FF9 |. 8DBD F8FEFFFF LEA EDI,DWORD PTR SS:[EBP-108]
00441FFF |. 83EF 03 SUB EDI,3
00442002 |> 8BC1 /MOV EAX,ECX
00442004 |. 6A 0E |PUSH 0E
00442006 |. 99 |CDQ
00442007 |. 5B |POP EBX
00442008 |. F7FB |IDIV EBX
0044200A |. 85D2 |TEST EDX,EDX
0044200C |. 75 03 |JNZ SHORT WINIMAGE.00442011
0044200E |. 6A 27 |PUSH 27
00442010 |. 5E |POP ESI
00442011 |> 8D41 03 |LEA EAX,DWORD PTR DS:[ECX+3] ;實際就是eax=ecx+3,供以後除法用,以後寫註冊機要注意的地方
00442014 |. 0FB61407 |MOVZX EDX,BYTE PTR DS:[EDI+EAX] ;按順序取一個字串
00442018 |. 0FAFD6 |IMUL EDX,ESI
0044201B |. 0155 FC |ADD DWORD PTR SS:[EBP-4],EDX ;加到全局變數裡面,即最後的結果
0044201E |. 6A 0E |PUSH 0E
00442020 |. 99 |CDQ
00442021 |. 5B |POP EBX
00442022 |. F7FB |IDIV EBX ;用到前面的EAX
00442024 |. 85D2 |TEST EDX,EDX
00442026 |. 74 05 |JE SHORT WINIMAGE.0044202D
00442028 |. 8D3476 |LEA ESI,DWORD PTR DS:[ESI+ESI*2]
0044202B |. EB 03 |JMP SHORT WINIMAGE.00442030
0044202D |> 6BF6 07 |IMUL ESI,ESI,7
00442030 |> 41 |INC ECX
00442031 |. 3B4D F8 |CMP ECX,DWORD PTR SS:[EBP-8] ;剛才儲存的全局變數,即次數
00442034 |.^7C CC \JL SHORT WINIMAGE.00442002
00442036 |. 5F POP EDI
00442037 |. 5E POP ESI
00442038 |. 5B POP EBX
00442039 |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
0044203C |. C9 LEAVE
0044203D \. C3 RETN

下面是CALL WINIMAGE.0044203E的內容,即對EDI進行變換

0044203E /$ 55 PUSH EBP
0044203F |. 8BEC MOV EBP,ESP
00442041 |. 83EC 10 SUB ESP,10
00442044 |. 56 PUSH ESI
00442045 |. FF75 0C PUSH DWORD PTR SS:[EBP+C] ; /<%lX>
00442048 |. 8B75 08 MOV ESI,DWORD PTR SS:[EBP+8] ; |
0044204B |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10] ; |
0044204E |. 68 48B34400 PUSH WINIMAGE.0044B348 ; |Format = "%lX"
00442053 |. 50 PUSH EAX ; |s
00442054 |. FF15 D4644400 CALL DWORD PTR DS:[<&USER32.wsprintfA>] ; \wsprintfA
0044205A |. 8A45 F0 MOV AL,BYTE PTR SS:[EBP-10]
0044205D |. 83C4 0C ADD ESP,0C
00442060 |. 84C0 TEST AL,AL
00442062 |. 74 1D JE SHORT WINIMAGE.00442081
00442064 |. 8D4D F0 LEA ECX,DWORD PTR SS:[EBP-10]
00442067 |. 2BCE SUB ECX,ESI
00442069 |> 3C 38 /CMP AL,38
0044206B |. 75 04 |JNZ SHORT WINIMAGE.00442071
0044206D |. 04 0A |ADD AL,0A
0044206F |. EB 06 |JMP SHORT WINIMAGE.00442077
00442071 |> 3C 42 |CMP AL,42
00442073 |. 75 02 |JNZ SHORT WINIMAGE.00442077
00442075 |. 04 F6 |ADD AL,0F6
00442077 |> 8806 |MOV BYTE PTR DS:[ESI],AL ;將變換後的al儲存,
00442079 |. 46 |INC ESI
0044207A |. 8A0431 |MOV AL,BYTE PTR DS:[ECX+ESI]
0044207D |. 84C0 |TEST AL,AL
0044207F |.^75 E8 \JNZ SHORT WINIMAGE.00442069
00442081 |> 8026 00 AND BYTE PTR DS:[ESI],0
00442084 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00442087 |. 5E POP ESI
00442088 |. C9 LEAVE
00442089 \. C3 RETN


下面給出註冊機的關鍵部分摘用以前的模版,有的定義的變數沒有刪除,由於沒有使用,所以也不影響)
Generate proc hWnd
local TempName[120]:byte
local MiMa[50]:byte
pushad
lea edi,KeyName
invoke lstrlen, addr KeyName
mov nLen,eax
invoke strupr ;小寫轉換成大寫,MASM32里面沒有所以要自己寫
mov dNum,47694CH ;送入全局變數以後相加使用
xor edi,edi
xor ecx,ecx
@1: mov eax,ecx
push 0EH
cdq
pop ebx
idiv ebx
test edx,edx
jnz @2
push 27H
pop esi
@2: lea eax,KeyName
movzx edx,byte ptr [eax+ecx]
mov eax,ecx ;原來的順序
add eax,3 ;加上3供除法使用,這兩句較關鍵,後面的除法使用的
imul edx,esi
add dNum,edx
push 0EH
cdq
pop ebx
idiv ebx
test edx,edx
jz @3
lea esi,dword ptr [esi+esi*2]
jmp @4
@3: imul esi,esi,7
@4: inc ecx
cmp ecx,nLen
jnz @1
;處理dNum了!
invoke wsprintf,addr KKeyReg,addr formats,dNum ;以指定格式輸出
invoke lstrcpy,addr KeyName,addr KKeyReg
invoke strupr ;要進行轉換
;invoke GetCall,0 ;第1個註冊碼
;invoke GetCall,14051948H ;第2個註冊碼
;invoke GetCall,17061954H ;第3個註冊碼
;invoke GetCall,10051981H ;第4個註冊碼
;invoke GetCall,4011995H ;第5個註冊碼
invoke GetCall,2061997H ;第6個註冊碼
invoke SetDlgItemText,hWnd,REGKEY,addr KeyName
popad
ret
Generate endp

下面是GetCall部分:

GetCall proc Arg1
pushad
mov eax,dNum
add eax,Arg1
mov Num,eax
invoke wsprintf,addr KKeyReg,addr formats,Num
invoke lstrcpy,addr KeyName,addr KKeyReg
invoke strupr
invoke lstrlen,addr KeyName
mov ebx,eax
lea esi,KeyName
@9: mov al,[esi]
cmp al,38H
jnz @5
add al,0aH
jmp @8
@5: cmp al,42H
jnz @8
add al,0F6H
@8: mov [esi],al
inc esi
dec ebx
jnz @9
popad
ret
GetCall endp


這個軟體就是好,有6個註冊碼!^_^,我的是:
Name:dengkeng[DFCG]
Registration code:1868E99D 2F7102E5 327202F1 2871031E 1F6D0332 1D720334
你可以選上面的6個註冊碼的任意一個註冊,註冊成功了以後信息寫入:
HKEY_USERS\.DEFAULT\Software\WinImage\CodeRegistered
HKEY_USERS\.DEFAULT\Software\WinImage\NameRegistered




Made By dengkeng[DFCG][YCG]
E-mail:shellc0de@sohu.com
歡迎轉載,請保持文章的完整性

此帖於 2008-02-11 03:33 PM 被 atie 編輯.
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
RamDiskNT、RamDisk、BCDW使用技巧及大容量DOS啟動碟製作 psac 多媒體影音轉檔燒錄技術文件 0 2004-07-07 05:33 AM


所有時間均為台北時間。現在的時間是 12:35 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1