目前正想在用VB写一个ROCO游戏的挂机玩,开始就遇到难题,不知怎么入手?
主要功能就是向游戏中发送自己的封包。
本人开始用wpe找到指定服务器的IP与端口(怎么自动找,就是想问大家的,这是第一个问题)
我找到后用以下过程进行连接。
Private Sub Command1_Click()
   Winsock1.Close
  ' Winsock1.LocalPort = 3295 '不能设置与正常游戏一样的端口
    Winsock1.Protocol = sckTCPProtocol '设置Winsock控件使用的协议,TCP或UDP。
    Winsock1.RemoteHost = "180.153.74.35"    Winsock1.RemotePort = 443 '设置要连接的远程端口号  Winsock1.Connect '返回与远程计算机的连接。
end sub
再用以下发包
Dim Buf(30) As Byte
Buf(0) = &H95
Buf(1) = &H27
Buf(2) = &H0
....
Buf(28) = &H0
Buf(29) = &H1
Winsock1.SendData Buf包可以正常发送到服务器中,但不会有相应的动作(如果正常就是移动),用wpe查看后,与游戏本身的包没什么不一样,就是本地端口不同。
这是第二个问题,是什么原因发包没用?

解决方案 »

  1.   

    都二天了,也没高手指点一下吗?
    说说思路也好呀!
    要不要用到hook,api等?
      

  2.   

    你写的是外挂吧,不过看你的方法与我知道的方向好像不太一样。
    还有,即使用你的方法,你也应该搞清楚目标程序的具体思路和架构,就比如他的握手协议是怎么样?里面的格式、算法你都清楚吗?
    比如说你说的本地端口问题,那个程序的本地端口是不是每次都一样?还是动态的变化?如果是每次都一样,他有可能是作为一个网络服务端口用,那么他提供的是怎样的网络服务?什么程序怎么去连接他,因为这个网络服务需要公网IP和公网端口才能直接与其连接,但你的应该是在客户端做的服务,这样就有可能变成是在内网中的一个网络服务,如果公网要连入这个内网服务,不是NAT映射就是用P2P才能实现,这些问题实际又是如何的呢?
    所以说你先要搞清楚这些问题才可能继续写程序。
    不过通常的外挂方向与你的开发方向不一样,我知道的是通过修改目标客户端的内存或调用目标客户端的内部过程来实现一些应用。比如通过线程注入将自己的代码注入到目标进程,得到操作目标内存与过程的进程权限,然后根据一些工具扫描到的地址或汇编代码来修改游戏客户端里的某些关键值或过程,比如检测和修改生命值,触发使用物品或攻击目标的过程等。这样就不用去考虑什么具体的网络协议和端口问题,只需要搞清楚基地址和偏移地址的用处以及触发过程就可以了。
      

  3.   

    本地端口只要与服务器连上了,就不会变。这个游戏就是洛 克%王%国
    非常感谢你的回复,不过我还是不太明白怎么注入,我想单机的才有注入吧(CE试过)!
    要不说简单一点,VB怎么制作WPE这样的软件功能!
      

  4.   

    这我几天看过 HOOK api 等,是不是要这些功能才能实现!
    但还有此用法不是太明白,怎么listen,取包,改包,发送!