热血江湖V60000喊话

1. 喊话CALL

查找思路:在聊天窗口输入一段文字,在CE中扫描这段文字的内容,wwh Evil0r 区分大小写,最终找到两个地址,一个是编辑框里面显示的内容,一个是真正喊话的内容

查找访问编辑框内容(因为喊话肯定要读取这个编辑框的内容):4403a9

OD进入分析,转到该地址下断,游戏中输入喊话内容在OD中断下来,往下拉可以看到有个call,代码注入器测试,成功喊话

mov esi,0c86df00 mov edx,[esi] push 0d push 0d push 3ed mov ecx,esi call [edx+4]


注意:要用CE剥离进程可以用其重新附加一次(但是感觉不如直接退出CE好用。。。),push 0D=13 是回车键,ESI的值有一个基址,下面会查找

2. 喊话CALL参数基址+偏移分析与VC实现

首先看下CALL

00440409 8B16 mov edx,dword ptr ds:[esi] 0044040B 57 push edi 0044040C 53 push ebx 0044040D 68 ED030000 push 3ED 00440412 8BCE mov ecx,esi 00440414 FF52 04 call dword ptr ds:[edx+4]


首先下断记下此时ESI的值= 0C86E360,查找ESI的来源 CE中搜索可以找到一个基址

03E6F304

然后再找参数 编辑框输入字符串CE中搜索 找出真正的喊话地址,dd该地址,下内存访问断点,游戏中喊话断下来

来到的地方是对字符串的操作,分析反汇编代码,得到喊话字符串地址[0DD6148]+13C,可以dc [0DD6148]+13C查看下

现在可以写喊话的函数了

VOID Talk(const char * text) { char *s; int *p; p=(int *)0x0DD6148; s=(char *)(*p+0x13c); memcpy(s,text,strlen(text)); __asm { mov esi,0x03E6F304 mov esi,[esi] mov edx,[esi] push 0x0d push 0x0d push 0x3ed mov ecx,esi call [edx+4] } }


调用:

CString str; GetDlgItemText(IDC_EDIT_SPEAK,str); USES_CONVERSION; Talk(T2A(str.GetBuffer())); str.ReleaseBuffer();



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值