最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

安卓逆向半次元app逆向分析源碼

 更新時間:2022年02月10日 11:01:34   作者:別None了  
這篇文章主要為大家介紹了安卓逆向半次元app逆向分析的源碼示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

僅供學習交流,禁止商業(yè)用途。如侵害利益,聯(lián)系必刪!

前言

最近一位小伙伴鐘愛二次元文化,于是找到半次元這個app,但是很快他就遇到了問題。

一、案例

樣本: 半次元 v5.0.6

工具: jadx-gui、ida、frida 問題描述:

在這里插入圖片描述

POST請求body中的data加密,那要想動態(tài)模擬請求數(shù)據(jù),就需要逆向分析data如何加密的了。

二、分析

1. jadx反編譯

分析過程比較枯燥就不過多闡述了,直接上分析的結(jié)果圖。

System.loadLibrary("random") 就是加載的秘鑰了

2.ida分析so層

com_banciyuan_AI 就是秘鑰啦


很清楚的可以看到"com_banciyuan_AI"就是key啦

3. Frida

代碼如下:

# -*- coding: utf-8 -*-
import frida, sys
def on_message(message, data):
    if message['type'] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)
jscode_hook = """
    Java.perform(
        function(){
            var en = Java.use("com.banciyuan.bcywebview.utils.encrypt.Encrypt");
            en.a.overload("java.lang.String").implementation = function (str){
                console.log("參數(shù): "+str);
                var res = this.a(str);
                console.log("返回: "+res);
                return res;
            }
        }

    )
"""
process = frida.get_usb_device().attach('com.banciyuan.bcywebview')
script = process.create_script(jscode_hook)
script.on('message', on_message)
print('[*] Hook Start Running')
script.load()
sys.stdin.read()

3.1 hook結(jié)果

hook結(jié)果

4. 算法還原

在這里插入圖片描述

能看出來沒有魔改的地方,AES.ECB模式Pkcs7padding.

代碼如下:

# -*- coding:utf-8 -*-
import base64
from Crypto.Cipher import AES
class EncryptDate:
    def __init__(self, key):
        self.key = key  # 初始化密鑰
        self.length = 16  # 初始化數(shù)據(jù)塊大小
        self.aes = AES.new(self.key, AES.MODE_ECB)  # 初始化AES,ECB模式的實例
        # 截斷函數(shù),去除填充的字符
        self.unpad = lambda date: date[0:-ord(date[-1])]
        print(self.unpad)  
    def pad(self, text):
        """
        #填充函數(shù),使被加密數(shù)據(jù)的字節(jié)碼長度是block_size的整數(shù)倍
        """
        count = len(text.encode('utf-8'))
        add = self.length - (count % self.length)
        entext = text + (chr(add) * add)
        return entext
    def encrypt(self, encrData):  # 加密函數(shù)
        a = self.pad(encrData)
        res = self.aes.encrypt(a.encode("utf-8"))
        msg = str(base64.b64encode(res), encoding="utf8")
        return msg
    def decrypt(self, decrData):  # 解密函數(shù)
        res = base64.decodebytes(decrData.encode("utf-8"))
        msg = self.aes.decrypt(res).decode("utf-8")
        return self.unpad(msg)
eg = EncryptDate("com_banciyuan_AI".encode("utf-8"))
res = eg.encrypt('{"uid":3526863969856576,"face":"f"}')
print(res)
print(eg.decrypt(res))

安心使用

總結(jié)

難度適中,工具運用(jadx、ida、frida)AES的加密模式分析切勿著急。

以上就是安卓逆向半次元app逆向分析源碼的詳細內(nèi)容,更多關于半次元app逆向分析的資料請關注腳本之家其它相關文章!

