a883500 发表于 2021-11-24 21:45

frida hook读内存时读不完整

本帖最后由 a883500 于 2021-11-24 21:49 编辑

新人发帖,传不上图片~~~~
用frida HOOK luajit脚本时
用console.log(hexdump(args)),打印结果如下,文件内容是完整的
000000001b 4c 4a 01 02 70 00 01 04 00 06 00 0a 10 02 00.LJ..p..........
0000001000 37 01 01 00 34 03 02 00 37 03 03 03 37 03 04.7...4...7...7..
0000002003 3e 01 03 02 3a 01 00 00 29 01 00 00 3a 01 05.>...:...)...:..
0000003000 47 00 01 00 18 56 69 70 52 65 62 61 74 65 44.G....VipRebateD
0000004065 74 61 69 6c 49 6e 66 6f 0d 4d 6f 64 65 6c 56etailInfo.ModelV
0000005049 50 0a 4d 6f 64 65 6c 13 56 69 65 77 4d 6f 64IP.Model.ViewMod
0000006065 6c 4e 61 6d 65 73 0d 47 65 74 4d 6f 64 65 6celNames.GetModel
000000700a 6d 6f 64 65 6c 95 03 00 03 07 00 0c 00 35 34.model........54
0000008003 00 00 37 03 01 03 05 01 03 00 54 03 0b 80 10...7.......T....
0000009004 00 00 37 03 02 00 3e 03 02 01 37 03 03 00 37...7...>...7...7
000000a003 04 03 0a 03 00 00 54 03 29 80 10 04 00 00 37.......T.).....7
000000b003 05 00 3e 03 02 01 54 03 25 80 34 03 00 00 37...>...T.%.4...7
000000c003 06 03 05 01 03 00 54 03 04 80 10 04 00 00 37.......T.......7
000000d003 05 00 3e 03 02 01 54 03 1d 80 34 03 00 00 37...>...T...4...7
000000e003 07 03 05 01 03 00 54 03 0b 80 37 03 08 00 0a.......T...7....
000000f003 00 00 54 03 16 80 37 03 08 00 10 04 03 00 37...T...7.......7
如果用下面这两个方法就只打印:LJp
console.log(Memory.readUtf8String(args));
console.log(Memory.readCString(args));

这是个luajit的脚本,我想弄出完整的脚本,请问大佬们怎么实现呢?


举个例子:这是一个luajit加密的文件
内容:LJ  =K 
roomInfo?   9B9 B9 B
是不是在读内存的时候空格字符比较特殊识别不出来,所以读取就中断了

laos 发表于 2021-11-25 20:54

如果没指定长度, 读字符串默认是以\0作为结束符

a883500 发表于 2021-11-26 00:00

解决了,应该用readByteArray方法

a44334512 发表于 2022-1-23 13:53

楼主,readByteArray是否会持续占用APP内存,最终导致APP闪退呢
页: [1]
查看完整版本: frida hook读内存时读不完整