最近逆向个app,不想直接用ida修改app的指令,而是在执行过程中,用插件动态修改app的指令。经大神指点,大致是用mach_vm_protect 和mach_vm_write来操作,也在iosre.com上找到了类似源码,把代码放入了theos中,但每次执行make后,总是链接阶段报错:ld: symbol(s) not found for architecture armv7 似乎是找不到mach_vm_write 适合armv7的库文件。搞了好久都不行。
无奈,再来研究下源码的编译条件。
源码帖子的地址:
帖子1: http://bbs.iosre.com/t/write-a-simple-universal-memory-editor-game-trainer-on-osx-ios-from-scratch/115 (再次向大神致敬)
帖子2: http://bbs.iosre.com/t/mach-vm-write-returns-os-kern-invalid-address/6761 (似乎是在上面的帖子基础上,解决了ios9 的ASLR的问题。我的疑问来了,ASLR在ios4.3开始就有了,那基本上现有的iphone都不能用帖子1的源码了?)
帖子1中:
iOS: clang -isysroot `xcrun --sdk iphoneos --show-sdk-path` -arch armv7 -arch arm64 -framework Foundation -o HippocampHairSalon_iOS main.m
1、clang:比gcc快,内存占用小,用llvm优化代码。
2、-isysroot:
暂时不弄了,没弄成功,老是链接报错。。。。换个其他方向
原文地址:https://www.cnblogs.com/iamonion/p/9977403.html