相關文章

  • Android自動化獲取卡頓信息的實現(xiàn)方法

    Android自動化獲取卡頓信息的實現(xiàn)方法

    自動化獲取卡頓信息就像給App裝  “行車記錄儀”  —— 實時記錄主線程的“駕駛狀態(tài)”,一旦發(fā)現(xiàn)“急剎車”(卡頓),立刻保存現(xiàn)場(堆棧),事后回看錄像(日志)精準定位問題,本文給大家介紹了Android自動化獲取卡頓信息的實現(xiàn)方法,需要的朋友可以參考下
    2025-02-02
  • 詳解Android 進程間通信的幾種實現(xiàn)方式

    詳解Android 進程間通信的幾種實現(xiàn)方式

    在Android SDK中提供了4種用于跨進程通訊的方式。這篇文章主要介紹了詳解Android 進程間通信的幾種實現(xiàn)方式,有興趣的可以了解一下。
    2017-01-01
  • 使用RecyclerView添加Header和Footer的方法

    使用RecyclerView添加Header和Footer的方法

    RecyclerView雖然作為ListView的替代者有著較好的性能提升,但是ListView的一些常用功能卻沒有提供,比如我們平時會經(jīng)常用到的addHeaderView,addFooterView,既然RecyclerView沒有提供這個方法,我們應該如何為列表添加頭部和底部呢,接下來通過本文給大家介紹
    2016-03-03
  • Android開發(fā)筆記XML數(shù)據(jù)解析方法及優(yōu)缺點

    Android開發(fā)筆記XML數(shù)據(jù)解析方法及優(yōu)缺點

    XML數(shù)據(jù)是一種常見的數(shù)據(jù)格式,Android開發(fā)中需要對其進行解析。常用的XML解析方式有DOM、SAX、Pull和Json等,每種方式都有其優(yōu)缺點。開發(fā)者可以根據(jù)具體需求選擇合適的解析方式,提高數(shù)據(jù)解析效率和性能
    2023-05-05
  • Android Compose實現(xiàn)聯(lián)系人列表流程

    Android Compose實現(xiàn)聯(lián)系人列表流程

    聲明式UI,更簡單的自定義,實時帶交互的預覽功能Compose并不是類似于Recyclerview的高級控件,而是直接拋棄了View,ViewGroup那套東西,從上到下魯了一套全新的框架,直白點說就是它的渲染機制,布局機制,觸摸算法,以及UI具體寫法全都是新的
    2023-03-03
  • Android自定義View實現(xiàn)可展開、會呼吸的按鈕

    Android自定義View實現(xiàn)可展開、會呼吸的按鈕

    這篇文章主要為大家詳細介紹了Android自定義View實現(xiàn)可展開、會呼吸的按鈕,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Android開發(fā)筆記之Intent初級學習教程

    Android開發(fā)筆記之Intent初級學習教程

    這篇文章主要介紹了Android開發(fā)筆記之Intent初級學習,較為詳細的分析了Android Intent項目的建立,功能實現(xiàn)及Intent使用技巧,需要的朋友可以參考下
    2016-02-02
  • Android高仿微信對話列表滑動刪除效果

    Android高仿微信對話列表滑動刪除效果

    這篇文章主要為大家詳細介紹了Android高仿微信對話列表滑動刪除效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 在Android平臺上實現(xiàn)消息推送功能

    在Android平臺上實現(xiàn)消息推送功能

    隨著移動互聯(lián)網(wǎng)應用的飛速發(fā)展,消息推送已成為移動應用中不可或缺的功能,在Android平臺上,實現(xiàn)消息推送涉及到服務端的消息發(fā)送、客戶端的消息接收、通知渠道(Notification?Channels)的管理以及應用在前臺和后臺不同狀態(tài)下的處理等多個方面,下面小編給大家詳細介紹一下
    2025-04-04
  • Android實現(xiàn)RecyclerView嵌套流式布局的詳細過程

    Android實現(xiàn)RecyclerView嵌套流式布局的詳細過程

    最近在做需求的時候,碰到有各種篩選項的界面,下面這篇文章主要給大家介紹了關于Android實現(xiàn)RecyclerView嵌套流式布局的詳細過程,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12

最新評論

乌审旗| 邵阳县| 舒城县| 安康市| 湖南省| 石阡县| 平乐县| 江油市| 沛县| 故城县| 平凉市| 武鸣县| 临桂县| 梁山县| 阿瓦提县| 钦州市| 上高县| 汪清县| 铜鼓县| 县级市| 报价| 苏尼特右旗| 芜湖县| 乐业县| 杭州市| 西昌市| 麟游县| 蛟河市| 布拖县| 枣强县| 仪陇县| 霍林郭勒市| 石屏县| 铅山县| 衡南县| 乳山市| 伊吾县| 将乐县| 克山县| 蒙城县| 吴桥县|