我想弄个简单 ,非常简单,但是一定不要用注入DLL的方式,就可以发送封包~有方案吗
本帖最后由 skyheros 于 2017-10-4 21:49 编辑源码我已经贴在下面了~~~
内容也很简单。
这个小 目前写的:
1 枚举游戏进程;
2 获取套接字;
3 然后用套接字发送封包。
但是我看了网上的例程,第3步,发送封包的时候,大多都是注入DLL,而我这个游戏一注入DLL就很麻烦,
一个是 经常退出 的时候,游戏进程崩溃。
二个是这个游戏启动是经过了内码软件转了码的,所以注入后 文字也显示不正常。
我就想问问,有没有不注入DLL的情况就能用游戏的套接字发送封包?
请提供可行且详细的解决方案,非常感谢。~
==================================================================
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 进程句柄, 整数型
.程序集变量 总套接字, 整数型
.子程序 __启动窗口_创建完毕
提升进程权限 (-1)
.子程序 _时钟1_周期事件
.局部变量 进程, 枚举进程结构, , "0"
.局部变量 计次1, 整数型
.局部变量 进程ID, 整数型
.局部变量 线程ID, 整数型
.计次循环首 (枚举进程 (进程), 计次1)
.如果真 (到文本 (进程 [计次1].程序名) = “asktao.mod”)
进程ID = 进程 [计次1].进程ID
.如果真 (进程句柄 ≤ 0)
进程句柄 = 进程_打开进程 (进程ID)
时钟1.时钟周期 = 0
时钟2.时钟周期 = 1000
.如果真结束
.如果真结束
.计次循环尾 ()
.子程序 _时钟2_周期事件
.局部变量 套接字信息, 套接字信息, , "0"
.局部变量 项目文本, 文本型
.局部变量 计次, 整数型
.局部变量 ttt, 整数型
.局部变量 xx, 窗口属性, , "0"
.局部变量 _句柄, 整数型
.计次循环首 (枚举套接字 (进程句柄, 套接字信息), 计次)
.如果真 (总套接字 ≤ 0)
总套接字 = 套接字信息 [计次].套接字
.如果真结束
.如果真 (总套接字 > 0)
_启动窗口.标题 = “控制搜索中……”
时钟2.时钟周期 = 0
.如果真结束
.计次循环尾 ()
.子程序 _按钮1_被单击
.局部变量 套接字, 整数型
.局部变量 封包, 字节集
.局部变量 len, 整数型
.局部变量 ppt, 文本型
.局部变量 newppt, 字节集
.局部变量 xfs, 整数型
套接字 = 总套接字
.如果真 (套接字 > 0)
封包 = 十六进制文本到字节集 (“4D5A000002F0B5680054406200010000004800482364464646464646313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313132323232323232323232323232323232320000”)
xfs = send (套接字, 封包, 取字节集长度 (封包), 0)
输出调试文本 (xfs)
.如果真结束
.子程序 十六进制文本到字节集, 字节集, , 嵌ASM
.参数 原文, 文本型
.局部变量 原文长度, 整数型
.局部变量 原文地址, 整数型
.局部变量 码表地址, 整数型
.局部变量 结果地址, 整数型
.局部变量 结果, 字节集
原文长度 = 0' ebp-4
原文地址 = 1' ebp-8
码表地址 = 2' ebp-c
结果地址 = 3' ebp-10
置入代码 ({ 139, 93, 8, 139, 27, 137, 93, 248, 139, 251, 185, 255, 255, 255, 255, 50, 192, 252, 242, 174, 184, 254, 255, 255, 255, 43, 193, 137, 69, 252 })
.如果真 (原文长度 < 1)
返回 ({})
.如果真结束
置入代码 ({ 232, 0, 0, 0, 0, 89, 131, 193, 6, 235, 103 })' 跳转到代码
' ==========码表开始
' 本源码来自易语言资源网(www.5A5X.com)
置入代码 ({ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15 })
' 跳到这里了
置入代码 ({ 144, 144, 144, 144, 144, 137, 77, 244 })' 码表地址到ebp-c
置入代码 ({ 209, 109, 252 })' 原文长度/2
结果 = 取空白字节集 (原文长度)
置入代码 ({ 131, 192, 8, 137, 69, 240 })' 结果地址
' 计算开始
' 本源码来自易语言资源网(www.5A5X.com)
置入代码 ({ 139, 93, 244, 139, 117, 248, 139, 125, 240, 209, 101, 252, 139, 77, 252, 3, 206, 51, 192, 102, 139, 6, 70, 70, 80, 37, 255, 0, 0, 0, 138, 52, 24, 88, 193, 232, 8, 138, 20, 24, 192, 230, 4, 8, 242, 136, 23, 71, 59, 241, 124, 223 })
返回 (结果)
那就研究注入DLL呗 有办法不注入就截取SEND不过前提是游戏没有驱动保护如果有驱动保护得先解除驱动才行 q765593142 发表于 2017-10-7 17:14
有办法不注入就截取SEND不过前提是游戏没有驱动保护如果有驱动保护得先解除驱动才行
老哥,有没有案例呢?来一个 我学习学习{:smile:} 你的意思是DLL不能注入游戏,那你把DLL注入到代理程序里面,利用代理网截拦截程序的send,从代理端口发送封包。比如用CCP和eg或者 profier和TightSocks5 不注入DLL的方式 看我帖子 那个模块可以
给分 我给你源码
页:
[1]