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

[發問] 請問走路call問題

janin0115 發表於 2011-1-14 10:48:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |
請問大大 我執行發生錯誤 想了好久都想不出來 請大大們指點 感謝
type  // ---- 定義參數指針
  PParams2 = ^TParams;
  TParams2 = packed record
  Param3,Param4,Param5: DWORD;
  end;
procedure WalkCall2(aPParams2:PParams2); Stdcall;
var
  Address1:pointer;
  Address2:pointer;
  Address3:pointer;
  x,y,z:Single;
  r_POSITION1:Integer;
begin
  Address1:=Pointer($469F00);
  Address2:=pointer($46E090);
  Address3:=pointer($46A340);
  x:=aPParams2^.Param3;
  y:=aPParams2^.Param4;
  z:=aPParams2^.Param5;
  asm
    pushad
      mov eax, dword ptr [W2I_BASE_ADDR]
      mov eax, dword ptr [eax+$1C]
      mov esi, dword ptr [eax+$20]
      mov ecx, dword ptr [esi+$ff4]  //Bcc+8=BD4
      push 1
      call Address1
      mov edi, eax
      lea eax, dword ptr [esp+$18]
      push eax
      push 0   //r_POSITION1   //0地面 1空中
      mov ecx, edi
      call Address2
      mov ecx, dword ptr [esi+$dd4]  //Bcc+8=BD4    dd4 fec
      push 0
      push 1
      push edi
      push 1
      call    Address3
      mov eax, dword ptr [W2I_BASE_ADDR]
      mov eax, dword ptr [eax+$1C]
      mov eax, dword ptr [eax+$20]
      mov eax, dword ptr [eax+$ff4]  //Bcc+8=BD4  dd4 fec
      mov eax, dword ptr [eax+$30]
      mov ecx, dword ptr [eax+4]
      mov eax, x
      mov dword ptr[ecx+$20], eax
      mov eax, z
      mov dword ptr[ecx+$24], eax
      mov eax, y
      mov dword ptr[ecx+$28], eax
    popad
  end;
end;
procedure InjectFunc2(Func: Pointer; Param: Pointer; ParamSize: DWORD);
var
  hThread: THandle;
  lpNumberOfBytes: DWORD;
begin
  if processid<>0 then
  begin
    // ---- 寫入函數位址
    WriteProcessMemory(processid, ThreadAdd, Func, 128, lpNumberOfBytes);
    // ----  寫入參數位址
    WriteProcessMemory(processid, ParamAdd2, Param, ParamSize, lpNumberOfBytes);
    // ---- 建立遠端執行緒
    hThread := CreateRemoteThread(processid, nil, 0, ThreadAdd2, ParamAdd2, 0, lpNumberOfBytes);
    // ---- 等待執行緒結束
    WaitForSingleObject(hThread, INFINITE);
    CloseHandle(hThread);
  end;
end;
procedure TForm1.FormDestroy2(Sender: TObject);
begin
  VirtualFreeEx(processid, ThreadAdd, MemSize, MEM_RELEASE);
  VirtualFreeEx(processid, ParamAdd, 20, MEM_RELEASE);
  CloseHandle(processid);
end;
procedure TForm1.WalkTo(x, y, z: single);
var
  aParams2 : TParams;
  aParamsSize2: DWORD;
begin
  aParams2.Param3:= x;
  aParams2.Param4:= y;
  aParams2.Param5:= z;
  aParamsSize2=SizeOf(aParams2);
  if ghwnd<>0 then
  begin
    injectfunc2(@WalkCall2, @aParams2, aParamsSize2);
  end;
end;
收藏收藏 分享分享 讚 幹 分享分享 FB分享
回覆

使用道具 舉報


