逆向教程 frida读写内存

Frida 内存读写 是利用 Frida 这个动态插桩工具,在运行时对目标进程的内存进行 读取和修改 的操作。它允许你像“上帝模式”一样查看或篡改程序内部的数据和代码,常用于逆向分析、调试、游戏破解、安全测试等场景。

.读写数据

流程图

[开始]

[alloc addr_int] → [writeInt(1234)]

[alloc addr_double] → [writeDouble(1234.5678)]

[alloc addr_str] → [readUtf8String] → [writeUtf8String(“ni hao”)] → [read again]

[打印各变量值]

[结束]

代码

var addr_int=Memory.alloc(8)
addr_int.writeInt(1234)
var addr_double=Memory.alloc(8)
addr_double.writeDouble(1234.5678)
console.log("addr",hexdump(addr_str))
console.log("addr utf8 content",addr_str.readUtf8String())
addr_str.writeUtf8String("ni hao")
console.log("addr",hexdump(addr_str))
console.log("addr utf8 content",addr_str.readUtf8String())
console.log("------")
console.log("addr_int",hexdump( addr_int))
console.log("addr_int",addr_int.readInt())
addr_int.writeInt(432)
console.log("addr_int",hexdump( addr_int))
console.log("addr_int",addr_int.readInt())
console.log("------")
//这里存储方式不是以字节 是以另外的方式
console.log("addr_double",hexdump( addr_double))
console.log("addr_double",addr_double.readDouble())
console.log("------")

.读写代码

流程图

[开始]

[计算代码地址]

[查看原始指令(hexdump + parse)]

[修改内存权限为 rwx]

[写入新机器码(如替换指令)]

[验证修改结果]

[结束]

代码

//读写指令
//ARM指令转换网址https://armconverter.com/
var addr_code=target_so.add(0x1684)
console.log('addr_code',hexdump(addr_code))
var code_str= Instruction.parse(addr_code).toString()
console.log('code_str',code_str)
Memory.protect(ptr(addr_code),4,"rwx");
////手动写代码 将add w0,w8,w9 修改为sub w0,w8,w9
//注意后面的代码
// addr_code.writeByteArray(hexToBytes("0001094B"))
// console.log('addr_code',hexdump(addr_code))
// var code_str= Instruction.parse(addr_code).toString()
// console.log('code_str',code_str)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值