移动软件逆向攻略(一)工欲善其事,必先利其器
卷首
逆向的目的是因为没师傅带,同时因为寂寞(挣不到钱晚上又睡不着的感受可能你懂的)。
通过逆向学习的东西相当丰富,也可以延展出来更多,看自己觉悟了。
我也刚开始做逆向,边学边记录,正巧有个网校想让我给个视频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