首页
论坛
课程
招聘
[原创]Android应用破解之SSHDroid 去广告
2011-11-12 19:00 12499

[原创]Android应用破解之SSHDroid 去广告

2011-11-12 19:00
12499
SSHDroid这个软件是用来在android手机上架设ssh服务器的,这个小应用有两个版本一个免费版,一个pro版。区别就是有无广告。

发现装了Adfree android这个应用之后,SSHDroid就不干活了,说ad被block了,然后就只能选择“退出”或者“购买付费版”。
这个,多少让我有些不爽啊。  

如图:提示广告被屏蔽,只能点“退出”或者使用收费版(adfree version):


有了想暴破它的想法了~~于是操刀把它菊花暴了,爽了一把。

在linux下面那个adb硬是没有运行起来,运行以后没有任何输出,不知何故。先在win下把这app搞定吧。
用到的暴菊工具:
adb.rar (从网上下载的,里面有adb及其依赖的库,我懒得装android sdk了。。。)
Auto-sign(WIN7系统).rar 用于给app签名的,随便在网上搜索到的
apktool1.4.1.tar.bz2 在google项目:http://code.google.com/p/android-apktool/
apktool-install-windows-r04-brut1.tar.bz2
EmEditor (我机子上一直装着呢)


先说下adfree android这个软件屏蔽广告的原理,其实这个软件就是修改andorid /system/etc/hosts 这个文件,把ad相关域名的ip指向127.0.0.1来达到屏蔽广告的目的。

爪机注意开启调试。

从机器里把程序拖出来(不知道app文件名就先用ls找一下):
adb pull /data/app/berserker.android.apps.sshdroid-1.apk


然后用apktool对其进行解压缩和反汇编
apktool d  berserker.android.apps.sshdroid-1.apk reversing


进入到reversing目录,里面有露出来的菊花(反汇编出来的东东):
cd reversing

下面是正式暴菊了。
zhiwei.li给出了三种方案来搞定ad:
1. 对com.google.ads打补丁. 这将是一个比较通用的方法,对那些使用到com.google.ads的所有应用都有效.
2. 对 app 打补丁. 找到此app调用com.google.ads的地方
3. 对资源文件进行补丁,让广告资源不可见.


我这里采用的是2和3相结合的方法,算是比较彻底。
进入smali目录,用emeditor随便打开一个.smali文件,在此目录及其子目录搜索 /etc/hosts
共找到两个:
smali\berserker\android\a\a.smali(59)
smali\berserker\android\a\f.smali(227)


打开反汇编的文件一看,前一个是定义的检测hosts的类。很快可以发现:
const-string v3, "admob"

这个程序是投放的admob广告。
 const-string v3, "admob"

     invoke-virtual {v2, v3}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

     move-result v2

     if-eqz v2, :cond_0

     sget-object v1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;

     sput-object v1, Lberserker/android/a/a;->b:Ljava/lang/Boolean;

从以上代码可以看出,它是检测hosts中是否有admob字符串,然后根据返回的结果要决定跳转还是不跳转.

这里可以修改常量,也可以修改if-eqz为if-nez .我是采用的修改常量,
把前面的
const-string v3, "admob"
修改为:
const-string v3, "notexistsdomain"

这里的字串随便,要求就是在你的手机的hosts文件里所有条目中都不出现。

因为这样修改的话,不管有没有修改hosts文件的情况都不会有问题的。比较通用。
这里的修改是基于阅读反汇编代码的,并不是胡乱修改。

对于android的JVM 指令集,可看查看这里,非常详细:
http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html

http://loda.hala01.com/dalvik-opcodes/

http://thinkinmylife.iteye.com/blog/443900

第二个文件看了下,没什么要修改的地方。

然后就是修改资源文件了。
到res/layout目录下面,一看到banner.xml和hosts_alert_dialog.xml这两个文件的名字你就大概知道它是干什么的了。
把其高度修改为0即可。
如:
android:layout_height="0.0dip"

