Android反编译之36kr.app

原创 2017年05月16日 15:21:09

背景

   昨天做项目的时候因为没有数据源,就想着用jsoup去爬点数据用用(别问我为什么不用python,因为不会)。首选爬的对象就是36kr。但是这个网站做了脚本处理,用script去动态加载页面。毕竟不是咱熟悉的领域,算他牛逼,咱爬不了他的网站,那就直接去反编译的app,app你总得给出获取数据的链接了吧。我和你用一样的数据一样的链接行不行?
   想着以前也没有写过反编译这个方面的东西,想着就写点,抛钻引玉。

只是学术研究,并无恶意,希望36kr的大哥别和我一般见识。

准备工具

   · Apk反编译的集成工具给大家推荐个好用的。点击下载
   · 36kr的app for Android。点击下载

开始


Step One:

   打开apk的反编译工具:

反编译工具

   接着只要选择需要反编译的apk,选择反编译后的文档位置,编译选项选择all。

编译后

   编译完成后出现一个文件夹以及一个jar包。文件夹里面是36krapp的工程结构,而我们需要用到的是jar包。

Step Two:

   接着打开反编译工具里面的jd-gui.exe这个程序。这个程序可以反编译jar文件。打开之后点击File->Open File 选择刚刚得到的jar包。

打开jar包

我们看到了经过代码混淆之后的工程目录。但是无论代码再怎么混淆,都躲不过有心人的查找。

  1. 从这个apk的名字我们都可以看出来36kr的主目录在那里。com.android36kr。所以主目录一定在com这个包下。但是打开com这个包才是最头疼的。
    工程结构

  2. 是不是感觉有点难以动手?还记不记得前面说的 com.android36kr?别急,打开android36kr这个包。

36kr

我们可以看到a,app,login这三个包。分析一下,a包做了混淆。app是软件的主目录包,login是登陆功能包。为什么要对a包做混淆?难道里面有着什么重要的东西?(好吧,我承认我说出这句话是因为整个工程的所有文件我的看了一遍。。。。)节省你们的时间,我们直接查看a包。

  1. 为了节省大家的时间,我也不是写悬疑小说的作家,我告诉你们他们的大部分请求链接都是放在com.android36kr.a.b.a.b.class这个文件里面。

这里写图片描述

这个b包下也还是有很多其他的请求链接的。但是我们着重来看b.class。因为我的目的只是想那我的数据,其他的我不作非分之想。接下来打开b.class
这里写图片描述

在这个类中我找到了我要的请求方法newsflash这是36kr的一个快讯的数据接口。

napi/newsflash这个就是链接后缀。但是前缀呢?自然就是http://36kr.com

猜测准不准确,验一验就知道了。点击实验。(为了防止以后测试过期,我在这里加一条测试时间 2017年5月16日 15:10:09)

这里写图片描述

那道一大堆数据的我也是欣喜若狂,但是我不喜欢这些乱七八糟的数据,那是程序看的,不是人。我只看到了json中有一个字段limit:10。什么意思?你每次只给我10条?难道我的app就只能给别人看10条?

我们再回去看看源码中的api 发现了一个字段per_page
这里写图片描述

不用想肯定有猫腻。链接是get方式请求的,那么我们尝试在连接中加入这个字段,per_page=20吧。也给出一条验证链接 per_page=20

这里写图片描述

在一坨json数据的底部,我们再次看到了limit:20这个字段。那么就是说我们只要凭这个per_page就可以获取更多的数据。

到此打住

   人家的东西就看到这里好了,有兴趣的朋友可以自己去发掘,但是我要声明与本人无关。手痒的我发现我连json的格式化类我的省了。

这里写图片描述

借来用用

最后祝大家玩的开心。

版权声明:本文为博主原创文章,未经博主允许不得转载。

android 反编译之dex2jar

首先要下载工具:http://download.csdn.net/download/ysl_ali/10044728 第一步:下载该zip包,然后解压,得到dex2jar-2.0和jd-gui两个文...
  • YSL_ALI
  • YSL_ALI
  • 2017年10月30日 13:32
  • 98

Android反编译工具与技巧总结

相关工具: apktool java -jar apktool.jar ssss.apk 1、反编译dex -> smali文件 2、res文件夹可读 3、AndroidManifest.x...
  • AuthorK
  • AuthorK
  • 2017年10月25日 17:03
  • 1008

Android逆向实例笔记—初入so并还原分析出代码

很久没有出基础教程了,这里做一个鬼哥的so的作业吧。很基础的东西,算是教学帖子吧。大牛路过吧。这里感谢鬼哥的apk和无名侠的软件 首先我们打开鬼哥提供的apk看看。 其余没有发现什么,我们直接AK...
  • qq_24349189
  • qq_24349189
  • 2016年10月29日 23:40
  • 5014

手把手教你搞懂 Android 反编译

我们知道,Android的程序打包后会生成一个APK文件,这个文件可以直接安装到任何Android手机上,因此,反编译就是对这个APK进行反编译。Android的反编译分成两个部分: 一个是对代...
  • yuanyuan_815
  • yuanyuan_815
  • 2016年07月04日 10:29
  • 5604

android 防止反编译的若干方法

第一种方式:混淆策略 混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能,现在混淆策略一般有两种: ...
  • xiangzhihong8
  • xiangzhihong8
  • 2016年05月31日 11:05
  • 2555

Android studio 代码混淆、分渠道打包和反编译

Android studio 是googol正式推出代替eclipse的IDE 。 核心文件是build.gradle,可以配置 maven自动代码库 ,并任意修改工程包名   一、    混淆 ...
  • moonljt521
  • moonljt521
  • 2015年11月22日 16:18
  • 1553

Android反编译-逆天的反编译

Jar包的反编译: Java的世界是透明的,当编译java程序的时候,是将java源文件à.class文件,java虚拟机去执行这些字节码从而得到运行java程序的目的。那么从.class文件能不能得...
  • Main_Stage
  • Main_Stage
  • 2014年06月10日 15:31
  • 2501

Android打包系列 JAR反编译修改后重新打包

在工作中,有些第三方JAR不能满足我们的特殊需求,所以经常会有需要修改JAR的情况,这里给出基本的修改思路,然后再辅以实例。 思路 使用反编译工具JD-GUI)打开要修改的ja...
  • congqingbin
  • congqingbin
  • 2016年12月18日 16:17
  • 997

Android之反编译技术

我们都知道,Android程序打完包之后得到的是一个APK文件,这个文件是可以直接安装到任何Android手机上的,我们反编译其实也就是对这个APK文件进行反编译。Android的反编译主要又分为两个...
  • Lingbulei
  • Lingbulei
  • 2018年01月08日 14:43
  • 217

Android Studio 混淆,多渠道打包,反编译 使用

混淆简单配置build.gradle的android节点下添加:buildTypes { release { minifyEnabled true ...
  • Gold_brick
  • Gold_brick
  • 2016年10月10日 17:17
  • 1568
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android反编译之36kr.app
举报原因:
原因补充:

(最多只允许输入30个字)