ios動態修改指令
最近逆向個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:
暫時不弄了,沒弄成功,老是連結報錯。。。。換個其他方向