• 移动软件逆向攻略(一)工欲善其事,必先利其器


    卷首

    逆向的目的是因为没师傅带,同时因为寂寞(挣不到钱晚上又睡不着的感受可能你懂的)。

    通过逆向学习的东西相当丰富,也可以延展出来更多,看自己觉悟了。

    我也刚开始做逆向,边学边记录,正巧有个网校想让我给个视频demo,准备最后整理一套视频教程玩玩。

    一如既往的,全文会涵盖android、ios两大体系(等我把开源的那个约炮app的ios端做出来,我来聊聊如何做全栈,哈哈哈)。

    不保证到哪一步就断了..也不保证更新速度,但肯定会写完。

    文字会很松散,不会走论文八股风,因为我要练手写小科普八卦文:)

    本文不会介绍“24模式”或者“脱壳”是什么意思,这种事情应该自己去搜索,也算是学习的一部分。

    你能学到什么

    根据我看轮子的实践,github上开源的完整项目,如仿XXX之类的,代码是经不起仔细推敲的,要想提升平台高度,最好还是看看优秀商业产品的思路。

    逆向可能花费很多的时间,但收获绝对匪浅。

    如果你想达到自己写dump工具的高度,那走的很远。

    如果你想学习大神们的思路,那逆向的学习不算太费劲。

    目前打算以鲜城app为例(因为有点想过去上班,微博上私信刘总问了问好像接收土法炼钢的游击队),和我一起从ui到网络访问,彻底了解一款商业app到底牛逼到哪里。

    想当白帽或者黑帽的可以走了,我没那个高度,我还想找师傅带呢。

    逆向思路与基础

    把IDA(后面会提到)提出来的汇编代码,或者class-dump出来几千个头文件拿来一个一个的读是很愚蠢的。

    在开始逆向之前,你首先应该问自己几个问题:

    1.我基础知识达标了么?

    2.我想学习它的什么功能实现?

    3.如果我自己来实现,我会考虑什么?

    请带着这些问题,最好找张纸写下来,逆向完了看看自己和大神的差距有多远,然后高呼一声“Wow,原来如此”。

    另外,收集对方团队的技术博客等,先读读他们的文章(PPT也行)。

    要做一个正统的马克思主义者--用理论指导实践,用实践验证理论。

    需要准备的道具

    需要哪些软件会在后面逆向过程中详细介绍,这里先大致罗列一下

    android

    一台root并安装了xposed框架的手机(主要是为了脱壳)

    类似【海马玩】这种模拟器

    android-killer

    zjdroid

    androidSDK自带工具,如adb、ddms等

    ...

    ios

    一台越狱的手机(请趁早去买一台二手,我发现好多群众已经把手机升到9.3了,我也不例外,哭着去买了台)

    class-dump【https://github.com/nygard/class-dump】

    cycript

    reveal

    ...

    建议阅读的书籍、文章、论坛

    这里先列举出来感受一下,你要觉得我动作慢可以直接跳过我的文章去读这些文章即可,书籍建议购买,不要问我网盘地址。

    论坛

    看雪【http://bbs.pediy.com/forumdisplay.php?f=158】

    吾爱破解【http://www.52pojie.cn/】

    乌云【http://www.wooyun.org/】

    ios

    基于iOS逆向工程的微信机器人【http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=450072358&idx=1&sn=3c0261de728eb062d7b3aa8c9c247c06&scene=1&srcid=0122v3QkLEZyRFpdPnSbruWy&from=singlemessage&isappinstalled=0#wechat_redirect】

    iOS安全攻防(三):使用Reveal分析他人App【http://blog.jobbole.com/58783/】

    iOS App 的逆向工程: Hacking on Lyft【https://realm.io/cn/news/conrad-kramer-reverse-engineering-ios-apps-lyft/?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io】

    逆向分析网络协议 iOS 篇【http://mp.weixin.qq.com/s?__biz=MzIwMTYzMzcwOQ==&mid=403204191&idx=1&sn=514664cc05597f8b76730cbf9f3a57f5#rd】

     iOS运行时工具-cycript【http://blog.csdn.net/sakulafly/article/details/29633627】

    《IDA Pro权威指南 (第2版)》

    《iOS应用逆向工程(第2版)》(强烈推荐)

    android

    ZjDroid工具介绍及脱壳详细示例【http://www.cnblogs.com/goodhacker/p/3961045.html】

    Xposed框架了解及教程【http://www.52pojie.cn/thread-468317-1-1.html】

    ADB编译全攻略【http://www.kanxue.com/bbs/showthread.php?p=1262521】

    Android Killer--安卓反编译工具【http://www.bkjia.com/Androidjc/929404.html】

    《android逆向菜鸟速参手册完蛋版》

    《Android软件安全与逆向分析》

    接下来的文章框架

    首先还是实战吧,实战完了再从理论上总结,我觉得这样最合适。android、ios都逆向一遍,对一个产品的整体思路把握起来更恰当一些。

    我们先谈android,再谈ios。

    另外强烈推荐:http://www.objcio.cn/这几天除了做swoole,什么都停下来了,一心一意读这里的文章

    P.S

    来App独立开发群533838427

    github:https://github.com/huijimuhe

  • 相关阅读:
    源码安装php7.2
    Docker虚拟化之<基础命令>
    Docker虚拟化之<基础理论>
    旧版Linux系统下载地址
    Linux磁盘分区,挂载
    linux crond任务调度
    Linux学习之组管理和权限管理
    mysql 外键的基本使用
    Linux指令(压缩和解压类)
    Linux指令(搜索查找类)
  • 原文地址:https://www.cnblogs.com/matoo/p/5464980.html
Copyright © 2020-2023  润新知