搜建筑资料网 - 做最好的工程资料下载网站!本站永久网址:www.sojianzhu.com

当前位置: > 知识 > > 内容页

360加固保揭秘:盗取移动支付APP账号和密码过程

浏览:2019-10-26 16:59

 

随着移动金融的发展,移动支付的使用场景越来越丰富,不带钱包出门的时代已经来临。
面对移动支付类APP,用户最关心的还是其安全问题。

恶意APP不仅破坏用户信息安全,损害用户的合法利益,更直接给正版应用开发者造成巨大的商业价值损失。

以一款银行类APP为例,360加固保为开发者和用户揭秘破解者如何盗取移动支付APP账号和密码。

工具/环境

支付类APP反编译工具ApkTool、Jeb、baksmali/smali等

整体步骤

    1

    盗取移动支付APP账号和密码主要有三个步骤

    1. 反编译,得到源码

    2. 定位代码,插入代码

    3. 重打包,获取账号和密码

    教程结束。

一、反编译

    1

    首先可以通过使用ApkTool、Jeb、baksmali/smali等反编译工具,反编译apk安装包,找到APP的mainactivity。

    2

    该款银行APP带有签名校验,想成功得到源代码,需要绕过签名校验。
    如果通不过签名校验,会对mainactivity进行finsh。
    所以我们在mainactivity中直接检索finsh函数,来找到APP的finsh逻辑,也就可以回溯该APP是怎样做到签名校验的。

    3

    找到finsh逻辑后,可以看到在if v0不等于0的情况下会等于0,那么可以根据v0进行它的复制操作,来找到它在什么情况下会签名校验失败。

    4

    在截图中可以看到代码中做了一个v3和v0的比较,意思是如果v3这个字符串如果和v0匹配的话结果就为0,也就是校验通过。
    如果v3和v0不一致,则校验失败。
    所以该APP的签名校验只要把v0的值进行修改,强制复制成和v3一样的字符串,就可以绕过签名校验了。

    教程结束。

二、定位代码,插入代码

    1

    得到源代码后,用JEB打开该APP,找到edittextview,在里面看到一个onInsertCharacters的函数,这个就是用户在输入账号密码时,它会做哪些处理。
    根据红框中的代码逻辑,可以判断arg6就是用户输入的字符的明文。

    2

    可以做一下验证,我们在这个函数里插入log,把arg6的值打印出来,然后观察log,看是否可以打印出用户在手机上所操作的按钮对应的字母。

    3

    打开该银行APP的登录界面,在密码框里输入:asdfgh,看到log里是可以打印出明文的字符。
    这样就可以获取到用户登录APP时输入的密码了。

    4

    对于用户名的获取,就更加简单了。
    因为用户名是一个textview的形式,直接get text就可以获取到。

    教程结束。

三、重打包,获取账号和密码

    1

    最后将该银行APP进行编译重打包。
    然后打开APP的登录界面,输入用户名和密码,点击登录。
    这个时候,可以看到我们在使用python开的httpsever会接收到一条请求,请求的参数就带有刚刚输入的账号和密码。
    这样就模拟了破解者盗取移动支付类APP登录账号和密码的全过程

    教程结束。

对APP进行加固保护,防止账号和密码被盗取

    1

    既然破解者可以轻易的盗取APP的账号密码,所以开发者需要提高APP安全性,使用360加固保对APP进行加固保护。
    进行加固保护的APP能有效防止被反编译和恶意篡改,避免被二次打包,保护数据信息不会被黑客窃取。

    0Android APK加密方法:提升手机APP安全性

    教程结束。
分享到:

相关文章