416.分析调用喊话封包
2020-08-30 23:35:50
任鸟飞
254
通用代码
BYTE 通用_2字符转Byte(char ch1, char ch2)
{
int S;
if ((ch1 >= 48) && (ch1 <= s="ch1" -="" else="" if="" ch1="">= 65) && (ch1 <= 65="" s="ch1" -="" if="" ch2="">= 48) && (ch2 <= 16="" return="" s="" ch2="" -="" else="" if="">= 65) && (ch2 <= 70))
{
return S * 16 + ch2 - 65 + 10;
}
else
{
return -1;
}
}
任鸟飞逆向,飞郁培训官网发布
任鸟飞,郁金香等著名讲师出品的课程教程
零基础学外挂,学辅助,外挂与反外挂,逆向分析,脚本,游戏安全,软件安全
添加调用代码
#includeusing namespace std;
byte 封包字节集[0x200];
voidCall_喊话封包(char a[])
{
string 包头 = "E737070000000980";//包头8字节
string 包内容 = 通用_Byte数组转十六进制字串((unsigned char*)a, (int)strlen(a));//喊话内容
包内容 = 包头 + 包内容;//完整喊话封包
int len = (int)包内容.size() / 2;//字符串转成字节集
for (int i = 0; i < len; i++)
{
封包字节集[i] = 通用_2字符转Byte(包内容[2 * i], 包内容[2 * i + 1]);
}
QWORD A = (QWORD)&封包字节集;//改写封包参数
*(byte*)(A + 6) = (byte)(strlen(a) / 2);
if (strlen(a) % 2 == 1)*(byte*)(A + 7) = (byte)0x80;
DWORD 包长 = 8 + (DWORD)strlen(a);//计算包长
Call_明文包((QWORD)封包字节集, 包长);
}
分析 喊话封包的结构
到这里我们可以完全的hook到WOW的所有明文封包并且发送出去了