hook 读写内存数据

对string字符串,可能是加密的,可以通过直接hook 加载的内存数据来读取解密状态的字符串

1
2
3
4
5
6
7
8
9
读取内存字符串数据

function hookTest7() {
var soAddr = Module.findBaseAddress("libxiaojianbang.so");
console.log(soAddr);
if(soAddr != NULL){
console.log(soAddr.add(0x2764).readCString())
}
}

写内存出现了报错,还未解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
function hexToBytes(str) {
var pos = 0;
var len = str.length;
if (len % 2 != 0) {
return null;
}
len /= 2;
var hexA = new Array();
for (var i = 0; i < len; i++) {
var s = str.substr(pos, 2);
var v = parseInt(s, 16);
hexA.push(v);
pos += 2;
}
return hexA;
}

function stringToBytes(str) {
var ch, st, re = [];
for (var i = 0; i < str.length; i++ ) {
ch = str.charCodeAt(i);
st = [];
do {
st.push( ch & 0xFF );
ch = ch >> 8;
}
while ( ch );
re = re.concat( st.reverse() );
}
return re;
}
function hookTest7(){
var soAddr = Module.findBaseAddress("libxiaojianbang.so");
console.log(soAddr);
if(soAddr != null){
//console.log(soAddr.add(0x2C00).readCString());
//console.log(hexdump(soAddr.add(0x2C00))); //读取指定地址的字符串

//var strByte = soAddr.add(0x2C00).readByteArray(16); //读内存
//console.log(strByte);

//soAddr.add(0x2C00).writeByteArray(stringToBytes("xiaojianbang")); //写内存
//console.log(hexdump(soAddr.add(0x2C00))); //dump指定内存

//var bytes = Module.readByteArray(soAddr.add(0x2C00), 16);
//console.log(bytes);

}
}
相关文章
评论
分享
  • scrapy 框架学习

    入坑scrapy在自己学习了一段时间爬虫之后(其实也就是了解了下爬虫),我就迫不及待的想学习心得东西了。 今天就入手scrapy框架 官方文档 安装安装上基本没啥大问题,缺啥补啥就行 这里我选择使用Python虚拟环境virtuale...

    scrapy 框架学习
  • 某app加密算法分析

    Hey, password is required here. a7fbab8565cf6bbb84f5578e356b215e1a835de7a145bd926381e35cc45256f4...

    某app加密算法分析
  • jni函数hook

    jni函数hook(计算 地址方式)12345678910111213141516171819202122232425262728293031323334353637function hookTest9() { Jav...

    jni函数hook
  • Hook jni 主动调用

    Hook jni 主动调用要对hellofromc 进行主动调用,修改返回值,但是这里不能直接通过replace去修改返回值,而是要通过newstringutf 去修改返回值。 1234567891011121314151617181...

    Hook jni 主动调用
  • Hook 获取指针参数的返回值

    Hook 获取指针参数的返回值在c语言中,一般都会以指针传递返回的值 ,没有return 或者return为true hook sub_750 打印参数和输出 12345678910111213141516171819functio...

    Hook 获取指针参数的返回值
  • Hook dlopen

    hook dlopen在刚开始hook 我们必须使得app加载so 才能hook, 我们可以hookdlopen 获取到so在那加载,在高版本中有一些so会走android_dlopen_ext 1234567891011121314...

    Hook dlopen
  • Hook 导出函数和修改函数参数返回值

    Hook 导出函数123456789101112131415161718192021222324252627282930// hook 导出函数function hookTest1() { var addAddr =...

    Hook 导出函数和修改函数参数返回值
  • Hook so 导入导出表

    hook so 导入导出表启动frida打开两个cmd 窗口 12345第一个cmd窗口adb shellsucd /data/local/tmp./fx // 这个是frida-server-12.8.14-android-x86...

    Hook so 导入导出表
  • Hook Java层通杀

    Hook 通杀Hook 普通方法和修改函数参数返回值fradaserver 是手机端的, android低版本 frida 尽量低版本 fridaserver版本要与frida库版本一致 不同平台用不同fridaserver 不要和...

    Hook Java层通杀
  • 最右登录协议分析

    Hey, password is required here. 184ec4c94e65a4b619ea732bd39a29aaf452514072ddb6dff084e29ad47fa9af...

    最右登录协议分析
Please check the comment setting in config.yml of hexo-theme-Annie!