Easy Use: frida --codeshare axhlzy/fridadebugger -U -f ${PackageName}
先执行一下根目录的 prepare.ps1 准备一下环境 然后正常附加即可
- 在arm64实现了基本的单个断点的步过和继续
-
b(functionaddress)
-
si() step ins 步进
-
ni() next ins 步过 ( todo ... )
-
n(mPtr) nop
-
c() continue 继续
-
dism(mPtr) 给定位置反汇编
idea: 现在已知的问题是stalker trace出来的汇编未必和原来的汇编完全对的上 ( 所以很多时候看起来还是有点问题的 ) 所以新的思路考虑 使用qbdi frida signal 的组合,借用qbdi的单步指令trace,然后把信号下在每次指令执行的位置以达到单步执行的效果 ... todo ... 考虑到frida脚本就脚本吧,每次都要附带一个so的push多麻烦的,所以暂时是这么考虑优化: 将编译出来的so文件base64编码在js脚本中,运行时解出来再使用frida的load将动态库加载进去
todo: 平栈解析 ...
每一步的执行都将被记录 这些记录可以用来后续进行时间无关回溯,回退到任何状态 或者是筛选过滤,分析出函数调用栈以及执行流程
后续会继续完善功能,有什么好的想法或者是建议可以去提出issue,或者pr,欢迎大伙儿一起来完善项目
![bt](https://private-user-images.githubusercontent.com/20512058/374916664-9396121a-d09b-4b1b-8c35-0a1046308793.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MTAwNjUsIm5iZiI6MTczOTYwOTc2NSwicGF0aCI6Ii8yMDUxMjA1OC8zNzQ5MTY2NjQtOTM5NjEyMWEtZDA5Yi00YjFiLThjMzUtMGExMDQ2MzA4NzkzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA4NTYwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc2MGY3ZjQxZWQyYjI2MDkyYTE5OWM2YzAyZDM4NDVkMDRhMGQxMDE1MjQxMzM2N2U0N2FiYzdkNTMyNmZlMDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.aa1dwJKIVICUsXgzFAfT9eQb2G7Sr7niKBf4Uw59uzQ)
![si](https://private-user-images.githubusercontent.com/20512058/374916753-cf4bf15d-2629-4c5d-a425-df87c19bbb80.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2MTAwNjUsIm5iZiI6MTczOTYwOTc2NSwicGF0aCI6Ii8yMDUxMjA1OC8zNzQ5MTY3NTMtY2Y0YmYxNWQtMjYyOS00YzVkLWE0MjUtZGY4N2MxOWJiYjgwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE1VDA4NTYwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY4YzMyMmQ5OGI1NWZkNDkyODE0ZmVlYzI3MDI3OGU2Mzk5MTViMTY3YTU3OGI5NGU5MmJhZDYzOGZhMDI0NmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.a1cycs2vIajBKqgcS9wFFmx1pVpS0OzEN3g24TdUjG4)