从零开始实现微信抓取

本篇内容主要从实现微信抓取来讲述如何在Android平台来逆向APP。这篇文章主要面向刚接触逆向工程,同时又对逆向有迫切实际需求的同学,让其少走弯路,有迹可循;避免篇幅太长,内容过于初级,本文不会从gi的使用t,linux基本命令一一赘述。

如有表述不当或纰漏之处,欢迎指正。

背景介绍

一年前,在工作中,有做数据抓取的同学找到我问,能不能帮他们实现从客户端来抓取微信的消息,甚至是帮他们实现一些特定的功能需求。秉着乐善好施的为人基本准则,Zoe当然是一口答应,此等小事,不在话下,下周一过来拿PoC方案。

既然夸下海口,那Zoe也只能周末加班加点,来研究微信的逆向工作,还在Android的逆向在当下也算趋于成熟,有不少可用的方案和框架,再加上抓取同学的需求也只是集中在数据的获取,所以几天的时间还是足够充裕的。

由于这篇文章Zoe主要是从实际操作出发,所以不会提前介绍「Reverse Engineering」相关的知识,不过但凡涉及基础知识点的地方,Zoe都会一一点明,还忘各位同学及时补充相关知识。

确定安装包

这里很简单,我们需要确定一个版本的安装包来做为我们研究的对象,或者说是作为以后使用的主要对象。其原因是Android的资源在不同版本中是有不同的ID,大多情况下我们需要使用这些ID来确定我们要使用的资源,比如按键的点击等等。

这里,我们第一考虑的不是其对逆向工作的难易程度,而是先确认所选的安装包能不能满足业务的基本使用,以及会不会存在其他风险。比如选了一个很老的微信版本,他根本就不支持扫描二维码,那我们抓取同学的业务需求就跟本没法满足。

另外,我们还需要选择当下最新的版本,主要可避免升级提示带来的麻烦,同时最大的原因可以增加开发工作的存活有效期,越老的版本,其不能正常正常使用的风险也就越高。

这里微信以6.5.14版本为例来展开后续工作。

脱壳/解压APK

一般情况下我们的APK会被加壳,这是软件安全的一般手段,其目的就是让软件的真是执行代码不易直接被看到。这一这里是不“易”而不是不“能”,也就说,加壳并不能完全阻止其他人的恶意行为。

我们使用apktool工具讲APK解压并转换成smali代码,smali是一种JVM运行的机器码,这也将是我们之后工作的主要研究对象。

使用如下命令将APK解压,很幸运微信这个版本并没有加壳,当然了之前的版本也没有,


待上述命令执行完毕,我们得到如下结构的代码目录,


这基本等同于微信的源码了,我们的主要工作也将从此处展开。

从需求还是分析着手点

目标函数的𨈖为方法

Hook指定函数

添加辅助逻辑

后记

参考资料

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,098评论 25 707
  • 分析APK文件 要分析APK文件,首先要了解APK打包过程 打包资源文件(aapt)检查Manifest合法性将r...
    黄怡菲阅读 16,513评论 1 19
  • 一、前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: ...
    JiangWei_App阅读 3,664评论 2 29
  • 一个抗日老兵,由于战争时头部负伤而间歇性精神失常,当他再一次漂泊到故乡时,已是耄耋之年。 他来到横店,抗日剧的拍摄...
    汴京遗梦阅读 2,538评论 0 0
  • 一、中秋节 丙子年八月十五日,是夜,月明,风从南 起,大兴云雾,逐主东方。 这是丫头离去后的第一个中秋节,红...
    涂黎山主阅读 1,931评论 1 9