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

卷首

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

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

我也刚开始做逆向,边学边记录,正巧有个网校想让我给个视频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

原文地址:https://www.cnblogs.com/matoo/p/5464980.html