安卓逆向入門(二)

本文作者:怪大叔

226safe Team 核心成員

+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +

前言:

前面提到的一些smali基本語句函數,在上一節都沒怎麼用到,那麼這節就來簡單運用一下吧。

0x01:

用到的工具:

  • AndroidKiller (需安裝JDK)
  • 夜神模擬器

回顧smali基本語句函數:

  • Const 賦值
  • return-void返回空
  • Goto 跳轉
  • Cond 分支

判斷語句:

  • if-eq 等於
  • if-ne 不等於
  • if-lt 小於
  • f-ge 大於等於
  • if-gt 大於
  • if-le 小於等於
  • if-eqz 等於
  • if-nez 不等於
  • if-ltz 小於
  • if-gez 大於等於
  • if-gtz 大於

關鍵詞:

  • Success成功
  • Fail 失敗

詳細可以參考:Smali基本語法 - lee0oo0 - 博客園

0x02:

首先我們查看了下是無殼的,那麼就可以用模擬器打開apk看一下,打開沒發現廣告,那麼就看充值返回的關鍵詞。

關鍵詞是「支付失敗!」那麼我們就搜索看看

發現在GameMain.smali的分支裡面,那麼我們就可以直接打開GameMain.smali看看,打開前講一個小姿勢,很多時候看代碼的時候打開入口點看看,或許還能從中找到一些有價值的東西,省去很多時間,這個apk入口點就是GameMain.smali

我們先看第一個GameMain$3$1.smali

這裡等於p2就跳cond_0那麼我們看看cond_0在哪。

到了失敗這裡,那麼我們把cond_0放在成功那呢?

保存再編譯之後用模擬器打開試試。

是成功的。

說了這麼多其實這裡還有一個簡單暴力的方法就是直接把

這句判斷給刪除掉也是可以的(坑爹啊,,,之前做了這麼多)

總結:

其實很多時候看到一些可能在我們這些菜鳥眼裡好像很6的東西,其實自己嘗試一下或許沒有想像中的這麼難,所以多動手多實操。


推薦閱讀:

為什麼幾乎所有的破解程序都會播放一些很奇葩的8BIT音樂?這些音樂是程序員自己創作的嗎?

TAG:软件破解 | 网络安全 | 软件逆向工程 |