浩暉清潔工V1.00演算法分析
浩暉清潔工V1.00是一款清除Windows系統執行時產生的臨時檔案,以增加
硬碟可用空間的免費軟體.軟體不需要註冊費,是免費的哦!如果你對這個軟體
感興趣的話,可以到網上搜尋一下下!
雖說是免費的,但是啟動的時候彈出的註冊對話方塊還是很煩人的!
是Borland公司的Borland Delphi,我們找到關鍵的地方:
004A3BCE . 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004A3BD1 . 50 PUSH EAX
004A3BD2 . 8D55 F0 LEA EDX,DWORD PTR SS:[EBP-10]
004A3BD5 . 8B83 F4020000 MOV EAX,DWORD PTR DS:[EBX+2F4]
004A3BDB . E8 E84AFAFF CALL CLEANER.004486C8
004A3BE0 . 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10] ;機器碼地址
004A3BE3 . 8D55 F4 LEA EDX,DWORD PTR SS:[EBP-C]
004A3BE6 . E8 09F9FFFF CALL CLEANER.004A34F4 ;關鍵進入
004A3BEB . 8B55 F4 MOV EDX,DWORD PTR SS:[EBP-C] ;d edx真的
004A3BEE . 58 POP EAX ;d eax假的
004A3BEF . E8 0C0CF6FF CALL CLEANER.00404800 ;經典句型哦!
004A3BF4 . 0F85 9D000000 JNZ CLEANER.004A3C97
好了我們可以做記憶體序號產生器了,我們接著看,上面004A3BE6的call是關鍵call,
所以我們跟了進來.
004A34F4 /$ 55 PUSH EBP
004A34F5 |. 8BEC MOV EBP,ESP
004A34F7 |. 83C4 F0 ADD ESP,-10
004A34FA |. 53 PUSH EBX
004A34FB |. 56 PUSH ESI
004A34FC |. 57 PUSH EDI
004A34FD |. 33C9 XOR ECX,ECX
004A34FF |. 894D F4 MOV DWORD PTR SS:[EBP-C],ECX
004A3502 |. 894D F0 MOV DWORD PTR SS:[EBP-10],ECX
004A3505 |. 8955 F8 MOV DWORD PTR SS:[EBP-8],EDX
004A3508 |. 8945 FC MOV DWORD PTR SS:[EBP-4],EAX
004A350B |. 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004A350E |. E8 9113F6FF CALL CLEANER.004048A4
004A3513 |. 33C0 XOR EAX,EAX
004A3515 |. 55 PUSH EBP
004A3516 |. 68 B1354A00 PUSH CLEANER.004A35B1
004A351B |. 64:FF30 PUSH DWORD PTR FS:[EAX]
004A351E |. 64:8920 MOV DWORD PTR FS:[EAX],ESP
004A3521 |. 8D45 F4 LEA EAX,DWORD PTR SS:[EBP-C]
004A3524 |. BA C8354A00 MOV EDX,CLEANER.004A35C8 ; ASCII "0123456789ABCDEFGHIJ0123456789KLMNOPQRST0123456789UVWXYZabcd0123456789efghijklmn0123456789opqrstuvwx0123456789yz"
004A3529 |. E8 6E0FF6FF CALL CLEANER.0040449C
004A352E |. 8D45 F0 LEA EAX,DWORD PTR SS:[EBP-10]
004A3531 |. 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4]
004A3534 |. BA 44364A00 MOV EDX,CLEANER.004A3644 ; ASCII "HowWell Cleaner"
004A3539 |. E8 CA11F6FF CALL CLEANER.00404708 ;連線兩個字串
004A353E |. 8B45 F0 MOV EAX,DWORD PTR SS:[EBP-10]
004A3541 |. E8 7611F6FF CALL CLEANER.004046BC ;取得字串的長度
004A3546 |. 8BF0 MOV ESI,EAX ;放入esi中儲存
004A3548 |. 85F6 TEST ESI,ESI
004A354A |. 7E 37 JLE SHORT CLEANER.004A3583
004A354C |. BB 01000000 MOV EBX,1
004A3551 |> 8B45 F0 /MOV EAX,DWORD PTR SS:[EBP-10]
004A3554 |. 0FB67C18 FF |MOVZX EDI,BYTE PTR DS:[EAX+EBX-1] ;取一個字元
004A3559 |. 8D049B |LEA EAX,DWORD PTR DS:[EBX+EBX*4]
004A355C |. 03F8 |ADD EDI,EAX
004A355E |. 8D45 F0 |LEA EAX,DWORD PTR SS:[EBP-10]
004A3561 |. E8 A613F6FF |CALL CLEANER.0040490C
004A3566 |. 8D4418 FF |LEA EAX,DWORD PTR DS:[EAX+EBX-1]
004A356A |. 50 |PUSH EAX ;儲存地址
004A356B |. 8BC7 |MOV EAX,EDI
004A356D |. B9 71000000 |MOV ECX,71
004A3572 |. 99 |CDQ
004A3573 |. F7F9 |IDIV ECX
004A3575 |. 8B45 F4 |MOV EAX,DWORD PTR SS:[EBP-C] ;密碼錶地址
004A3578 |. 8A4410 FF |MOV AL,BYTE PTR DS:[EAX+EDX-1] ;取出一個字元
004A357C |. 5A |POP EDX ;還原地址
004A357D |. 8802 |MOV BYTE PTR DS:[EDX],AL ;儲存
004A357F |. 43 |INC EBX ;ebx+1,取下個字元
004A3580 |. 4E |DEC ESI 迴圈次數
004A3581 |.^75 CE JNZ SHORT CLEANER.004A3551
004A3583 |> 8B45 F8 MOV EAX,DWORD PTR SS:[EBP-8]
004A3586 |. 8B55 F0 MOV EDX,DWORD PTR SS:[EBP-10]
我相信這個演算法還不是很難對吧!透過幾步計算得到密碼錶的索引,進行取值.
所以用Win32Asm將是一個好辦法,比較容易寫出序號產生器:
; ?
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model
option casemap :none ; case sensitive
include masm32includewindows.inc
include masm32includemasm32.inc
include masm32includegdi32.inc
include masm32includeuser32.inc
include masm32includekernel32.inc
include masm32includeComctl32.inc
include masm32includecomdlg32.inc
include masm32includeshell32.inc
include masm32includeoleaut32.inc
includelib masm32libmasm32.lib
includelib masm32libgdi32.lib
includelib masm32libuser32.lib
includelib masm32libkernel32.lib
includelib masm32libComctl32.lib
includelib masm32libcomdlg32.lib
includelib masm32libshell32.lib
includelib masm32liboleaut32.lib
ICO_MAIN equ 1000h;圖示
DLG_MAIN equ 1
IDGENERATE equ 1002
REGNAME equ 1003
REGKEY equ 1004
IDC_EDITNAME equ 3000
; ?
.data?
hInstance dd ?
nLen dd ?
KeyName db 50 dup(?)
KeyReg db 50 dup(?)
KRealKey db 120 dup(?)
.data
Standard db 'HowWell Cleaner',0
Mima db '0123456789ABCDEFGHIJ0123456789KLMNOPQRST0123456789UVWXYZabcd0123456789efghijklmn0123456789opqrstuvwx0123456789yz',0
.code
Generate proc hWnd
local KKeyName[120]:byte
local KKeyGen[120]:byte
pushad
invoke lstrlen, addr KeyName
cmp eax,0
jle @2
invoke SetDlgItemText,hWnd,REGKEY,addr KeyName
invoke lstrcpy,addr KKeyName,addr KeyName ;傳遞給區域性變數,如果用全域性變數會修改KeyName的值
invoke lstrcpy,addr KKeyGen,addr Standard ;Copy HowWell Cleaner
invoke lstrcat,addr KKeyGen,addr KKeyName;連線機器碼,形成'HowWell Cleaner+註冊碼'
;invoke MessageBox, NULL,addr KKeyGen, addr Standard, MB_OK
invoke lstrlen, addr KKeyGen
mov esi,eax
mov ebx,1
@3: lea eax,KKeyGen
movsx edi, byte ptr [eax+ebx-1]
lea eax,[ebx+ebx*4]
add edi,eax
mov eax,edi
mov ecx,71H
cdq
idiv ecx
lea eax,Mima
mov al,[eax+edx-1]
mov [KRealKey+ebx-1],al
inc ebx
dec esi
jnz @3
@2:
popad
ret
Generate endp
ProcDlgMain proc hWnd,wMsg,wParam,lParam
;local KeyName[50]:byte
;local KeyReg[50]:byte
mov eax,wMsg
.if eax==WM_CLOSE
invoke EndDialog,hWnd,NULL
.elseif eax==WM_INITDIALOG
invoke LoadIcon,hInstance,ICO_MAIN
invoke SendMessage,hWnd,WM_SETICON,ICON_BIG,eax
invoke GetDlgItem,hWnd,IDC_EDITNAME
invoke SetFocus,hWnd
.elseif eax==WM_COMMAND
mov eax,wParam
.if ax==IDOK
invoke EndDialog,hWnd,NULL
.endif
.if ax==IDGENERATE
invoke GetDlgItemText,hWnd,REGNAME,addr KeyName,sizeof KeyName
invoke Generate,hWnd
invoke SetDlgItemText,hWnd,REGKEY,addr KRealKey
.endif
.else
mov eax,FALSE
ret
.endif
mov eax,TRUE
ret
ProcDlgMain endp
start:
; ?
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset ProcDlgMain,NULL
invoke ExitProcess,NULL
; ?
end start
相關文章
- WasteShark:海洋世界的清潔工2018-03-01AST
- 簡單演算法――新俄羅斯方塊 V1.002015-11-15演算法
- 高空清潔工可以操作機器人洗樓了2019-07-08機器人
- 也許我就是那個“微軟的清潔工” (轉)2007-12-12微軟
- 周浩暉 - 攝魂谷:雅庫瑪的詛咒(2014年11月22日)2014-12-27
- 清潔能源的更清潔儲存2013-01-04
- 工業儲能:推動中國工業領域企業場內清潔能源轉型的關鍵2024-07-10
- 【工業網際網路】郭朝暉:工業網際網路平臺背景下的工業大資料與智慧製造2018-04-18大資料
- apple產品清潔|如何清潔iPhone、AirPods和MacBook?2021-07-03APPiPhoneAIMac
- 搜尋引擎工廠專業版演算法分析+演算法序號產生器2015-11-15演算法
- 群暉+Docker Private registry2017-08-19Docker
- 智慧工廠影片智慧分析系統解決方案 燧機AI演算法2024-06-29AI演算法
- 如何清潔Mac的螢幕2022-01-14Mac
- 演算法定製影片分析閘道器拍照檢測工業園區/廠區/工廠智慧安監方案2024-10-28演算法
- 羅永浩萬字求職信2018-05-26求職
- 清潔程式碼:職責 — Janos Pasztor2019-01-09
- IEA:執行清潔能源轉型2023-09-27
- 小浩演算法|一文讓你學會如何用程式碼判斷"24"點2020-02-26演算法
- 群暉docker安裝sql server2024-07-16DockerSQLServer
- 群暉NAS安裝小雅Docker2024-05-29Docker
- 演算法分析2024-10-09演算法
- 華為員工構成分析 外籍員工佔近20%2011-06-15
- 藍牛公網ip檢測助手V1.00免費版2024-03-08
- 藍牛定時播放音樂系統V1.00免費版2024-03-08
- 瞭解工業分析市場2020-09-18
- AI 演算法崗工資一覽2019-03-04AI演算法
- 城市必需道路清潔工具-灑水車2022-03-04
- 讓你的Rails專案保持清潔2012-06-25AI
- 清潔取暖監管服務應用2024-06-13
- 群暉NAS不明佔用如何排查2023-01-03
- 群暉DS218+部署mysql2022-12-12MySql
- 群暉DS218+部署kafka2022-12-13Kafka
- 用NuMega SmartCheck 破解WINDOWS整容專家V1.00 (1千字)2001-09-16Windows
- 工業交換機軟體故障分析2020-07-20
- IEA:人人享有清潔烹飪的願景2024-04-18
- IEA報告:先進清潔技術製造業2024-07-11
- 曹春暉:談一談 Go 和 Syscall2019-04-22Go
- 群暉DS218+部署GitLab2020-12-21Gitlab