RAINTCK 當前離線
UID
1569638
熱心
259 值
嘉獎
0 次
違規
0 次
在線時間
321 小時
經驗
158 點
積分
4295
精華
0
最後登錄
2018-10-27
閱讀權限
50
註冊時間
2010-10-21
論壇幣
3504 幣
聯合幣
47 枚
幸運鑽
6 顆
招待卷
2000 點
查看詳細資料
Rank: 6Rank: 6
RAINTCK 2011-1-15 01:23:02
push 0   //r_POSITION1   //0地面 1空中
mov ecx, edi
call Address2
mov ecx, dword ptr [esi+$dd4]  //Bcc+8=BD4    dd4 fec
你這行還是DD4沒改FF4
回覆

使用道具 舉報

MOULI33 當前離線
UID
1279460
熱心
59 值
嘉獎
0 次
違規
0 次
在線時間
72 小時
經驗
58 點
積分
58
精華
0
最後登錄
2014-6-23
閱讀權限
20
註冊時間
2009-7-29
論壇幣
6361 幣
聯合幣
1 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
MOULI33 2011-1-15 08:21:13
你將這行 mov ecx, dword ptr [esi+$dd4]  //Bcc+8=BD4    dd4 fec
的 DD4 改成FF4試試看
回覆

使用道具 舉報

MOULI33 當前離線
UID
1279460
熱心
59 值
嘉獎
0 次
違規
0 次
在線時間
72 小時
經驗
58 點
積分
58
精華
0
最後登錄
2014-6-23
閱讀權限
20
註冊時間
2009-7-29
論壇幣
6361 幣
聯合幣
1 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
MOULI33 2011-1-15 08:36:08
剛才沒看清楚,這個call是舊的了,新的是下面的寫法,我使用是沒有問題,你可參考一下!

procedure WalkCall(aPParams:PParams); Stdcall;
var
  Address1:pointer;
  Address2:pointer;
  Address3:pointer;
  x,y,z:Single;
  r_POSITION1:Integer;
begin
  Address1:=Pointer(W2I_Walk_Call1);
  Address2:=pointer(W2I_Walk_Call2);
  Address3:=pointer(W2I_Walk_Call3);
  x:=aPParams^.Param3;
  y:=aPParams^.Param4;
  z:=aPParams^.Param5;
       asm
     pushad
       mov     eax, dword ptr W2I_BASE_ADDR
       mov     eax, dword ptr [eax+$1C]
       mov     esi, dword ptr [eax+$20]
       mov     ecx, dword ptr [esi+$FF4]
       push     1
       call     address1
       mov     edi, eax //保存 mouse 點擊的座標

       mov     ecx, dword ptr [esi+$FF4]
       mov     ecx, dword ptr [ecx+$30]
       mov     ecx, dword ptr [ecx+4]
       mov     eax, x
       mov     [ecx+$20], eax
       mov     eax, y
       mov     [ecx+$28], eax
       mov     eax, z
       mov     [ecx+$24], eax

       lea     ecx, [ecx+$20]
       push    ecx
       //push    IsFly
       push    0

       mov     ecx, edi
       call    address2

       push     0
       push     1
       push     edi
       mov      ecx, dword ptr [esi+$FF4]
       push     1
       call     address3
     popad
     end;
end;
回覆

使用道具 舉報

janin0115 當前離線
UID
1472623
熱心
200 值
嘉獎
0 次
違規
0 次
在線時間
269 小時
經驗
120 點
積分
927
精華
0
最後登錄
2015-10-26
閱讀權限
30
註冊時間
2010-5-31
論壇幣
318 幣
聯合幣
3 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 4Rank: 4
5
janin0115 2011-1-20 06:31:16
請問 我玩家座標 走路CALL 都好了 要怎麼寫 跟隨玩家的方式呢 請大大們解惑
感恩
回覆

使用道具 舉報

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


手機版 | Archiver | 外掛聯合國

GMT+8, 2024-11-16 12:25 , Processed in 0.056062 second(s), 12 queries , Memcache On.

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

回頂部
第二步?
第三步?