Alligator v1.3: Build 304 廣告條的去除過程
1、下載地址:http://www.nearsoftware.com/alligator/download/
2、大小:505Kb
3、破解工具:SoftICE 4.05,TRW2000,Win32dasm 8.93,Hiew 6.40
4、軟體簡介:是一個相當不錯的下載工具,完全用API寫成,可執行檔案用PECompact v1.22 fast 壓縮過。
----------------------------------------------------------
破解過程:1、用TRW2000裝載程式,在下MakePE c:\a.exe,脫殼很簡單
2、用Win32dasm開啟a.exe,在StrRef中找到一些出錯訊息,比如
"Ad Location Creation Error",很顯然這個Ad就是廣告的意思,雙擊滑鼠跳到這裡
* Possible StringData Ref from Code Obj ->"Ad Location Creation Error"
|
:00401BD6 68E4584200 push
004258E4
:00401BDB 51
push ecx
:00401BDC 6A00
push 00000000
向上翻翻,會發現有個地方呼叫這段程式碼
* Referenced by a CALL at Address:
|:0040192E
|
在:0040192E裡程式碼如下:
* Referenced by a CALL at Address:
|:00401E43
|
:00401920 8B442408
mov eax, dword ptr [esp+08]
:00401924 56
push esi
:00401925 8BF1
mov esi, ecx
:00401927 8B4C2408
mov ecx, dword ptr [esp+08]
:0040192B 56
push esi
:0040192C 50
push eax
:0040192D 51
push ecx
:0040192E E84D020000 call
00401B80 <------就是這裡
:00401933 83C40C
add esp, 0000000C
:00401936 33D2
xor edx, edx
:00401938 83F8FF
cmp eax, FFFFFFFF
:0040193B 894614
mov dword ptr [esi+14], eax
:0040193E 0F95C2
setne dl
:00401941 4A
dec edx
:00401942 5E
pop esi
:00401943 8BC2
mov eax, edx
:00401945 C20800
ret 0008
這時候又發現:00401E43 也呼叫這段程式碼。乾脆一不做二不休,找到
:00401E43 E8D8FAFFFF call 00401920 <1> 把這個NOP掉,同樣可以找到
:0040BF06 E8755EFFFF call 00401D80 <2>
:0040CAAB E8E04BFFFF call 00401690 <3>
再把下面兩個也NOP掉。現在執行程式看看,好傢伙廣告條沒有了,但留下了一堵牆:(,還有在原來廣告條的地方點一下滑鼠會開啟瀏覽器進入她的主頁,還有右邊的那個討厭的按鈕(Remove
Banner),都是一個德行。估計都是呼叫 ShellExecute或WinExec,本來應該下斷點的。但我在這裡偷了個懶,因為在反彙編的文字中可以發現與"http://www.nearsoftware.com/alligator"有關的字串所以直接按F3查詢就可以來到這裡:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C8E2(C)
|
:0040D319 6A01
push 00000001
:0040D31B 53
push ebx
:0040D31C 53
push ebx
* Possible StringData Ref from Code Obj ->"http://www.nearsoftware.com/alligator/registra"
->"tion/"
|
:0040D31D 6864584200 push
00425864
發現是從這裡跳過來的|:0040C8E2(C),看看
:0040C8D6 81FFEA030000 cmp edi, 000003EA
<---右邊按鈕的ID
:0040C8DC 0F8F510A0000 jg 0040D333
:0040C8E2 0F84310A0000 je 0040D319
<----NOP <4>
這段程式碼的意思就是如果按下那個Remove Banner的按鈕就跳到開啟瀏覽器處。所以我把:0040C8E2處又NOP掉了,這個按鈕的作用也就被Disabled了。
再按F3查詢,來到這裡:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040189E(C)
|
:004018C0 6A09
push 00000009
:004018C2 6A00
push 00000000
:004018C4 6A00
push 00000000
* Possible StringData Ref from Code Obj ->"http://www.nearsoftware.com/"
<------來到這裡
|
:004018C6 6898584200 push
00425898
* Possible StringData Ref from Code Obj ->"open"
|
:004018CB 685C584200 push
0042585C
:004018D0 6A00
push 00000000
* Reference To: SHELL32.ShellExecuteA, Ord:0000h
|
:004018D2 FF151C324200 Call dword
ptr [0042321C]
------------------------------------------------------------------------------------
:0040189C 85C0
test eax, eax
:0040189E 7520
jne 004018C0 <------NOP <5>
:004018A0 8B4614
mov eax, dword ptr [esi+14]
:004018A3 85C0
test eax, eax
:004018A5 7431
je 004018D8
向上翻找到是從|:0040189E(C)跳過來的,把他也NOP掉。
3、整理一下,
:00401E43 E8D8FAFFFF call 00401920 <1> 把這幾個call NOP掉
:0040BF06 E8755EFFFF call 00401D80 <2>
:0040CAAB E8E04BFFFF call 00401690 <3>
:0040C8E2 0F84310A0000 je 0040D319
<----NOP <4>
:0040189E 7520
jne 004018C0 <----NOP <5>
再來執行一下程式,廣告條沒有了,按鈕也Disabled了,現在唯一不爽的就是一堵牆在那裡:(
後記: 這個程式的廣告函式是C:\Windows\tsad.dll,小弟不知道能不能跳過它,還請高手賜教。這個程式完全採用API來實現,果然精練小巧,一個CreateDialogParam就搞定了實在佩服Peter
sokolow。那堵牆我也沒辦法搞定:(。小弟最近在研究32位的asm程式設計,有興趣的可以和小弟一起研究,我的Oicq:1618778 E-mail:coolbob@21cn.com
------------------------------------------------------------written by CoolBob[CCG]
2001.4.15