You的小站

大多数优秀的人不过一直在和时间赛跑

0%

前言

平时逆向apk,大部分公司还是都是使用混淆技术做为基础的。这周末,脱了腾讯最新版本的乐固的壳,正在研究。
无聊之余,想和大家聊一聊关于ApkTool这个项目,觉得工程师们写的还是很好的。
本章先大体的介绍一下ApkTool,然后以后的文章在依次的说下项目的各个模块。

问题

使用ApkTool的时候,总是有的公司插入一些干扰代码来防止ApkTool逆向,这个时候就需要我们读过ApkTool的源码,
然后手动定位问题所在解决问题了

阅读全文 »

前言

不管是平时开发,或者是阅读别人的代码关于多线程的时候。我们总会遇到这个ThreadLocal。
今天算是偶尔也和大家一起来说说Java基础的东西。
ThreadLocal从字面的意思来说其实就是一个线程局部变量,

情景

我们假想一个情景,有3个线程,A线程和B线程,还有我们的主线程。
有一个数字的对象在主线程里,然后A线程和B线程一起读取做一些操作

先画个图解释一下,再上代码

阅读全文 »

前言

上次我们分析到了快看漫画的协议部分,这次我们根据他的协议来手动写个脚本,然后执行以后,可以把他的漫画自动下载到电脑上面,
然后自动拼接图片,这样就可以实现在电脑上当成一个长图来看漫画了,没有广告,没有app的一些限制,先上图,一起看看成果

本文分析基于:快看漫画5.2.0(52000)
事先说明,这是一个系列,关于快看漫画的系列,不过在今天写看漫画这个系列的时候,博主后面的工作也还没有做呢,也希望在大家的监督之下一点一点的全部完成吧。
ps:避免广告嫌疑,以下统称kk漫画了。

为什么选择这个app?
排名靠前啊,反正就选到了,
有对别的感兴趣的同学也欢迎投稿,博主会尽自己所能,给大家带来点好玩的。

阅读全文 »

前言

上周博主周末发烧了,所以停更,烧了好几天,不得不说真的是好难受。
所以呢,希望大家也多注意注意身体。多锻炼,毕竟身体才是革命的本钱

本文分析基于:快看漫画5.2.0(52000)
事先说明,这是一个系列,关于快看漫画的系列,不过在今天写看漫画这个系列的时候,博主后面的工作也还没有做呢,也希望在大家的监督之下一点一点的全部完成吧。
ps:避免广告嫌疑,以下统称kk漫画了。

为什么选择这个app?
排名靠前啊,反正就选到了,
有对别的感兴趣的同学也欢迎投稿,博主会尽自己所能,给大家带来点好玩的。

声明

本文对kk漫画只做技术研究,不做商用,如有雷同,概不负责

终极目标

不用kk漫画官方app看漫画,逆向协议,逆向代码,

阅读全文 »

前言

说起快速排序,可能是一个很基础的排序了,不管是不是第一次听到这个词,还是听过但是没有试过,或者没有理
解过。都希望今天你读完这篇文章能够加深理解。不懂的话希望你能懂,懂了的话希望你能多一种思路来理解。

阅读全文 »

问题

最近发现自己的android机在开网易新闻,知乎等app的时候,明明自己没有杀进程,从后台返回回来的时候还是会再次显示广告,而且又正巧在知乎上看到了有人在提问,于是逆向分析。**就用知乎作为例子吧。**我用的5.4.1版本

先说结果:

不是因为杀进程、杀后台的原因造成的,这是知乎的业务逻辑。

知乎就是为了显示更多次数的广告,故意设计成这个样子的。

你启动知乎的时候如果没显示广告,那么等你切到后台再回来就显示一次。

你启动知乎的时候如果显示广告了,那么你切到后台了不杀死知乎,那么他就不显示。

开始逆向

阅读全文 »

前言

apk在混淆了之后我们通过静态分析有时候是远远不够的,就需要动态调试smali语言了,在以前我们用的都是eclipse配合apktool动态调试apk,如今android studio如此普及,我们可以用IDEA调试。

准备的工具

注意:idea推荐用14,不推荐用最新的android studio,因为本人测试,最新的android studio装上smalidea0.03后打不上断点

阅读全文 »

问题

几乎99%的软件都有登录功能,而登录这一个动作真的将我们的用户名和密码上传到了服务器吗,会不会有个人隐私呢。根据我们这个问题,我们用FaceU这个软件,逆向来看看他的登录功能到底都传了什么数据。

准备工作

首先下载faceu的APK,具体下载地址大家可以去各大应用市场,我下载的版本是v2.2.6。

需要的工具

  • apktool (拆包APK用)
  • dex2jar (反编译dex文件用)

需要的工具下载地址:https://github.com/hanhan12312/android_reverse_practice/tree/master/tools

拆包

首先,我们利用apktool拆包apk,执行命令

apktool d faceu.apk

这样在当前文件夹就得到了一个faceu的文件夹。

阅读全文 »

首先我们在app的build.gradle下面加入如下代码,以oem1为示例,

productFlavors {
        oem1 {
            manifestPlaceholders = [
                    oemIcon : "@drawable/oem1",
            ]
        }
}

以上代码 manifestPlaceholders 主要是用于在AndroidManifest.xml内可以动态的替换oem图标,我们看AndroidManifest.xml里面是如何用到这oemIcon的

<application
        android:allowBackup="true"
        android:icon="${oemIcon}"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

以上代码主要是关注android:icon="${oemIcon}" ,这个其实在gradle打包后悔自动替换成我们在build.gradle里面设置的 ‘@drawable/oem1’,这样就可以根据不同渠道包替换成不同的icon

阅读全文 »