登录数据包的监视与模拟
添加一个类
#pragma once
//登录数据
typedef struct DATA_LOGIN
{
int op = 0x300;
char buff[0x10]{};
int lenId{};
char Id[0x10]{};
int lenpass = 0x10;
char Pass[0x10];
int lenCode = 0x10;
char Code[0x10];
int eop = 0x01;
}*PDATALOGIN;
因为上次分析的长度是10的倍数 所以还得重新改下指针
bool Onlogin(char* buff, unsigned len)
{
//处理登录数据
PDATALOGIN _data = (PDATALOGIN)buff;
//_data->Id;
CStringA _id = _data->Id;
_data = (PDATALOGIN)(buff + _data->lenId - 0x10);
CStringA _pass = _data->Pass;
CStringA _tmp;
_tmp.Format("请求登录 账号[%s]密码[%s]", _id, _pass);
myAnly->sendData(MTYPE::I_DIS,0,_tmp.GetBuffer(),_tmp.GetAllocLength());
return true;
}
这样就可以显示出输入的账号密码(长一点的也能定位到)

把函数改成引用传参
bool Onlogin(char*& buff, unsigned &len)
{
len = sizeof(DATA_LOGIN)+1;
buff = new char[len];
DATA_LOGIN data;
PDATALOGIN _data = &data;
buff[0] = 0x2;
CStringA _id

185

被折叠的 条评论
为什么被折叠?



