归档: 2017/2

共 47 篇文章

Android安全之应用防dex2jar原理及实现

最近在看某外卖平台的代码,发现某外卖平台最新版本版本无法正常的通过dex2jar工具将dex转换出Java源代码,在转换过程中会提示出错,如图:

Read More

Android安全之APP去广告

一、工具介绍

更多反编译工具可查看:Uncle Chen—Android反编译技术总结

二、去除应用开发助手的广告

CodeKK公众号在17年初推出了一个应用开发助手。V1.0版本是有广告版本的,下面以这个版本为例,简单看下去广告过程。它的后续的V1.1.0和V1.2.0已经去除了广告功能。

2.1、反编译

1
apktool.sh d -f ./dev-tools.apk


2.2、注释广告代码

这里可以先用dex2jar转jar后查看下源码,会发现使用的是Google AdMob作为广告平台,简单看下代码可以发现在主页面activty_main.xml中包含广告视图的布局文件。所以只需要找到ad_layout.xml将其 android:visibility="gone"属性设置成gone就可以了。

2.3、重打包

这里重打包的过程可能会遇到一些错误,不过认真查看日志并结合Google都是可以找到解决方案的,这里暂且不表。使用apktool b命令,生成的apk默认路径为/dist路径下

1
apktool.sh b ./dev-tools

2.4、制作一个名为hackapk.keystore的证书,并重新签名应用

1
2
3
4
5
制作证书:
keytool -genkey -keystore hackapk.keystore -keyalg RSA -validity 10000 -alias hackapk

签名:
jarsigner -verbose -keystore hackapk.keystore -signedjar dev-tools-no-ads.apk ./dev-tools/dist/dev-tools.apk hackapk

详细的参数可以参考:
APK签名之keytool生成keystore和jarsigner签名apk

2.5、安装

1
adb install -r dev-tools-no-ads.apk

有广告版本

无广告版本

2.6、下载去广告版本的应用开发助手

三、反编译脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/sh
workDir=./
if [ "$2" ]
then
mkdir $2
workDir=./$2/
fi

echo $workDir
name=`basename $1 .apk`
zipPath=$workDir$name.zip

##apkTool反编译
smaliDir=$workDir$name@smali
apktool.sh d -f $1 -o $smaliDir

## 解压缩,使用dex2jar处理
unzipDir=$workDir$name@unzip
cp $1 $zipPath
unzip $zipPath -d $unzipDir

d2j-dex2jar.sh -f $unzipDir/classes.dex -o ${workDir}dex2jar.jar
d2j-dex2jar.sh -f $unzipDir/classes2.dex -o ${workDir}dex2jar2.jar
d2j-dex2jar.sh -f $unzipDir/classes3.dex -o ${workDir}dex2jar3.jar
open $workDir

将上述内容保存到本地hack.sh文件中,使用下面的命令就会把apktool和dex2jar的结果输出到meipu这个目录中,这样就不需要每次收到敲命令喽,只要知道需要反编译的apk和输出的文件夹名称就可以~

./hack.sh ./美铺_1487845975713.apk meipu

转载请标明出处病已blog https://ivonhoe.github.io/