autojs遍历当前页面所有控件_某游戏控件遍历

本文为看雪论坛优秀文章

看雪论坛作者ID:千音丶

一、自动喊话

想实现自动喊话怎么办?可以通过键鼠模拟,也可以找到喊话call,或者也可以找到控件输入call,在调用发送喊话的call,我们这里要找的是控件输入call。

a3a09d4b10ec09208b1661e9f44ae8b0.png

>>>>控件输入call

我们输入字符的时候肯定是要访问当前控件对象的,那么我可以从这个编辑框内容的长度来当做一个突破口, 当前有多少字符长读,我们就搜多少。

a58dc823ff75737af5110e47520b240b.png

最终有7个结果:

a6a7a18d21b500a4697ef8f1605af577.png

我们可以移动编辑里的光标,发现有个地址的内容变了,很显然这个地址是存放是光标的位置。

12cf2558bf2f0e409779839c048bcf64.png

剩下的3个都是存储字符串长度的,我们随便找个然后下内存写入断点。

3ace846b1324960a8c4835dfac6e15da.png

输入字符被断下:

55a2c49ba72b8a4cdb62bba92cccf16f.png

然后我们Ctrl+F9不断的返回,沿途记录call:

a6ac0bd60be20ade75a350b0981b4c50.png

那么先从第一个call 分析:

b5fd5cb1feb3df8104a7286e9bcbfbd1.png

分析第一个参数,发现很像是一个结构体:

9896c258e559a270d04f161123994910.png

具体分析如下:

在来看看ecx是什么。

从这些名字不难看出来应该是控件相关的。

fa3487d99b70876fce332c206de1bacd.png

并且在+11c的位置可以到是当前编辑框里的内容,那么这个应该就是控件对象了。

5aa28ae0432a2e0292e7bac16ee4fba5.png

>>>>测试输入call

先构造这么一个结构体:

d4d0c074e01cb6ec16e45db608285a84.png

调用一下,发现可以成功输入:

a8dcf2d1c3f7eecd0ea66db541136e87.png

>>>>发送call

他要发送内容,肯定是要发包的,我们可以在Send函数上下个断点。

喊话之后被断下:

aa0db39a0dba9e8c2e5b168aaf5d5bd7.png

Ctrl+F9返回,沿途记录call:

e5c977809d382e00dfa29e8d10a126e9.png

直接从后面的call开始测试,这里有个简易的方法就是把call Nop掉,然后看看效果还在不在,但是Nop的时候注意堆栈平衡。

然后把这个call Nop掉之后发现不会喊话了。

37babc3dc5f65a04314abecf54aba080.png

那么我们直接调用这个call做个测试,发现可以调用成功。

49c0ddf87ab46adaa6ecd9c1969b466a.png

二、控件遍历

>>>>追踪来源

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值