安卓逆向 -- POST数据解密

简介: 安卓逆向 -- POST数据解密

一、通过上几节课我们知道要找的加密数据如下

{"Encrypt":"NIszaqFPos1vd0pFqKlB42Np5itPxaNH\/\/FDsRnlBfgL4lcVxjXii4KhogG\/C4u8yj2BCWdrDBlE\nm\/tlCFbgkTeVrEwGYpBtmuwEYeSFr7zfAr\/2Gtv7Sw4Wz9u3unWuTw34VLT\/1mbgDILNi9D8Ajku\nTRKnYuVNl7sINjvCbcAvBfcj8kJLeTyot7GVH4h6jQw\/BzC5GW2wjO91F0AFa8fEr\/g\/8gYnisBB\n3gxZ5J8=\n"}

二、通过动态调试时,知道v2存放了加密值

image.png

三、在smali代码处,按table键,切换到java代码,把鼠标移动到encrypt处会看到加密后的结果

image.png

四、看到deskeye,desIV,基本可以判断是des加密方式,返回smali代码,v0是明文,v5和v6正好对应deskkey和desIV

v5="65102933"
v6="32028092"
v0={"equtype":"ANDROID","loginImei":"Android010067028741939","sign":"F89CAB514B907A69CFE0A476EEF4AD32","timeStamp":"1628078089688","userPwd":"123456","username":"15836353612"}

image.png

五、双击encodeDESMap进入,再双击DESSecurity进入,按table切换到java代码,是CBC模式的DES加密,key进行了一次md5,

image.png

六、最后提交的的加密内容(需要JS加密库),下面还需要分析sign值

function jimitj(user, pass) {
    var time = new Date().getTime();
    var sign = getSign(user, pass, time);
    var mw = '{"equtype":"ANDROID","loginImei":"Android359250050380441","sign":"' + sign + '","timeStamp":"' + time + '","userPwd":"' + pass + '","username":"' + user + '"}';
    var key=CryptoJS.enc.Hex.parse(CryptoJS.MD5('65102933').toString());
    var iv=CryptoJS.enc.Utf8.parse('32028092');
   var res= CryptoJS.DES.encrypt(mw,key,{
        iv:iv,
        mode:CryptoJS.mode.CBC,
        padding:CryptoJS.pad.Pkcs7
    }).toString();
    return res;
}

七、sign值代码(需要JS加密库)

image.png

function getSign(user,pass,time){
    var signstr="equtype=ANDROID&loginImei=Android359250050380441&timeStamp="+time+"&userPwd="+pass+"&username="+user+"&key=sdlkjsdljf0j2fsjk";
    return CryptoJS.MD5(signstr).toString().toUpperCase();
}

禁止非法,后果自负

目录
相关文章
|
4天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
18 1
|
4天前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
21 2
|
4天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
16 0
|
4天前
|
存储 Java Android开发
Android轻量级数据SparseArray详解
Android轻量级数据SparseArray详解
7 0
|
4天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
12 3
|
4天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
11 1
|
4天前
|
Android开发 开发者
Android网络和数据交互: 请解释Android中的AsyncTask的作用。
Android's AsyncTask simplifies asynchronous tasks for brief background work, bridging UI and worker threads. It involves execute() for starting tasks, doInBackground() for background execution, publishProgress() for progress updates, and onPostExecute() for returning results to the main thread.
12 0
|
4天前
|
网络协议 安全 API
Android网络和数据交互: 什么是HTTP和HTTPS?在Android中如何进行网络请求?
HTTP和HTTPS是网络数据传输协议,HTTP基于TCP/IP,简单快速,HTTPS则是加密的HTTP,确保数据安全。在Android中,过去常用HttpURLConnection和HttpClient,但HttpClient自Android 6.0起被移除。现在推荐使用支持TLS、流式上传下载、超时配置等特性的HttpsURLConnection进行网络请求。
16 0
|
4天前
|
JSON 安全 Java
Android网络部分-----网络数据请求、解析
Android网络部分-----网络数据请求、解析
Android网络部分-----网络数据请求、解析
|
4天前
|
XML Java Android开发
Android每点击一次按钮就添加一条数据
Android每点击一次按钮就添加一条数据
25 1