apktool反编译与重新打包学习,apk反编译与重新签名学习,keytool-jarsigner

有个玩无线电的朋友问我会不会破解软件,我说太难的搞不了,有些是混淆过的;他说有个好像是测无线电天线的设备(天调?)是绑定蓝牙mac的让我给搞定下,安卓的app。

于是完成之后记录下。之前没事时候用过apktool,jd-gui,dex2jar等工具还有在线的,不过玩着玩着就扔掉了,这次答应了人家,起码弄出个123吧。

本次用到的工具:

1.apktool2.2

2.keytool,位于jdk/bin目录

3.jarsigner,位于jdk/bin目录

最初使用的直接apk包改扩展名zip,拿出classex.dex,然后dex2jar,拿到java文件之后想把源码直接拿出来复制到一个新工程里去,跟重新做差不多,因为看到里面只有四个Activity :

DeviceListActivity.java

DrawChart.java

MainActivity.java

MyApplication.java

比较简单,字面意思都能猜出是干嘛的,设备列表Activity,显示匹配/未匹配的蓝牙设备吧?DrawChart绘制曲线的吧?MainActivity和MyApplication都不用说了,主界面和入口,哇塞我敏锐的直觉囧。。。然后软件运行截图是这样的:

Mini60X APP运行截图
Mini60X APP运行截图

玩无线电的就是高大上,直接看不懂。。。

打开设备列表Activity之后就能看到写死的蓝牙地址,于是数组里再加入一个

但是复制到新工程之后就各种报错,比如do{ return;xxx;xxx; }while(1);这种,do里面直接return,肯定是不对的,然后各种重新反编译最后都不能直接拿来用,是不是我想的太简单了。。。虽然拿到了源码,但是有错误,尤其DrawChart里面的代码,gdi编程的错误真心搞不了。

然后又使用apktool d xxx.apk反编译得到smali文件列表(smali语法也玩不转)找到DeviceListActivity直接替换掉数组里面的蓝牙mac地址,ok第一步算完成了;

接着使用apk b xxx(xxx代表刚才反编译得到的文件路径),重新打包,在xxx/dist目录下会生成新的apk文件;这个时候apk是没有签名的,也不能安装到安卓手机中,需要对apk文件进行签名,过程如下:

1.首先生成签名文件,直接切换至%JAVA_HOME%/bin目录,使用
keytool -genkey -alias new.keystore -keyalg RSA -validity 20000 -keystore new.keystore
命令生成文件,中间不断下一步,输入密码填信息什么的,上面的语句就会在当前目录生成的签名文件new.keystore

2.使用jarsigner签名apk,将apk拷贝至%JAVA_HOME%/bin目录,输入命令:
jarsigner -verbose -keystore new.keystore -signedjar Mini60X-signed.apk Mini60X.apk new.keystore

new.keystore就是1步生成的签名文件,Mini60X-signed.apk就是要生成的签名之后的文件名,Mini60X.apk是你的apk文件名,运行结果如下:

jarsigner签名apk运行结果

就会在当前目录生成Mini60X-signed.apk,下面的Warning我没管它,然后就安装到手机上吧。

声明:本文只为学习安卓打包与签名机制使用,不针对任何app生产厂商,本文及作者不承担任何法律内外责任。

无线电术语、基本概念学习整理

无线电,是一个音译过来的中文缩写。英文全称应该叫做Radio Wave,无线电波,还有Radio Frequency(无线频率);Air Wave等叫法。

这篇文章将持续更新,以记录我在认识无线电过程中的知识学习和整理。

术语解释:
CW Continuous Wave 字面意思是连续波,在发射领域内,通常简称CW方式,译为等幅(无线电)波发射机。一般利用摩尔斯电码发送信息——它通过电键控制发信机产生短信号”.”(点)和长信号”–“(划),并利用其不同组合表示不同的字符,从而组成单词和句子。与其他无线电通信方式相比,CW优点是所需设备简单、占用频带窄、发射效率高、在同等条件下通信距离更远。摘自矿石收音机在无线电术语,CW是什么意思呢?

无线电频段(摘自百度百科-无线电频段
段,是个范围词,类似10-90这种,英文原意为Band(波段),Frequency Band,还有直接说MHZ,GHZ的。
频段分类(各频段是干什么的)
ELF极低频 3~30Hz
SLF超低频30~300Hz
ULF 特低频300~3000Hz
VLF甚低频3~30kHz
LF低频 30~300kHz 长波
MF中频300~3000kHz100m~1000m中波 AM广播
HF高频3~30MHz10~100m 短波 短波广播
VHF 甚高频 30~300MHz1~10m 米波 FM广播
UHF 特高频 300~3000MHz 0.1~1m 分米波
SHF超高频3~30GHz 1cm~10cm厘米波
EHF极高频30~300GHz1mm~1cm毫米波
国际无线电管理会议规定的无线电频段代号
HF10~30MHz
VHF 30~100MHz
A100~250MHz
B250~500MHz
C500~1000 MHz
D1~2 GHz
E2~3 GHz
F3~4 GHz
G4~6 GHz
H6~8 GHz
I8~10 GHz
J10~20 GHz
K20~40 GHz
L40~60 GHz
M60~100 GHz
甚低频VLF 3-30KHz 超长波1KKm-100Km 空间波为主海岸潜艇通信;远距离通信;超远距离导航
低频 LF 30-300KHz 长波10Km-1Km 地波为主越洋通信;中距离通信;地下岩层通信;远距离导航
中频 MF 0.3-3MHz 中波1Km-100m 地波与天波船用通信;业余无线电通信;移动通信;中距离导航
高频 HF 3-30MHz 短波100m-10m 天波与地波远距离短波通信;国际定点通信
甚高频 VHF 30-300MHz 米波10m-1m 空间波电离层散射(30-60MHz);流星余迹通信;人造电离层通信(30-144MHz);对空间飞行体通信;移动通信
超高频 UHF 0.3-3GHz 分米波1m-0.1m 空间波小容量微波中继通信;(352-420MHz);对流层散射通信(700-10000MHz);中容量微波通信(1700-2400MHz)
特高频 SHF 3-30GHz 厘米波10cm-1cm 空间波大容量微波中继通信(3600-4200MHz);大容量微波中继通信(5850-8500MHz);数字通信;卫星通信;国际海事卫星通信(1500-1600MHz)
极高频 EHF 30-300GHz 毫米波10mm-1mm 空间波再入大气层时的通信;波导通信

ISM频段
ISM频段即工业,科学和医用频段,无需许可证,只需要遵守一定的发射功率(一般低于1W),并且不要对其它频段造成干扰即可。
最初是由美国联邦通信委员会(FCC)分配的不必许可证的无线电频段(功率不能超过1W)。在美国分为为工业(902-928MHz),科学研究(2.42-2.4835GHz)和医疗(5.725-5.850GHz)三个频段。而在欧洲900MHz的频段则有部份用于GSM通信,用于ISM的低频段为868MHZ和433MHz。
2.4GHz为各国共同的ISM频段。因此无线局域网,蓝牙,ZigBee等无线网络,均可工作在2.4GHz频段上。