根據論壇精華我把網路螞蟻1.22的廣告條去除了,簡單過程如下,高手勿進! (4千字)

看雪資料發表於2001-06-05

網路螞蟻廣告窗去除 NetAnts 1.22
下面程式呼叫CreateWindowExA函式建立網路螞蟻所用到的視窗
* Reference To: USER32.SetMenu, Ord:0235h
                                  |
:0041A807 FF15ECC34300            Call dword ptr [0043C3EC]
:0041A80D 57                      push edi
:0041A80E E863DA0000              call 00428276
:0041A813 3BC3                    cmp eax, ebx
:0041A815 59                      pop ecx
:0041A816 A36C854400              mov dword ptr [0044856C], eax
:0041A81B 0F84A51E0000            je 0041C6C6
:0041A821 50                      push eax
:0041A822 E8C9DB0000              call 004283F0  //建立 ToolBar
:0041A827 3BC3                    cmp eax, ebx
:0041A829 59                      pop ecx
:0041A82A A3B8854400              mov dword ptr [004485B8], eax
:0041A82F 0F84911E0000            je 0041C6C6
:0041A835 FF356C854400            push dword ptr [0044856C]
:0041A83B E810170100              call 0042BF50
:0041A840 3BC3                    cmp eax, ebx
:0041A842 59                      pop ecx
:0041A843 A398854400              mov dword ptr [00448598], eax
:0041A848 0F84781E0000            je 0041C6C6
:0041A84E 57                      push edi
:0041A84F E8007AFEFF              call 00402254  //建立 廣告條
:0041A854 3BC3                    cmp eax, ebx
:0041A856 59                      pop ecx
:0041A857 A3B0854400              mov dword ptr [004485B0], eax //儲存視窗控制程式碼
:0041A85C 0F84641E0000            je 0041C6C6
:0041A862 57                      push edi
:0041A863 E860CA0000              call 004272C8
:0041A868 3BC3                    cmp eax, ebx
:0041A86A 59                      pop ecx
:0041A86B A3C4864400              mov dword ptr [004486C4], eax
:0041A870 0F84501E0000            je 0041C6C6
:0041A876 57                      push edi
:0041A877 E8FB18FFFF              call 0040C177
:0041A87C 3BC3                    cmp eax, ebx
:0041A87E 59                      pop ecx
:0041A87F A384854400              mov dword ptr [00448584], eax
:0041A884 0F843C1E0000            je 0041C6C6
:0041A88A 57                      push edi
:0041A88B E84CA2FFFF              call 00414ADC //建立 SysListView32
:0041A890 3BC3                    cmp eax, ebx
:0041A892 59                      pop ecx
:0041A893 A390854400              mov dword ptr [00448590], eax
:0041A898 0F84281E0000            je 0041C6C6
:0041A89E 57                      push edi
:0041A89F E84EBFFEFF              call 004067F2
:0041A8A4 3BC3                    cmp eax, ebx
:0041A8A6 59                      pop ecx
:0041A8A7 A3A0854400              mov dword ptr [004485A0], eax
:0041A8AC 0F84141E0000            je 0041C6C6

關鍵在於41A84F處的Call,將41A84F到0041A862處的程式碼改成如下
改前:
:0041A84F E8007AFEFF              call 00402254  //建立 廣告條
:0041A854 3BC3                    cmp eax, ebx
:0041A856 59                      pop ecx
:0041A857 A3B0854400              mov dword ptr [004485B0], eax //儲存視窗控制程式碼
:0041A85C 0F84641E0000            je 0041C6C6
:0041A862 57                      push edi
改後:
:0041A84F 31C0909090              xor eax,eax  //清eax=0
:0041A854 3BC3                    cmp eax, ebx
:0041A856 59                      pop ecx
:0041A857 A3B0854400              mov dword ptr [004485B0], eax //儲存視窗控制程式碼
:0041A85C 90                      nop
:0041A85D 90                      nop
:0041A85E 90                      nop
:0041A85F 90                      nop
:0041A860 90                      nop
:0041A861 90                      nop
:0041A862 57                      push edi
自此將不會再出現廣告條,而是好大一面牆.下面將透過該SysListView32的高度去除這面牆
* Possible Reference to String Resource ID=00001: "Invalid retry delay"
                                  |
:0041A659 6A01                    push 00000001
:0041A65B 2B45F0                  sub eax, dword ptr [ebp-10]
:0041A65E 6A42                    push 00000042
:0041A660 50                      push eax
:0041A661 FF75F4                  push [ebp-0C]
:0041A664 FF75F0                  push [ebp-10]
:0041A667 FF35B0854400            push dword ptr [004485B0]
:0041A66D FFD7                    call edi
:0041A66F 8345F443                add dword ptr [ebp-0C], 00000043 //確定SysListView32位置
                                                  //00000043是牆的高度,也就是廣告條的高度
:0041A673 391D80854400            cmp dword ptr [00448580], ebx
:0041A679 0F84F5000000            je 0041A774

* Possible Reference to String Resource ID=00005: "Invalid maximum speed"
                                  |
:0041A67F 6A05                    push 00000005
根據上面分析只要將0041a66F除的00000043改成00000000就可以了
改前:  0041A66F 8345F443                add dword ptr [ebp-0C], 00000043
改後:  0041A66F 8345F400                add dword ptr [ebp-0C], 00000000
到此網路螞蟻1.22版去廣告條成功.

相關文章