hx17660 发表于 2021-9-7 11:54

CE自动汇编如何写内存?

本帖最后由 hx17660 于 2021-9-7 11:59 编辑

aobscan 在w7下扫描出一个8位地址,可以直接写入指定地址,但w10会扫描出一个11位,以下代码只能写入后面8位。
地址是正确的,但少了一截,关键问题是w10下,如何对指定地址写入任意长度字节。
请大佬指教。
aobscan(jizhi,00 00 00 00 00 00 00 00 FF FF FF FF)

"x64.exe"+1FE6111:
ddjizhi//*
mov "x64.exe"+1FE6111,jizhi // *

忽然产生一个疑问,是不是aobscan 扫描的结果有问题,直接用ce扫描出11位,用aobscan 只能扫描出8位。

假设地址是“123456789ab”,以上代码只写入了456789ab,前面的123能否用其他方法获取?

唯美孤独 发表于 2021-9-7 12:06

CE好像汇编eax这的是32的rax这个是64的   像这种 rax地址是“123456789ab”,eax就是这个456789ab

hx17660 发表于 2021-9-7 12:10

唯美孤独 发表于 2021-9-7 12:06
CE好像汇编eax这的是32的rax这个是64的   像这种 rax地址是“123456789ab”,eax就是这个456789ab

这样该如何保存“123456789ab”到指定的地址内呢?

沧恋 发表于 2021-9-7 14:02

hx17660 发表于 2021-9-7 12:10
这样该如何保存“123456789ab”到指定的地址内呢?

label(名称)//标签
define(标签,字节数组)//定义字节集,可以用于记录字节数组//或者说记录字节集
aobscanmodule(标签,模块,字节数组)//特征搜索可以搜索指定模块内存
aobscan(标签,字节数组)//特征搜索,全部内存
registersymbol(标签)//注册全局变量
unregistersymbol(标签)//注销全局变量
readmem(地址,长度)//复制字节

这个是我个人记录的一些常用指令,用readmem就可以读取指定地址和长度写入到你指定的地址了。
比如这样
你想要写入的地址:
readmem(123456789ab这个数据的地址,读取的长度b)//这里长度使用的是十六进制

沧恋 发表于 2021-9-7 14:05

aobscan(jizhi,00 00 00 00 00 00 00 00 FF FF FF FF)

"x64.exe"+1FE6111:
readmem( jizhi,b)


就像这样子

hx17660 发表于 2021-9-7 14:08

沧恋 发表于 2021-9-7 14:02
label(名称)//标签
define(标签,字节数组)//定义字节集,可以用于记录字节数组//或者说记录字节集
aobs ...

不是这样的,我是要把“123456789ab”这种11位地址当作数据,存入到另外一个地址中(mov "x64.exe"+1FE6111,123456789ab),不是读取他。

沧恋 发表于 2021-9-7 14:20

hx17660 发表于 2021-9-7 14:08
不是这样的,我是要把“123456789ab”这种11位地址当作数据,存入到另外一个地址中(mov "x64.exe"+1FE61 ...

那你用db写啊dd是4字节写入db是字节集写入

hx17660 发表于 2021-9-7 14:35

沧恋 发表于 2021-9-7 14:20
那你用db写啊dd是4字节写入db是字节集写入

可否给个代码?
我这样写,试图凑够6字节写入,结果只写了个30
aobscan(jizhi,00 00 00 00 00 00 00 00 FF FF FF FF)

"x64.exe"+1FE6111:
db "0"##jizhi

鸭子咯咯哒~ 发表于 2021-9-7 16:24

可以说下是啥程序吗我试试看

hx17660 发表于 2021-9-7 17:00

鸭子咯咯哒~ 发表于 2021-9-7 16:24
可以说下是啥程序吗我试试看

用计算器可以测试,在w10 64 下,搜索一个有11位地址的特征码即可。
页: [1] 2
查看完整版本: CE自动汇编如何写内存?