想要看下 输入值,std::string *message这个message 一直不能输出Memory.readCString 输出就是方法hexdump 输出看不懂的东西,看着不像加密的
[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
去分析std::string 里面的char*的偏移地址。一般来说操作std::string 的时候编译后的代码是去操作char*的地址,你这样去找:去在反汇编里面去寻找这个std::string 的操作,就能大概找到char*的偏移地址。
比如某个地方在对std::string 读值,那么编译后的汇编一眼就能看到真正的char*偏移。
chmlqw std::string 本质上是一个结构体,不同stl版本实现不一样。需要根据实际情况读取。下面是我常遇到的 struct std::string { char buffer[0x10]; ...
stack overflow上面有一段,就是楼上说的:https://stackoverflow.com/questions/68243063/read-value-from-frida-hooked-native-method-basic-string-parameter
相关知识:https://joellaity.com/2020/01/31/string.html
在clang编译的情况下,std::string是短字符串还是长字符串模式由整个字符串3个指针大小的数据的第一个字节的最低端比特位判断(实现保证std::string内部已分配内存的长度永远是偶数)