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

[分享] CALL

leechiwa 發表於 2009-3-31 17:30:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |
本人的CALL
在論壇混了這麼久 發一個自己找CALL的心得
有些東西,你不做就是不知道有什麼不同
以後努力,爭取做出個像樣的外掛
==========================================================================
VB學習CALL 注入,需要的工具 ODBG --動態調試工具
CE--
查找記憶體工具。

最好能夠先學會用CE 查找基底位址。。。。。。。。。。。。。
然後,通過對記憶體的操作,達到某中要求 在配合CALL實現自動
常用的工具(有幾個鏈結的,自己找下)
=========================================================================
首先得有一個彙編類
第一個VB CALL 調用上面的彙編類
{用完美(大陸版本)做例子的}
第一個彙編的CALL 不會找位址,直接要了一個位址的。
主程序
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesRead As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Const PROCESS_ALL_ACCESS = &H1F0FFF
Dim pid As Long
Dim asm2 As New clsASM
'================================================================================================
'無參數的6次找到
Private Sub Command1_Click()
'
打坐的CALL

Dim hWnd As Long
hWnd = FindWindow("ElementClient Window", "Element Client")
GetWindowThreadProcessId hWnd, pid
Dim asm As New clsASM
With asm
'
asm


.Pushad


'.Mov_EAX Val(Text1.Text)


.Mov_EBX &H5BB3D0
'
CALL elementc.005BB3D0


.Call_EBX


.Popad
'
popad


.Ret

End With

'
end

asm.Run_ASM pid
End Sub

第二個CALL
是在 OD堶掖q過查找第一個知道的位址
CUP介面中常數查找 ”005BB3D0“
發現是個跳轉區域,猜測 ---------可能有個站起的CALL
於是用附近的一個位址 ”005BB410“
這樣就是第二個CALL
Private Sub Command2_Click()
'
站起的CALL

Dim hWnd As Long
hWnd = FindWindow("ElementClient Window", "Element Client")
GetWindowThreadProcessId hWnd, pid
Dim asm As New clsASM
With asm
'
asm


.Pushad


'.Mov_EAX Val(Text1.Text)


.Mov_EBX &H5BB410
'CALL elementc.005BB410


.Call_EBX


.Popad
'
popad


.Ret

End With
'
end

asm.Run_ASM pid
End Sub

第三個CALL 也是無參數的  普通打怪的CALL
由於前面兩個 OD 我都是按6CTR+F9得到的
我想第三個可能也是這樣的吧
這是我第一次自己找到的
步驟
先運行OD
然後在OD中打開文件”Element Client.exe"
導入之後,按F9 運行。
不一會到了遊戲登陸介面
輸入帳號、密碼 確定
然後就出現錯誤
SHIFT+F9 忽略。。。
有錯誤就忽略
進入選角色介面
進入遊戲,又出現錯誤
又按幾個SHIFT+F9 忽略。。。
終於進入遊戲中
先在遊戲中動作幾下
找個好地方,運動幾下,然後走到怪物附近,選中怪物。
然後在OD中下斷 命令行 “bp send"[備註:封包中斷點]---本人是這樣理解的
(這個中斷點是每幾秒會斷一次的,通信用的 所以動作要快。)
下斷之後,等OD斷下,按F8 F9 讓遊戲運行起來(可能要多按幾次也說不定)
然後馬上進入遊戲介面,按快捷鍵”1“
這樣遊戲就被斷下(這堛`意:要是你動作了(可能怪物移動了,你要走動在打),你斷的地方可能不同)
多試幾次
然後 0D中從中斷點開始
ctr+F9 按兩次跳出系統領空(即:OD標題上面的內容變化為Element Client)(本人這堥潀腹^
然後先嘗試 繼續按4次(+上面2次共6次)分析此處的代碼(為什麼6次,可能無參數的CALL大部分是6次吧)
發現上面有個無參數CALL 記下其調用的地址

Private Sub Command3_Click()
'-------
普通打怪的CALL(快捷1

Dim hWnd As Long
hWnd = FindWindow("ElementClient Window", "Element Client")
GetWindowThreadProcessId hWnd, pid
Dim asm As New clsASM
With asm
'
asm


.Pushad


.Mov_EBX &H5BAC70
'
CALL


.Call_EBX



.Popad
'
popad


.Ret

End With
'
end

asm.Run_ASM pid
End Sub
編程測試。。。。。。

第四個CALL 留位子  就是喊話CALL
經過兩天的測試,今天又直接要了個位址(是兩個位址)終於完成這個CALL
也知道了 CALL中基址的引用。[不能光是CALL位址還有基址]
也是第一個有參數的CALL
Private Sub Command6_Click()
'
自動喊話CALL-----(ADRESS=H59AA70
W2I_BASE= 987E1C
)

Dim hWnd As Long
hWnd = FindWindow("ElementClient Window", "Element Client")
GetWindowThreadProcessId hWnd, pid
Dim SpeekBase As Long
Dim NeiRong As String
NeiRong = "組我呀,我不會組隊?"
hWnd = OpenProcess(PROCESS_ALL_ACCESS, False, pid)
SpeekBase = VirtualAllocEx(hWnd, ByVal 0&, (Len(NeiRong) + 1) * 2, &H1000, &H40) '申請記憶體(釋放我還不會自己找代碼吧)
WriteProcessMemory hWnd, ByVal SpeekBase, ByVal StrPtr(NeiRong), (Len(NeiRong) + 1) * 2, 0&
CloseHandle hWnd
Dim asm As New clsASM
Const W2i_base = &H987E1C '---------------總基本位址
Const address = &H59AA70
'------------CALL
地址

With asm

.Pushad


.Push SpeekBase


.Push 0 '
0普通,1世界,2組隊)


.Mov_EAX_DWORD_Ptr W2i_base '
總基址以後自己換


.Mov_ECX_DWORD_Ptr_EAX_Add &H20


.Mov_EBX address 'CALL
地址的以後自己換


.Call_EBX


.Popad


.Ret

End With
'釋放記憶體
asm.Run_ASM pid
End Sub
收藏收藏 分享分享 讚 幹 分享分享 FB分享
回覆

使用道具 舉報


Goldenwolf 當前離線
UID
1166302
熱心
75 值
嘉獎
0 次
違規
0 次
在線時間
17 小時
經驗
75 點
積分
426
精華
0
最後登錄
2009-10-8
閱讀權限
25
註冊時間
2009-3-28
論壇幣
259 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 3
Goldenwolf 2009-4-1 09:26:38
CALL =  呼應
好複雜 不過還是感謝大大分享!!
回覆

使用道具 舉報

蠢小鬼 當前離線
UID
1224991
熱心
46 值
嘉獎
0 次
違規
0 次
在線時間
3 小時
經驗
16 點
積分
16
精華
0
最後登錄
2009-6-6
閱讀權限
10
註冊時間
2009-5-30
論壇幣
24 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 1
蠢小鬼 2009-6-2 01:31:38
謝謝分享YCT41B 謝謝分享YCT41B
回覆

使用道具 舉報

jaydiy 當前離線
UID
1140322
熱心
50 值
嘉獎
0 次
違規
0 次
在線時間
17 小時
經驗
54 點
積分
54
精華
0
最後登錄
2009-12-16
閱讀權限
20
註冊時間
2009-2-22
論壇幣
533 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
jaydiy 2009-8-2 18:36:18
call 還真的不太好學
還在學習用CE查找記憶體的基址中
                                 
不過還是感謝大大的分享
回覆

使用道具 舉報

隨火 當前離線
UID
1294953
熱心
214 值
嘉獎
0 次
違規
0 次
在線時間
6 小時
經驗
14 點
積分
14
精華
0
最後登錄
2011-4-5
閱讀權限
10
註冊時間
2009-8-20
論壇幣
78 幣
聯合幣
0 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 1
5
隨火 2009-9-1 09:49:20
謝謝大大熱心的教學無私的分享
使我學習到恨多東西
你真是太厲害了吧
回覆

使用道具 舉報

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


手機版 | Archiver | 外掛聯合國

GMT+8, 2024-11-22 07:38 , Processed in 0.071579 second(s), 18 queries , Memcache On.

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

回頂部
第二步?
第三步?