MASTG-TECH-0065: Engenharia Reversa de Aplicativos iOS
Engenharia Reversa no iOS
A engenharia reversa no iOS é uma questão mista. Por um lado, aplicativos programados em Objective-C e Swift podem ser desmontados de forma satisfatória. No Objective-C, os métodos de objeto são chamados por meio de ponteiros de função dinâmicos chamados "selectors", que são resolvidos por nome durante a execução. A vantagem da resolução de nomes em tempo de execução é que esses nomes precisam permanecer intactos no binário final, tornando a desmontagem mais legível. Infelizmente, isso também significa que não há referências cruzadas diretas entre métodos disponíveis no desmontador e a construção de um grafo de fluxo é desafiadora.
Referências¶
- [#miller] - Charlie Miller, Dino Dai Zovi. The iOS Hacker's Handbook. Wiley, 2012 - https://www.wiley.com/en-us/iOS+Hacker%27s+Handbook-p-9781118204122
- [#levin] Jonathan Levin. Mac OS X and iOS Internals: To the Apple's Core. Wiley, 2013 - http://newosxbook.com/MOXiI.pdf