android 取so地址,[求助]注入的so中如何获取目标进程的bss段地址

BinaryReader br = new BinaryReader(new FileStream("filename", FileMode.Open));

int length = Convert.ToInt32(br.BaseStream.Length);

byte[] data = br.ReadBytes(length);

br.Close();

int e_shoff = System.BitConverter.ToInt32(data, 0x20);

int e_shnum = System.BitConverter.ToInt16(data, 0x30);

int dynstr_addr = 0;

int dynstr_len = 0;

for (int n = 0; n < e_shnum; n++)

{

byte[] by = new byte[0x28];

Array.ConstrainedCopy(data, e_shoff + 0x28 * n, by, 0, by.Length);

if (by[0] == 0x01 && dynstr_addr == 0) //需要初始化table

{

dynstr_addr = System.BitConverter.ToInt32(by, 0x10);

dynstr_len = System.BitConverter.ToInt32(by, 0x14);

n = 0;

}

if (dynstr_addr == 0) continue;

string section_name = GetByteString(data, dynstr_addr + System.BitConverter.ToInt16(by, 0x0));

if (section_name.Contains("bss"))

{

int bssaddr=System.BitConverter.ToInt32(by, 0x10) //这个就是你要的bss段地址!

break;

}

}

c#写的解析elf文件的代码 我把你用不到的部分都精简掉了 你拿去参考 转成c++的就可以用了

elf文件格式很简单的 网上很多资料 不是什么难事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值