-
Notifications
You must be signed in to change notification settings - Fork 103
注入调试器-基于特征码
#226
涉及以下两个方面
- 特征码扫描算法
- 特征码生成算法
特征码扫描算法
使用gum_memory_scan
使用十六进制匹配二进制,比如 af 9a 00 ?a f? ?? f2
? 用以匹配任意字符
特征码生成算法
- 得到函数表 =
remotedebug的导入表 +launch所需函数表(扫描launch只读字符串) - 使用frida-code,api将函数重定位到另一个地方,两者比较,交集为特征码,差集是填充位
- 过滤指令重定位集,生成函数特征码
不同版本的编译器将会产生不同的指令序列,没有任何兼容性
特征码配置
"functions":{ // 函数的特征码 "function_name":{ "start_offset":0, //搜索模块的起始地址子节偏移 "end_offset":0, // 搜索模块的结束地址子节偏移 "pattern":"ff ?? ff", //特征码 "pattern_offset":0, //函数相对特征码子节偏移 "hit_offset":0 //多个特征码匹配下确定是哪个 } }
All reactions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment