下为某个flutter开发的app的hook
app为flutter开发,知道是一个AES加密,但是相关so中方法的hook经验较少
这个app的dart的版本较早,是2.10的,找了一个开源的脚本,对代码进行了处理,获取到相对的so层的方法和地址
脚本地址:https://github.com/rscloura/Doldrums
目前较好的是那个blutter,但是他对于一些早期的版本是不支持的,所以找了这个做了处理,处理后的结果如下:
因为我知道是AES,所以直接搜索的aes,根据地址进行hook。
需要记录的点是:onEnter 的args
之前我的打印方法是,for循环,打印args里面的值,但是不知道为什么一直报错超出index
后面改为循环长度位参数的长度,没有报错,打印参数也都是通过打印原始hex数据查看:
var address = args[0];
var buffer = Memory.readByteArray(address, 500); //修改这个可以控制打印长度,下面的也需要改为同样的数值
console.log("arg[0] memory content: " + hexdump(buffer, { offset: 0, length: 500, header: true, ansi: false }));
后续根据脚本的打印结果,尝试处理,获取到解密的,字符串和iv值: