首页
社区
课程
招聘
[求助]获得了游戏socket的句柄 怎样修改并封包
发表于: 2009-2-18 21:15 7772

[求助]获得了游戏socket的句柄 怎样修改并封包

2009-2-18 21:15
7772
问题 已经解决了

我已经
获得了游戏socket的句柄怎样修改并发送封包
                          用下面的代码 hook 自己做vb程序 好像是不行的
' dll 注入的代码
                          push    0                                  ;flag
012B27CC   .  51            push    ecx                              ; |DataSize  '
012B27CD   .  52            push    edx                              ; |Data   ‘注入的地址
012B27CE   .  50            push    eax                              ; |Socket '获取的 socket 句柄
012B27CF   .  FF15 38812B01 call    dword ptr [<&WSOCK32.#19>]       ; \调用游戏的send  函数
012B27D5   .  C2 1000       retn
是不是还缺少别的什麽东西

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (11)
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谁来看看 顶 !!
2009-2-19 13:54
0
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
往上找怎么建立封包的呀
2009-2-19 14:03
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我做了个 vb 小程序 来说明我的意思
  在这个程序中 我用 winsock 控件能发送字符串 但是 如果用 send 这个 api 使用上 winsock 控件 的句柄 就发送不成功
http://ys-f.ys168.com/?winsock.rar_4s7bs0b9e0e2bs7bs0btr7bt4bsp0cl1bsln1b5bt4bsplmhu14z97f14z
谁来帮我看看这是为什么

Option Explicit
Private Declare Function Send Lib "wsock32.dll" Alias "send" (ByVal s As Long, buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
Private Declare Function GetApiEntry Lib "dll.dll" (Modelname As Long, Apiname As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long

Private Sub Command1_Click()
Dim l As Long
l = GetApiEntry(ByVal VarPtr("Ws2_32.DLL"), ByVal VarPtr("SEND"))
Debug.Print l
End Sub

Private Sub Command4_Click()
        Dim s As Long
        Dim l As Long
        Dim TheMsg() As Byte
         TheMsg = "hook api ·¢ËÍ"
         l = UBound(TheMsg) - LBound(TheMsg) + 1
         s = Val("&H" & Trim(Text3.Text) & "&")
         MsgBox "hook send ·¢ËÍ"
        Call Send(s, TheMsg(0), l, 0)   '×îºóÒ»¸ö²ÎÊý¾ö¶¨ÊÇ·ñÇå¿Õ »º³åÇø
End Sub

Private Sub Form_Load()
   Winsock3.Close
   Winsock3.LocalPort = 3001
   Winsock3.Listen
   DoEvents
Winsock1.RemoteHost = "127.0.0.1"
Winsock1.RemotePort = 3001
Winsock1.Close
Winsock1.Connect
LoadLibrary "dll.dll"
End Sub
Private Sub Command2_Click()
MsgBox "winsock ·¢ËÍ"
Form1.Winsock2.SendData Form1.Text1.Text & "xxÄ£¿éºÅ"
End Sub

Private Sub Winsock1_Connect()
Text1.Text = "Á¬½Ó³É¹¦"
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  Dim s As String
  Winsock1.GetData s
  Text2.Text = Text2.Text & "w2·¢À´:" & s & vbCrLf
End Sub

Private Sub Winsock3_ConnectionRequest(ByVal requestID As Long)
  Winsock2.Close
   Winsock2.Accept requestID
  Text3.Text = Hex(Winsock2.SocketHandle)
End Sub
2009-2-19 16:08
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谁来看看 顶 !!
2009-2-19 18:44
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
6
控件的句柄不等于套接字的句柄。
2009-2-19 23:04
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
控件的句柄不等于套接字的句柄。
2009-2-20 03:28
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
应该是等于啊
我用 od 查到 套接字句柄  换上套接字句柄也不行

SocketHandle 属性
      

返回一个与套接字句柄对应的值,控件用套接字句柄同 Winsock 层通信。在设计时是只读的,而且是不可用的。

语法

object.SocketHandle

object 所在处代表一个对象表达式,其值是“应用于”列表中的对象。

数据类型

Long

说明

这个属性是为了传递到 Winsock APIs 而设计的。
2009-2-20 10:15
0
雪    币: 210
活跃值: (150)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
楼主是想做外挂吧,去广海里有详细的教程。
`首先得DLL注入,然后找游戏的CALL,调用CALL
2009-2-20 10:29
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
找 call 我会
现在已经找到send 函数的 call 地址了
我就是纳闷 知道了 socket 套接字的句柄。为什么不能用 send 发送
2009-2-20 10:58
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
唉,我也想知道。
2010-5-9 08:06
0
雪    币: 1602
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
怎样才能获得其它进程的socket句柄,有代码?
2012-2-12 16:31
0
游客
登录 | 注册 方可回帖
返回
//