天天看點

[安卓逆向]安卓逆向-一次簡單的靜态分析

@Author:Y4tacker

@Time:2021/03/29

文章目錄

  • ​​安卓逆向-一次簡單的靜态分析​​

安卓逆向-一次簡單的靜态分析

首先嘗試安裝apk發現報錯應用安裝失敗,之後嘗試在010editor中檢視dex檔案頭,發現沒有問題,既然如此那隻有一個解釋了,可能是APK簽名校驗未通過,我直接把apk拖入andriod killer當中,成功反編譯,之後點選編譯生成簽名的APK檔案

首先靜态分析,啟動APK,發現要連續點選87654321次才行,這個簡單,第一層頁面自然是在Oncreate函數建立

@SuppressLint({"UseValueOf"})
  protected void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    setContentView(2130903040);
    this.totalMyTotalNumber = new Integer(87654321);
    this.totalNumber = ((TextView)findViewById(2131099648));
    this.totalNumber.setText(this.totalMyTotalNumber.toString());
    this.NowNumber = ((TextView)findViewById(2131099650));
    this.button_add = ((Button)findViewById(2131099652));
    this.button_add.setOnClickListener(this);
    this.text_view = ((TextView)findViewById(2131099654));
  }      

在smili當中将​

​0x5397fb1​

​​改為​

​0x1​

​即可實作隻需點選一次即可,之後彈出說離成功隻有一步之遙

[安卓逆向]安卓逆向-一次簡單的靜态分析

有個細節的地方是發現這個視窗是通過建立彈窗實作的,在代碼裡面也能看到,

[安卓逆向]安卓逆向-一次簡單的靜态分析

并且還給了一個​

​andriod​

​的值

是以我們點選傳回,發現了一個True flag

[安卓逆向]安卓逆向-一次簡單的靜态分析

當然從代碼當中也能看出

[安卓逆向]安卓逆向-一次簡單的靜态分析

我們繼續從代碼跟蹤這一串神秘字元,在success.java當中

[安卓逆向]安卓逆向-一次簡單的靜态分析

再看看check函數,簡簡單單的用Java實作的SHA-1加密僅此而已

private String check(String paramString)
  {
    try
    {
      this.sysytemDigest = MessageDigest.getInstance("SHA-1");
      this.sysytemDigest.reset();
      this.sysytemDigest.update(paramString.getBytes());
      return bytesToString(this.sysytemDigest.digest());
    }
    catch (NoSuchAlgorithmException localNoSuchAlgorithmException)
    {
      for (;;)
      {
        localNoSuchAlgorithmException.printStackTrace();
      }
    }
  }      

是以我們隻需要獲得​

​this.intent.getStringExtra("data")​

​這裡面的值即可,我們知道

在目前Activity1使用startActvity(intent)或者startActivityForResult(intent, code)方法跳轉到另一個Activity2之前,如果要傳遞資料給Activity2,則應執行:intent.putExtra(“String str1”, “String Key1”)或intent.putExtra(“Int str1”, “Int Key1”)

是以,我們在MainActivity當中尋找