ios上的arm64ROP复现


#21

嗯呐:grin:,要学的东西可真多,一个一个来把,其实想去实习也是因为一个人太迷茫,不知道怎么学,还好有论坛可以相互讨论


#22

安全这个东西看兴趣吧。自己对哪块感兴趣就自学咯。


#23

嗯嗯,目前还是先打基础,多学底层


#24

讲真上面我推荐你的那本书看一下。我也是看的那本书重新巩固的基础。 虽然我到现在没腾出时间来看完


#25

嗯呐,我手速很快的在微信上找了个UK代购的,还没回我就是了,也有可能不干了:joy:


#26

ROPGadget啊,把dyld_cache下载下来后用这个去搜自己想要的gadget即可,这里按照定义的结构体偏移大小,应当用 --only “ldr | ldr | cbz | br” , 不合适就先debugserver,看看pc被劫持到了没,如果劫持到了,然后看看这条gadget处的指令操作大小和定义的结构体相符不,不相符自己再定义下


#27

今天用了一下这个,谢谢:grinning:


#28

还有一个问题就是下载下来的dyld_cache是一个data类型文件,拿ROPgadget只能用作二进制文件,这个在参数列表中也没有找到,请问一下该怎么找gadget?
已解决,链接


#29

今天打算做一个armv7s的复现,首先看ROPGadget找到的可以利用的地方:


在github上的doc看到有一个减去文件起始偏移的

第一个问题是这个文件起始偏移去哪找?
第二个问题是在arm64上为什么没有减去起始偏移?

可能问题有点蠢…

补充一下,下面是我在调试没有减去文件起始地址的时候在修改后的方法调用处打的断点分析图:


#30

就是先jtool -extract CoreFoundation,然后ROPgadget --binary dyld_shared_cache_arm64.CoreFoundation --only "ldr|ldr|cbz|br"获得这里符合要求的gadget


#31

这个已经解决,根据gadget再去修改fake_receiver 中的缓冲区数组大小,最后指向system 函数,我是想知道那个文件起始偏移去哪找


#32

这里的偏移地址就是前面extract出来的CoreFoundation其实地址啊,然后这个偏移是必须要减的,,你看到的教程其实都是已经减去的


#33

这个怎么看啊,起始地址,extract 出来之后在哪看


#34

比如拖到IDA,就可以看到文件的起始地址,当然最方便的就是直接拖到MachOview中,点击RVA就是地址


#35


#36

回复点错人了= =,你看我图,就点击RVA第一个地址就是起始地址


#37

简直吐血…忘记了看起始地址,感谢 :sweat_smile:
Machoview 更方便学到了


#38

没事。。。


#39

太久不用这种看偏移了…lldb 黑科技一键式…


#40

Mac/iOS环境太复杂了,讨论的人也少,可以加个友链以后互相学习吧:joy:
https://gloxec.github.io