SMC技術在破解WINDOWS優化大師3.2A中的運用。 (8千字)
SMC技術在破解WINDOWS優化大師3.2A中的運用
[宣告]
我寫文章的目的是為了交流技術,希望大家在轉載時能保持文章的完整性。
[前言]
這是本人在看雪論壇是發表的第一篇破解教程,寫的不好,請多原諒!
其實,這是我在破解WINDOWS優化大師3.2A時用到的技術,當時我並不知
道已經用ANTI-ASPACK0.2可以脫掉它,我用FI也查不到它的殼,所以我
只有手工脫殼。這個軟體被脫殼後是很好破解的。所在我在這裡只談論如
何寫SMC指令,沒談到如何破解它。
PART A:分析第一層壓縮。
PART B:分析第二層壓縮。
PART C:寫SMC指令。
======================================< PART A >============================================
1.分析第一層壓縮以及關I性的跳轉。
2.確定要修改的指令。
下面的這段指令要注意一下。
0167:0058053B A3271A11A9 MOV
[A9111A27],EAX
0167:00580540 91
XCHG EAX,ECX
0167:00580541 B0E7
MOV AL,E7
0167:00580543 6742
INC EDX
0167:00580545 FF6641
JMP [ESI+41]
0167:00580548 102A
ADC [EDX],CH
0167:0058054A DE33
FIDIV WORD PTR [EBX]
0167:0058054C 27
DAA
0167:0058054D EA056970ED6F80 JMP
806F:ED706905
0167:00580554 EE
OUT DX,AL
0167:00580555 47
INC EDI
0167:00580556 E9E0FEFFFF JMP
0058043B ;這裡我們要處理一下,改成JMP 584005
;為何要改成584005呢?請參照<PART C>
0167:0058055B 338CA456D9D422 XOR
ECX,[ESP+22D4D956]
0167:00580562 2C3F
SUB AL,3F
0167:00580564 1F
POP DS
我們先來看一下在[58043B]裡到底是什麼指令。以下是[58042A--58043C]的指令片段:
0167:0058042A FF9504404400 CALL
[EBP+00444004]
0167:00580430 8B2C24
MOV EBP,[ESP]
0167:00580433 81ED3C394400 SUB
EBP,0044393C
0167:00580439 C3
RET
0167:0058043A 00E9
ADD CL,CH ;當程式執行到[580556]時,
;這裡將變成JMP 580007
0167:0058043C C7FBFFFF0000 MOV
EBX,0000FFFF
經過跟蹤,我發現[58043A]的指令會被前面的JMP 58043B截成JMP 580007,這裡可算是花指令技術了。
那[580007]裡又是什麼指令呢?跟進去瞧瞧。
0167:00580005 0000
ADD [EAX],AL
0167:00580007 E824040000 CALL
00580430 ;F8進入,到這裡程式就快要解完第一層壓縮了。
0167:0058000C EB00
JMP 0058000E
0167:0058000E BB30394400 MOV
EBX,00443930
0167:00580013 03DD
ADD EBX,EBP
0167:00580015 2B9DD03F4400 SUB
EBX,[EBP+00443FD0]
0167:0058001B 83BDFC49440000 CMP
DWORD PTR [EBP+004449FC],00
0167:00580022 899DFC494400 MOV
[EBP+004449FC],EBX
0167:00580028 0F8566030000 JNZ
00580394
進入CALL 580430後,我們將來到這裡。
0167:00580430 8B2C24
MOV EBP,[ESP]
0167:00580433 81ED3C394400 SUB
EBP,0044393C
0167:00580439 C3
RET ;這裡是第一層殼的出口。
======================================< PART B >============================================
1.分析第二層壓縮以及關I性的跳轉。
2.尋找主程式的入口地址。
0167:00580394 8B85AD394400 MOV
EAX,[EBP+004439AD]
0167:0058039A 50
PUSH EAX
0167:0058039B 0385FC494400 ADD
EAX,[EBP+004449FC]
0167:005803A1 59
POP ECX
0167:005803A2 0BC9
OR ECX,ECX
0167:005803A4 8985E63C4400 MOV
[EBP+00443CE6],EAX
0167:005803AA 61
POPAD
0167:005803AB 7508
JNZ 005803B5
0167:005803AD B801000000 MOV
EAX,00000001
0167:005803B2 C20C00
RET 000C
0167:005803B5 6800000000 PUSH
00000000 ;這裡是第二層的出口,
;程式執行到這裡的PUSH後會有一個值,
0167:005803BA C3
RET
;這個值正是主程式的入口,
;也是我們脫殼的關I。
0167:005803BB 8B85004A4400 MOV
EAX,[EBP+00444A00]
0167:005803C1 8D8D2A4A4400 LEA
ECX,[EBP+00444A2A]
0167:005803C7 51
PUSH ECX
好了,ASPACK已經完會被解壓了。我們可以在這裡手工脫殼,脫殼後生成的檔案可以被W32DASM反彙編。
======================================< PART C >============================================
我們已經徹底搞清楚了ASPACK的解壓過程,下面就要想辦法寫SMC指令了。我們可以用TOPO在程式前加上
150個90或00,以供我們寫指令時用。我的思路是這樣的:首先我們要在第一層壓縮結束指令生成後的某
個地址寫入JMP XXXXX,XXXXX是SMC指令相應部分所在的地址(注:因為有兩層壓縮,所以我的SMC指令要
分成好幾個部分。)然後要在第二層壓縮結束指令生成後的某個地址也寫入JMP XXXXX,最後根據情況用
RET或JMP回到主程式的入口地址。(其實中間還有些細節,我會在後面的指令中一一分析的。)
[580000]是我們用TOPO加入空間後的新地址,我們要在這裡寫入SMC指令。
0167:00584000 JMP 00580000
;[580000]是ASPACK的入口地址,先讓它
;執行,過會再改。
0167:00584005 MOV DWORD PTR [00580439],003BDDE9
;在第一層壓縮結尾
0167:0058400F MOV BYTE PTR [0058043D],00
;處寫入JMP 0058401B
0167:00584016 JMP 00580007
0167:0058401B MOV DWORD PTR [005803BA],003C88E9
;在第二層壓縮結尾
0167:00584025 MOV BYTE PTR [005803BE],00
;處寫入JMP 00584047
0167:0058402C MOV WORD PTR [005803BF],9090
0167:00584035 MOV DWORD PTR [00580439],C7E900C3
;這裡是還原第一層壓 結尾處的指令,因
0167:0058403F MOV BYTE PTR [0058043D],FB
;為;在第二層解壓縮時要用到這些程式碼,
0167:00584046 RET
;若不還原就會當機。
0167:00584047 MOV WORD PTR [004F84BB],01B0
;下面的指令就是向完成解壓後的主程式裡
0167:00584050 MOV BYTE PTR [004F84BD],EB
;寫破解程式碼,寫完後用RET退出第二層壓縮。
0167:00584057 MOV WORD PTR [004F84EF],01B0
;繼續執行主程式。
0167:00584060 MOV BYTE PTR [004F84F1],EB
0167:00584067 MOV BYTE PTR [004F85FF],EB
0167:0058406E MOV WORD PTR [0050435A],00B0
0167:00584077 MOV BYTE PTR [0050435C],EB
0167:0058407E RET
[後記]
我脫殼不太好,記得我以前脫SafeCln3.02時老是出錯,在WIN98第二版上脫的檔案在第一版上不能用,
我懷疑是IMPORT表定位有錯。哪位大哥脫殼比較好,教教小弟吧。我的QQ:17525661
祝各位在新的一年裡身體健康! 工作順利! 萬事如意!
gfh[CCG]
2001年1月19日
相關文章
- 破解心得之Windows優化大師篇2015-11-15Windows優化
- 可恨的Windows優化大師 (3千字)2000-08-01Windows優化
- Windows優化大師2.5的patch (1千字)2000-06-04Windows優化
- windows優化大師 v1.0.2.7 (10千字)2001-03-11Windows優化
- Windows優化大師 v2.9+ (11千字)2000-08-22Windows優化
- Photo Watermark破解(SMC) (3千字)2015-11-15
- 貼個程式的smc破解。 (1千字)2001-09-24
- Embird32 防破解技術的分析 (8千字)2001-04-29
- Add Remove Plus! 2000 v2.0破解手記 附:Windows
優化大師 3.3的破解方法 (4千字)2001-02-02REMWindows優化
- 可恨的Windows最佳化大師 (3千字)2000-08-01Windows
- 破解足彩大師5.0
(1千字)2015-11-15
- 視覺化技術在 Nebula Graph 中的應用2022-06-14視覺化
- 技術解讀:現代化工具鏈在大規模 C++ 專案中的運用 | 龍蜥技術2022-10-11C++
- 技術前沿:AI大模型在自動化測試中的應用例項2024-11-06AI大模型
- 程式設計師在週末學習的8個實用技術2014-09-09程式設計師
- Windows優化大師整理工具使用教程2016-12-21Windows優化
- 一段win commander
5.1的smc破解程式碼 (2千字)2015-11-15
- 分析技術在PMP中的應用2018-09-26
- 大資料技術在電商的應用2019-04-22大資料
- 在Angular中操作DOM:意料之外的結果及優化技術2018-12-23Angular優化
- 人力資源部門中的“技術運用”與“人性化管理”2020-12-15
- 音影片編解碼技術在直播平臺中是如何運用的?2019-12-31
- 在Linux中,如何進行虛擬化技術的應用?2024-06-01Linux
- 密碼大師4.0破解過程 (3千字)2001-05-06密碼
- winimage完全破解 (8千字)2001-07-04
- Java 程式的破解方法 (8千字)2002-08-15Java
- 我的破解心得(8) (2千字)2001-03-13
- 技術支援在大資料分析中的作用2022-03-09大資料
- 關於webzip4.0585的SMC應用----教我? (1千字)2001-03-04Web
- 裸眼3D大屏互動技術在展廳中的優勢2023-04-043D
- 做不來序號產生器,只好暴破Windows優化大師V4.3 (4千字)2001-11-02Windows優化
- 用W32DASM破解JPEG Optimizer 4.0 (8千字)2000-02-21ASM
- 大資料分析技術在新型智慧能源建設中的應用2018-11-21大資料
- 【效能優化】CBO,RBO在ORACLE中的應用2010-08-26優化Oracle
- WinRar 2.71 for windows的破解(暴力) (1千字)2000-10-11Windows
- 運籌優化(十三)--大規模優化方法2019-01-19優化
- 柵格化系統在設計中的運用2017-10-12
- 虛擬化技術在智慧終端的應用2014-07-31