黃易群俠傳M脫機外掛應用程式黃易神行
7898
48

[分享] 以完美撿東西為例-淺談外掛常用的3種方法

agerchen 發表於 2009-10-31 04:48:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |
做為一個老新手,我想我以自已的經驗為例,希望能給一些新手說明,少走一些彎路…
我們寫掛時常用的有3種方法…以完美的撿東西為例
1. 模擬按鍵 - 這個應該很好理解,就是由外掛來幫我們按鍵。
2. 呼叫程式內建的函數來達成我們要的功能。
3. 直接傳送撿東西的封包給伺服器
下面是我的例子…

1. 模擬按鍵 - 這個應該很好理解,就是由外掛來幫我們按鍵。
這種方式缺點不少,比如說按鍵的安排不同的角色必須相同,按鍵也必須要有 delay 的時間等等。
但是這種方式簡單,程式非常容易寫…例如 F4撿東西
handle := FindWindow(nil, pchar(edit1.text));
SendMessageW(handle,WM_KEYDOWN ,115,0);
2. 呼叫程式內建的函數來達成我們要的功能。
這種方式不用理會使用者的按鍵安排,但是缺點是必須要知道內建函數的位址或偏移,參數與堆疊也要小心。
程式的撰寫就比較麻煩了,而且改版之後位址也會變更。例如…
const  W2I_PICKITEM_CALL=$5DA480;
//dll使用------------------------------------------
procedure CallSendPickItem(p: PCallParam); stdcall;
var
  len: integer;
  buf: array[0..9] of byte;
  pbuf: pointer;
  tmp1,itemsn,itemid: dword;
begin
  itemsn:=p^.general_use1;
  itemid:=p^.general_use2;
asm
  pushad
  push itemsn
  push itemid
  mov ecx, W2I_CALL_BASE
  mov ecx,dword ptr [ecx+20]
  add ecx,$0ec
  mov eax, W2I_PICKITEM_CALL//呼叫撿東西的內部函數
  call eax
  add esp,8
  popad
end;
end;
//外掛程式使用----------------------------------------
procedure TForm1.SendPickItem(itemsn, itemid: dword);
begin
  callparam.general_use1:=itemsn;
  callparam.general_use2:=itemid;
  InjectFunc(handle,@CallSendPickItem,@callparam,SizeOf(callparam));
end;
3. 直接傳送撿東西的封包給伺服器
這種方式最直接,而且改版也不需要修改地址,通常封包的結構也不會改(只會變更內容, 例如有新的物品)。
事實上這種方法的程式也並不麻煩,麻煩的是你要知道封包的結構而已。例如…
const  W2I_CALL_BASE=$98ADDC;
const  W2I_SEND_PACK_CALL=$5BD9A0;
//dll使用------------------------------------------
procedure CallSendPickItem(p: PCallParam); stdcall;
var
  len: integer;
  buf: array[0..9] of byte;
  pbuf: pointer;
  tmp1,itemsn,itemid: dword;
begin
  buf[0]:=$06;
  buf[1]:=$0;
  pbuf:=@buf;
  len:=10;  
  tmp1:=p^.general_use2;
  asm
    pushad
    mov esi, tmp1
    mov edi, pbuf
    mov dword ptr[edi+2], esi
    popad
  end;
  tmp1:=p^.general_use1;
  asm
    pushad
    mov esi, tmp1
    mov edi, pbuf
    mov dword ptr[edi+6], esi
    popad
  end;
  asm
    pushad
    mov  ecx, W2I_CALL_BASE
    mov  ecx, [ecx]
    push len
    push pbuf
    mov  ecx, dword ptr [ecx+$20]
    mov  eax, W2I_SEND_PACK_CALL//發送封包
    call eax
    popad;
  end;
end;
//外掛程式使用----------------------------------------
procedure TForm1.SendPickItem(itemsn, itemid: dword);
begin
  callparam.general_use1:=itemsn;
  callparam.general_use2:=itemid;
  InjectFunc(handle,@CallSendPickItem,@callparam,SizeOf(callparam));
end;

這是我的經驗,希望能對新手有些幫忙。
收藏收藏 分享分享 讚 幹 分享分享 FB分享
先為不可勝
以待敵之可勝
回覆

使用道具 舉報


bumping 當前離線
UID
1106894
熱心
51 值
嘉獎
0 次
違規
0 次
在線時間
39 小時
經驗
51 點
積分
51
精華
0
最後登錄
2011-3-4
閱讀權限
20
註冊時間
2009-1-9
論壇幣
136 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
bumping 2009-10-31 13:43:08
糟糕...
一點都看不懂...
真希望自己也會寫程式
謝謝大大
回覆

