逆向之前的事儿

讲道理,逆向这玩意就是学习曲线非常陡峭,自以为写了很多年CXX,当然都是后端的那些乱七八糟的东西,主要是做存储相关的,闲的没事儿干了琢磨琢磨逆向,看看能不能对后台的一些在线Debug找到一些灵感,目前就在琢磨怎么把Frida弄到后台实现热修复,毕竟没事儿老看日志查问题太无聊了,

捣鼓了一阵,发现APP这玩意其实就是一个异步网络+UI框架,所以真的不要眼高手低,先把IOS开发玩利索了,然后把Async这玩意的内涵彻底领会了,ARM汇编其实用到的也就是看看JMP 点,这些东西LLDB 都可以搞定的,然后就是Runtime,请熟练掌握IOS的Sandbox和Runtime,然后先把Hook写利索了,Xcode能做不少的事情,这些都做利索了,再说那些什么伪造啊,算法逆向啊这些高级应用,当然最高级的是研究那个什么IOS虚拟机,然后就是沉心静气,一步一步踏实来搞,收获还是不少的

1 Like

确实确实确实确实确实

当然最高级的是研究那个什么IOS虚拟机

iOS上有法虚拟机吗?(mmap两次那种有限制的骚操作除外)

我当然是不知道啦,不过听说最牛逼的玩法是造虚拟机

1 Like

反正在我的认知内,在生产环境里是不能。
我指的是那种JIT,来一段opcode,直接放到内存里,然后*func()执行。
因为iOS没法创建可写执行内存。

Corellium?

有虚拟机啊 ,最近就在倒腾一个 iOS上的虚拟机
人家最开始版本,还有符号

这个excute最后是怎么执行的呢?

switch case

对 opcode 进行判断,然后模拟操作
比如:
加法操作,
减法操作
存贮操作
加载操作
执行系统函数操作。。。等等

一般这个 VM 环境 带一个 堆栈,一个外部函数的链接表 然后就是 此虚拟机环境的 可执行代码