完了之后开始收工:
对apk重新打包
apktools b reversing cracked_berserker.android.apps.sshdroid-1.apk

对它签名,以便能在大多数android设备上安装, 如果你已经安装了SDK,那么可以使用debug key的证书
jarsigner -keystrore ~/.android/debug.keystore cracked_berserker.android.apps.sshdroid-1.apk androiddebugkey


然后输入 android 作为口令(password)

我这里图方便,直接用auto-sign啦,把破解后的文件托动到Sign.bat上即可生成
cracked_berserker.android.apps.sshdroid-1.apk.apk

好了。

卸载原版软件,也可以在手机上操作,用命令:
adb uninstall berserker.android.apps.sshdroid-1


然后再安装
adb isntall berserker.android.apps.sshdroid-1.apk


破解完毕,经测试,使用近一个月,运行一切正常。

[2022夏季班]《安卓高级研修班(网课)》月薪两万班招生中~

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (17)
雪    币: 4
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
sdda 活跃值 2011-11-13 11:30
2
0
破解是成功的哦 先支持下
雪    币: 286
活跃值: 活跃值 (123)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Dstlemoner 活跃值 2011-11-13 11:34
3
0
,,,,,,,,,,,,介个。。。。

看不懂 手机系统。。。
雪    币: 370
活跃值: 活跃值 (22)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
荒野无灯 活跃值 5 2011-12-2 16:48
4
0
看来大家对android应用的破解不怎么感兴趣呃
雪    币: 50
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Lesbonsami 活跃值 2011-12-2 16:58
5
0
看得云里来雾里去
雪    币: 273
活跃值: 活跃值 (29)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
popeylj 活跃值 6 2011-12-2 17:00
6
0
赞一个,我这还有邀请码,邮件给你了
雪    币: 31
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yeweiwhu 活跃值 2011-12-2 22:56
7
0
楼上好人啊~~可以也给我一个激活码不,最近学破解有些问题很纠结啊~~正式会员也好纠结~~
雪    币: 370
活跃值: 活跃值 (22)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
荒野无灯 活跃值 5 2011-12-5 13:00
8
0
 非常感谢~~
雪    币: 13
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chudech 活跃值 2011-12-6 00:29
9
0
看帖学习 谢谢!
雪    币: 515
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
奥赛花园 活跃值 2011-12-19 09:19
10
0
不断有新的东西要破解,要学习啊,不然out了
雪    币: 231
活跃值: 活跃值 (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
网络断魂 活跃值 3 2011-12-25 23:35
11
0
对手机系统一无所知,学习了
雪    币: 57
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liyizhu 活跃值 2011-12-26 11:54
12
0
嗯  没有手机这方面的东东  不太懂
雪    币: 38
活跃值: 活跃值 (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
非华 活跃值 2011-12-30 23:52
13
0
正在学习android中,WP7和S60路过,
雪    币: 28
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hekejieee 活跃值 2011-12-31 10:22
14
0
正在学习 正在学习
雪    币: 26
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bombless 活跃值 2011-12-31 20:49
15
0
有时候,有些东西原生为linux做的,linux版本硬是难搞只能搞Windows下的。

之前为PSP开发程序,linux下那个工具链太依赖网络了,而有些下载源已经失效了,根本无法搞定整个工具链。

于是我找了几个Windows下的二进制版本工具链,反而用的挺欢快。
雪    币: 0
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
陈成IVAN 活跃值 2012-1-14 10:43
16
0
正在学习安卓开发环境的搭建,是不是很菜……
什么SDK,还有其他的好多东东都要配置,还是纯英文的,完全弄糊涂了……
雪    币: 1644
活跃值: 活跃值 (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yodamaster 活跃值 2012-2-8 17:00
17
0
学习。。。。
雪    币: 222
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_bybzgpwn 活跃值 2019-9-19 16:19
18
0
不错,刚入门找找灵感
游客
登录 | 注册 方可回帖
返回