加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

技能接头 | 看我怎样破解一台自动售货机

发布时间:2018-10-30 05:53:47 所属栏目:业界 来源:clouds编译
导读:声明:本文仅限技能接头,严禁用于任何犯科用途 毫无疑问,自动售货机长短常受接待的对象,我们总会从中购置获取一些小零食。早几年前,自动售货机只接管离线的硬币付出,之后,也逐步回收了遍及的NFC技能成果。假如我提及COGES售货呆板 (英国售货呆板厂商
副问题[/!--empirenews.page--]

01.jpeg

声明:本文仅限技能接头,严禁用于任何犯科用途

毫无疑问,自动售货机长短常受接待的对象,我们总会从中购置获取一些小零食。早几年前,自动售货机只接管离线的硬币付出,之后,也逐步回收了遍及的NFC技能成果。假如我提及“COGES”售货呆板 (英国售货呆板厂商),我想必定会勾起许多人的柔美年华回想。年华辗转,一不把稳,有些工作就产生了根天性的变革,现现在,这已经是一个被收集万物互联的期间了。本日,我就来和各人分享一个,我是怎样黑掉一台自动售货机,重复实现充值和购置售货机中商品的事例。

工作因由

有一天,我憎恶了深入简出的无聊糊口,规划回田园晒晒太阳苏息苏息,临走前,我到了学校造访一个大学传授。穿过走廊,先生发起,我们去喝杯咖啡吧,于是,我们来到了自动售货机旁。

  • 我说:我来吧,我有硬币。
  • 先生:等等,我可以用手机APP来付出,这样会自制点。

可以看到,这是一台Argenta自动售货机,其APP付出方法是基于蓝牙和NFC成果的,啊,假造钱包就是好啊!

02.jpeg

此时,我内心闪过的动机 – 我能把它黑掉吗???

  • 白帽心声:没有赏金就当做是一种勉励吧。
  • 灰帽心声:就当做练练手吧。
  • 黑帽心声:来吧,店员,我们去摒挡一下谁人对象,这样就很牛了!

于是乎,我就抉择改天就开黑。

技能说明

某天,我把我的安卓手机配置开启了USB调试模式,然后从应用市肆中下载了自动售货机APP,并把原始APP的apk文件转储到条记本电脑中,用adb去调试说明:

  1. # adb pull /data/app/com.sitael.vending-1/base.apk ./Argenta.apk 

用apktool对它举办反编译:

  1. # apktool d ./Argenta.apk ./Argenta 

再用 jadx提取出个中的java源文件:

  1. # jadx ./Argenta.apk 

AndroidManifest.xml清单文件是每个Android措施中必需的文件,它是整个Android措施的全局描写文件,除了能声明措施中的Activities,Content Providers,Services,和Intent Receivers,还能指定应用的名称、行使的图标、包括的组件以及permissions和instrumentation(安详节制和测试)。这里,一开始,必要把AndroidManifest.xml文件中的调试属性变动为ture,之后才可在手机长举办调试,也就是往application 标签中添加一行 android:debuggable=”true” 属性。

06.png

接下来, 重建apk文件:

  1. # apktool b ./Argenta 

然后用器材keytool来建设一个新的密钥:

  1. # keytool -genkey -v -keystore Argenta.keystore -alias Argenta -keyalg RSA -keysize 2048 -validity 10000 

接着,行使该建设密钥,用jarsigner来对整个apk文件举办署名:

  1. # jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore Argenta.keystore Argenta.apk Argenta 

再用器材zipalign来对apk措施文件举办优化

  1. # zipalign -v 4 Argenta.apk Argenta-signed.apk 

最后,就可以安装这个重建好的apk文件了。

  1. # adb install ./Argenta-signed.apk 

我在手机上安装运行了这个APP措施,并用器材logcat,通过包名对其措施日记举办过滤说明:

  1. # adb logcat –pid=`adb shell pidof -s com.sitael.vending`  
07.png

可是,没什么收成,我规划再从其源代码中看看能有什么线索。从AndroidManifest.xml文件中,我发明白指向RushOrm的多个引用。

08.png

以是,这里起首我找的要害字就是db_name,从这里我发明白argenta.db的影子:

09.png

接下来,在手机中,我用器材Root Explorer继承来看看这个argenta.db,真的是存在的:

10.png

然后,我用adb pull方法把手机中的这个文件拷贝到条记本电脑中来说明:

  1. # adb pull /data/data/com.sitael.vending/databases/argenta.db ./db 

并实行用SQLite的数据库赏识器材SQLiteBrowser来打开这个db文件:

11.png

哦,显然,它是有暗码掩护的,打不开。

12.png

逆向工程

在源代码中,我说明白RushAndroidConfig.java:

13.png

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读