使用道具 舉報

onizukaekiji 當前離線
UID
1027264
熱心
25 值
嘉獎
0 次
違規
0 次
在線時間
2 小時
經驗
23 點
積分
23
精華
0
最後登錄
2009-10-31
閱讀權限
20
註冊時間
2008-9-18
論壇幣
119 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
onizukaekiji 2009-10-31 16:38:33
請教大大
您的程式碼是用VB?VC?還是???
因為我也不會寫程式
所以我也看不懂
YCT48B
回覆

使用道具 舉報

samhwu 當前離線
UID
1233736
熱心
117 值
嘉獎
0 次
違規
0 次
在線時間
88 小時
經驗
119 點
積分
119
精華
0
最後登錄
2013-3-17
閱讀權限
20
註冊時間
2009-6-9
論壇幣
1308 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
samhwu 2009-10-31 18:16:43
高手!!
您的程式是Delphi寫的吧?
可惜我不會Delphi
方法1大概知道
請教大大是用甚麼工具或方法
知道2.位址,3.封包的結構?
感謝大大分享經驗
回覆

使用道具 舉報

kiangchiho 當前離線
UID
1346587
熱心
38 值
嘉獎
0 次
違規
0 次
在線時間
3 小時
經驗
34 點
積分
143
精華
0
最後登錄
2018-8-6
閱讀權限
20
註冊時間
2009-11-7
論壇幣
61 幣
聯合幣
6 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
5
kiangchiho 2009-11-7 22:56:13
很專門的POST(汗)

但也支持製作者的心血啊~
回覆

使用道具 舉報

terry080tung 當前離線
UID
161646
熱心
70 值
嘉獎
0 次
違規
0 次
在線時間
132 小時
經驗
65 點
積分
65
精華
0
最後登錄
2010-11-6
閱讀權限
20
註冊時間
2007-1-24
論壇幣
4728 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
6
terry080tung 2009-11-9 10:47:42
大大做法沒錯!
送魚不如教人釣魚!
回覆

使用道具 舉報

kenjiping 當前離線
UID
1353129
熱心
34 值
嘉獎
0 次
違規
0 次
在線時間
3 小時
經驗
34 點
積分
34
精華
0
最後登錄
2010-3-30
閱讀權限
20
註冊時間
2009-11-16
論壇幣
63 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
7
kenjiping 2009-11-19 17:29:02
完全看不懂,是我太笨了,還是謝謝版大的分享
回覆

使用道具 舉報

☆黑白珠☆ 當前離線
UID
1373928
熱心
68 值
嘉獎
0 次
違規
0 次
在線時間
33 小時
經驗
68 點
積分
68
精華
0
最後登錄
2011-4-11
閱讀權限
20
註冊時間
2009-12-20
論壇幣
6295 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
8
☆黑白珠☆ 2009-12-20 09:52:27
看不懂!!但還是感謝分享感恩喔!!不錯.......
回覆

使用道具 舉報

V192739 當前離線
UID
1026197
熱心
290 值
嘉獎
0 次
違規
0 次
在線時間
141 小時
經驗
306 點
積分
5788
精華
1
最後登錄
2018-8-6
閱讀權限
55
註冊時間
2008-9-17
論壇幣
4980 幣
聯合幣
47 枚
幸運鑽
5 顆
招待卷
8955 點
ICQYahoo! 查看詳細資料
Rank: 5Rank: 5Rank: 5
9
V192739 2010-1-1 16:43:51
是用那種程式寫 說名一下 謝謝 大家才會懂
回覆

使用道具 舉報

好球網喔 該用戶已被刪除
10
好球網喔 2010-1-2 18:03:28
提示: 作者被禁止或刪除 內容自動屏蔽
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

12345下一頁

手機版 | Archiver | 外掛聯合國

GMT+8, 2024-11-22 21:02 , Processed in 0.055907 second(s), 16 queries , Memcache On.

版權說明:
  本站不會製作、經銷、代理外掛程式。僅免費提供外掛程式下載前之掃毒及掃木馬等安全檢測驗證,協助會員遠離盜號危險程式。本站所有資料均來自網際網路收集整理,說明文字暨下載連結轉載自原程 式開發站。站上出現之公司名稱、遊戲名稱、程式等,商標及著作權,均歸各公司及程式原創所有,本站程式所有權歸外掛聯合國所有。本程式所有權歸外掛聯合國所有.......

回頂部