Alligator v1.3: Build 304 廣告條的去除過程 (5千字)

看雪資料發表於2001-04-15

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

相關文章