逆向基础知识及工具

最近很多人上来就让我教他们如何破解,如何做 一个黑客,让我一时无所适从,不知道如何回答.希望写这篇文章可以劝退一些头脑发热一心想做黑客的人. 没有做过正向开发的人,很难做逆向开发,因为逆向基本是猜开发者正向开发,你不知道正向思路,怎么做逆向呢,所以这里先列举一些逆向开发所需要的知识和工具,如果这些基础的东西你都大概了解或者明白了,接着我们再做逆向破解.


逆向基础知识

  • 有iOS编程基础

    • 最好开发过几个真正的项目,真正的被现实捶打过
  • 了解iOS的运行原理

    • 比如Runtime等
  • 有C/C++的语法基础

    • 这点大学里面一般都学习过C++,忘记了可以翻出来当时的书看看,虽然晦涩难懂,也不需要你全部记住

逆向工具

按照逆向的步骤我们一步一步看需要什么样的工具:

  • 砸壳工具 dumpdecrypted

    砸壳工具,正常情况下我们在App Store下载的ipa都是加密过的,无法直接操作.所以需要一个砸壳的过程,dumpdecrypted其原理是让app预先加载一个解密的dumpdecrypted.dylib,然后在程序运行后,将代码动态解密,最后在内存中dump出来整个程序.实际上各种XX助手之类的应用都有砸壳好的越狱应用,不需要自己动手.

  • 界面分析工具 Cycript、Reveal

    Reveal能够将App界面的视图层次结构实时的展示出来,以便于调试分析,也就是你想hook别人的东西,你需要别人家里的布局.这个工具是收费的,30天免费试用.

    Screen shot of Reveal
  • 代码分析工具 MachOView、class-dump、Hopper Disassembler、ida

    知道了别人家的布局,就需要知道别人家的东西内部放了哪些东西,这些工具可以看到内部的class和方法名,变量等

    MachOView 如何用请百度或者直接点击链接看github官方说明

image.png

class-dump顾名思义,它的作用就是把Mach-O文件的class信息给dump出来(把类信息给导出来),生成对应的.h头文件,和MachOView功能类似.

  • 动态调试 LLDB

  • 代码编写
    iOSOpenDev
    这个东西挺难安装的,我安装失败了无数次,哪一步成功了,也忘记了.

    image.png

  • 动态库注入及签名工具

    动态库注入就用我在开源基础上改的一个吧. 下载地址

    image.png

每一个步骤和环境都是看似简单,实际上无数个坑,工具的安装和使用请自行百度,这里仅仅提供一下介绍,今天太累了,改天继续写.

参考
https://www.jianshu.com/p/0a03c477c637
https://pandara.xyz/2016/08/14/fake_wechat_location2/
https://gitee.com/dongdongxiaotaozi/iOSAppHook

你可能感兴趣的:(逆向基础知识及工具)