申請加入BCG破文二--一位元組暴力破解S-Demo2.0 (7千字)
一位元組暴力破解Screen-Demo2.0
作者:maomao
軟體:Screen-Demo2.0
Screen-Demo2.0是一個極棒的螢幕抓錄軟體,一般被Cracker用於錄製動畫解密教程。
下載:http://www.qwerks.com/download/2834/SD20Setup.exe(950KMB)
工具:W32Dasm8.93 UltraEdit8.0
日期:2001-10-27
昨天寫了一篇ScreenRecord1.2的註冊破文和序號產生器編寫過程,網友的鼓勵給我了很大的信心。於是又按捺不住,下載了一個壓縮率更高的螢幕製作軟體Screen-Demo2.0,安裝後有三個主要檔案:S-Recorder(錄製主檔案)、S-Player(播放器)、S-Capture(拷屏),安裝後試用,發現錄製1分鐘左右的內容做成AVI,才400多K!而如果用ScreenRecord1.2製作,需要30M左右!強烈的責任感驅使我破解它,現把破解過程記錄如下,當作申請加入BCG組織的第二篇破文,不足之處,望各位高手多多指點……
:)
首先,用 Language 2000 偵測,沒有殼,省了不少事。
執行S-Recorder,出來一個註冊對話方塊,完全在情理之中,隨便輸入一些內容,按“OK”後提示“Register Failure!”,沒關係,一名cracker最基本的素質是需要有耐心。
進入到程式目錄,開啟S-Demo.ini檔案,你可以看到如下內容:
[Register]
Install=HKCSRC0RG0QGVQZVKZK
Name=maomao
Password=1234567890
[Option]
DoubleSize=1
Color=3
ImageQuality=64
AlwayNoImage=0
CompressNow=1
CaptureSpeed=2
KeyFrame=20
SlowRecord=0
SlowMinute=1
Audio=1
其中Name和Password就是你剛才輸入的內容。看來S-Recorder是讀取S-Demo.ini中的註冊資訊,再進行計算比較,如果用Name計算出來的Password與其中的不一樣,就要彈出註冊視窗了!OK,思路確定:尋找程式中讀取INI檔案的函式,再分析讀完後的比較判斷語句,小作修改後,嘿嘿,讓它認為這個Password是對的....(竊笑三聲)
使用靜態反編譯工具W32Dasm8.93進行反編譯,一會兒程式程式碼就在W32Dasm的視窗中了。選擇選單“函式”->“輸入”或點選W32Dasm工具欄上的“IMP”按鈕,彈出一個輸入函式對話方塊,其中列出了程式輸入的所有外部函式。排在第一、二位的RegOpenKeyA和RegQueryValueExA正是我們要找的函式!它們負責開啟登錄檔或INI檔案的主鍵和讀取鍵值。雙擊RegOpenKeyA,我們會來到這一段程式碼:
* Referenced by a CALL at Address:
|:004035C2
<=====從這裡的地址跳來
|
:00407C30 83EC0C
sub esp, 0000000C
:00407C33 56
push esi
* Reference To: ADVAPI32.RegOpenKeyA, Ord:0171h
|
:00407C34 8B3500904100 mov esi, dword
ptr [00419000]<=====游標條停在這一行
:00407C3A 8D442404 lea
eax, dword ptr [esp+04]
:00407C3E 57
push edi
:00407C3F 50
push eax
原來是004035C2讀取登錄檔和INI檔案。趕快按下SHIFT+F12,輸入004035C2,回車後來到這裡:
:004035BC A4
movsb
:004035BD B9C0E74200 mov ecx,
0042E7C0
:004035C2 E869460000 call 00407C30
<=====呼叫讀登錄檔和INI函式(游標停在這裡)
:004035C7 B9C0E74200 mov ecx,
0042E7C0
:004035CC E89F480000 call 00407E70
<=====計算並比較註冊碼
:004035D1 85C0
test eax, eax
:004035D3 0F8544010000 jne 0040371D
<=====跳走就完了
:004035D9 50
push eax
:004035DA 8D4C2438 lea
ecx, dword ptr [esp+38]
:004035DE E84DDEFFFF call 00401430
:004035E3 6894E84200 push 0042E894
:004035E8 8D8C2498000000 lea ecx, dword ptr
[esp+00000098]
:004035EF C68424D801000004 mov byte ptr [esp+000001D8],
04
將游標停在:004035CC E89F480000 call 00407E70 這一行上,接向右的游標鍵“->”,程式會來到407E70開始的程式段:
* Referenced by a CALL at Address:
|:004035CC
<=====說明這段程式的呼叫者
|
:00407E70 81ECD0000000 sub esp, 000000D0
<=====游標停在這一行上
:00407E76 53
push ebx
:00407E77 55
push ebp
:00407E78 56
push esi
:00407E79 8BE9
mov ebp, ecx
:00407E7B 57
push edi
:00407E7C 896C2410 mov
dword ptr [esp+10], ebp
...
(這裡是讀使用者的資訊,程式比較長,故省略)
一直來到這裡:
* Possible StringData Ref from Data Obj ->"Clayman"
|
:00407F9D BED0D14100 mov esi,
0041D1D0
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00407FC4(C)
|
:00407FA2 8A13
mov dl, byte ptr [ebx] <=====讀取使用者註冊碼第一位元組(已變換)
:00407FA4 8A0E
mov cl, byte ptr [esi] <=====讀取正確註冊碼第一位元組(已變換)
:00407FA6 8AC2
mov al, dl
:00407FA8 3AD1
cmp dl, cl <=====比較
:00407FAA 751E
jne 00407FCA <=====不相同就跳走
:00407FAC 84C0
test al, al
:00407FAE 7416
je 00407FC6
:00407FB0 8A4B01
mov cl, byte ptr [ebx+01]<=====取使用者註冊碼下一位元組(已變換)
:00407FB3 8A5601
mov dl, byte ptr [esi+01]<=====取正確註冊碼下一位元組(已變換)
:00407FB6 8AC1
mov al, cl
:00407FB8 3ACA
cmp cl, dl <=====比較
:00407FBA 750E
jne 00407FCA <=====不相同就跳走
:00407FBC 83C302
add ebx, 00000002
:00407FBF 83C602
add esi, 00000002
:00407FC2 84C0
test al, al
:00407FC4 75DC
jne 00407FA2 <=====沒有比較完則繼續比較
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00407FAE(C)
|
:00407FC6 33C0
xor eax, eax
:00407FC8 EB05
jmp 00407FCF
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00407FAA(C), :00407FBA(C)
|
:00407FCA 1BC0
sbb eax, eax
:00407FCC 83D8FF
sbb eax, FFFFFFFF
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00407FC8(U)
|
:00407FCF 85C0
test eax, eax
:00407FD1 741B
je 00407FEE
<=====註冊比較正確時跳轉
:00407FD3 8B542410 mov
edx, dword ptr [esp+10] <=====註冊碼錯誤的程式段
:00407FD7 5F
pop edi
:00407FD8 5E
pop esi
:00407FD9 5D
pop ebp
:00407FDA C782D000000001000000 mov dword ptr [ebx+000000D0], 00000001
:00407FE4 33C0
xor eax, eax
<=====執行到這裡就完了
:00407FE6 5B
pop ebx
:00407FE7 81C4D0000000 add esp, 000000D0
:00407FED C3
ret
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00407F77(C), :00407FD1(C)
|
:00407FEE 8B442410 mov
eax, dword ptr [esp+10]<=====如果註冊碼正確就會跳到這裡
:00407FF2 5F
pop edi
:00407FF3 5E
pop esi
:00407FF4 5D
pop ebp
:00407FF5 C780D000000000000000 mov dword ptr [ebx+000000D0], 00000000<=====送標誌
:00407FFF B801000000 mov eax,
00000001 <=====哈哈,有沒有看到這個標誌?!
:00408004 5B
pop ebx
:00408005 81C4D0000000 add esp, 000000D0
:0040800B C3
ret
這樣,只要將00407FD1處的跳轉指令74 1B(je 00407FEE)改為EB 1B(jmp 00407FEE)即可。用UltraEdit開啟S-Recorder.exe,修改偏移量為0x7FD1處的程式碼74
1B為EB 1B,哈哈,只修改了一個位元組!
說明:由於本人功力不深,又懶得分析其機器程式碼的生成和使用者輸入註冊碼的多次變換,所以也寫不出一個通用的序號產生器,有興趣的可以分析一下上面的輪換機制。本人分析不當之處,請多多指教。
收工~~~~~~
相關文章
- 申請加入BCG的破解文章之二 (3千字)2001-05-06
- 申請加入BCG的破解文章之一 (6千字)2001-05-06
- 申請加入BCG破文第一篇:滑鼠增強工具MouseStar 2.1破解過程。請老大多多指教。 (7千字)2001-07-27
- 申請加入BCG第三篇破文:鬧鐘&笑話1.0破解過程 (2千字)2001-08-01
- 申請加入BCG之第一篇!------LC3破解! (2千字)2001-10-06
- 申請加入BCG破文3--加密精靈EncryptGenie22註冊碼破解及序號產生器制作 (5千字)2001-10-28加密
- 申請加入BCG的第四篇破文--Flash5匯入保護SWF動畫的補丁製作 (3千字)2001-10-29H5動畫
- 申請加入CNCG破文-小李登錄檔大師D註冊碼法 (2千字)2001-11-07
- 申請加入BCG第三篇:破解網頁特效小精靈2.0 (5千字)2001-10-07網頁特效
- 申請加入BCG第二篇:破解網頁特效小精靈 V2.0時間限制。 (2千字)2001-10-06網頁特效
- 申請加入BCG之第二篇!博奧彩票白金版破解---破解初學者之嘔血篇 (5千字)2001-10-06
- 位元組跳動近日申請多個“位元組遊戲”商標2020-04-16遊戲
- 如何完美破解PE EXPLORER 1.3(加入BCG的第二篇) (9千字)2001-06-29
- 菜弟破文之二(速存QuickSave) (3千字)2001-09-21UI
- 暴力破解Security setup II (7千字)2001-10-24
- pecompact1.50破解過程 (加入BCG的第一篇) (8千字)2001-06-28
- 《32BITFTP的破解實錄》==>讓程式成為我們的"序號產生器"-->申請BCG第二篇 (5千字)2001-06-29FTP
- 位元組跳動申請“抖音雲遊戲”商標:手機玩3A大作2021-08-23遊戲
- 來一篇:暴力破解Crystal Button 1.31A (7千字)2015-11-15
- MySQL分組後,取出每組最新申請的一條記錄2019-02-28MySql
- 貼一篇破解過程,本想作為加入BCG的第三篇.但: (2千字)2001-08-09
- 微信公共號申請圖文詳解2017-02-21
- 破解一個CCG的軟體,改半位元組! (6千字)2002-01-27
- 半位元組破解Vopt Millennium edition (9千字)2001-05-13
- The Works 全攻略-破文第二篇(初學者適用) (3千字)2015-11-15
- 位元大陸發內部信—這一輪IPO申請將於近日失效2019-04-24
- 四人小組專案申請2016-10-02
- 暴力破解Paragon CD Emulator時間及功能限制 (7千字)2001-03-24Go
- 破文三,高手莫入,非常簡單 (2千字)2001-08-01
- Guitar Pro v3.0 的破文 (11千字)2001-09-08GUI
- 我的第3篇破文 cr--CJSFormater 高手請指導、指導!! (4千字)2001-11-24JSORM
- 加入FCG的見面破文,初學者可以看 小球 peterchen 偽裝者等等不許看!! (4千字)2001-06-22
- 位元組一面-分享2021-04-29
- 暴力破解3 (6千字)2001-02-18
- 請問如何加入到開發小組中???2003-05-06
- 一文了解位元組跳動如何解決SLA治理難題2022-06-08
- 我的第2篇破文 高手莫入!! (3千字)2001-11-11
- 成功申請一個Google Storage!2010-07-26Go