IDA Script

本文介绍了两个IDAPython脚本,一个是使用`dumpmemory`函数将二进制文件中的内存区域写入磁盘,另一个是通过`READREGISTER`读取RAX和RBX寄存器的值,并将其内容保存到YAML文件中。这些脚本用于调试和二进制分析目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.dump memory

script command(IDC):

static main(void)
{
  auto fp, begin, end, dexbyte;
  fp = fopen("d:/test.so", "wb");
  begin = 0xC006889B80;
  end = begin + 0x3b4
  for ( dexbyte = begin; dexbyte < end; dexbyte ++ )
      fputc(Byte(dexbyte), fp);
}

2.READ REGISTER(Condition breakpoint+python)

import ida_dbg
import idc
import re

str_addr = ida_dbg.get_reg_val("RAX")
str_len =  ida_dbg.get_reg_val("RBX")
yaml_content = idc.read_dbg_memory(str_addr, str_len).decode()
name = None
for line in yaml_content.split("\n"):
    if line.startswith("name: "):
        name = line[7:]
        break
if name is None:
    name = "unknown"

print("dump yaml {}".format(name))
name = re.sub(r'[^a-zA-Z0-9\-_]', "", name)
    
with open("e:\\store\\{}.yaml".format(name), "ab+") as file:
    file.write(yaml_content.encode())
    file.write(b"\n\n\n")
    file.flush()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值