171025 逆向 安卓脫殼(補充實驗)

2021-08-09 20:42:14 字數 1823 閱讀 2658

1625-5 王子昂 總結《2023年10月25日》 【連續第390天總結】

a. xp0int-so fun—zjdroid安卓脫殼

b. 今天補上昨天的遺漏和測試

首先是**:

之前想的太簡單了,if判斷內部其實是進一步的校驗,而不是我以為的flag生成(估計太晚了腦子有坑了吧,輸入的就是flag還生成個雞毛喲)

if判斷第乙個值,通過以後在迴圈中判斷其餘13個值,注意i的初值為1,也就是說實際上就是連續判斷,寫成這種結構純粹多此一舉……又不是在伺服器上節省資源233

雖然看起來有點像do..while結構,不知道是不是ida反編譯差了

不過不影響效果╮(╯_╰)╭

我們知道這玩意兒是將genstr的結果+下標i以後異或乙個陣列中的對應值後,與input比較就夠了

驗證**的時候順便查了一下,srand48是指乙個線性同餘法和48位整數運算的生成演算法,windows下沒有這個函式,但是可以自己參考庫函式來實現乙個

我直接在linux上進行了,注意標頭檔案stdlib.h

**(linux c):

#include 

#include

int main()

; char flag[15];

int i;

srand48(0);

for(i=0;i<14;i++)

puts(flag);

return

0;}

然後確認了ida附加:

將/dbgsrv下的android_server 通過adb push進安卓端以後進入shell執行:

c

:\users\hasee>adb push e

:\ctf\ida_pro_v6.8_and_hex-rays_decompiler_(arm,x64,x86)_green\dbgsrv\android_server /data/

941kb/s (523480 bytes in

0.543s)

c:\users\hasee>adb shell

root@x86

:/# su

suroot@x86

:/# cd /data

cd /data

root@x86

:/data

# ./android_server

./android_server

idaandroid

32-bit remote debug server(st) v1.19. hex-rays (c) 2004-2015

listening on port #23946...

這樣就在23946埠進行監聽了,然後在埠**以後就可以用ida附加上去啦

c:\users\hasee>adb

forward

tcp:23946

tcp:23946

附加上以後只要執行到斷點就報錯:

ffffffff: got sigill signal (illegal instruction) (exc.code 4, tid 2240)
查了一下應該是模擬器為x86架構,而so程式是arm架構的原因

只能附加真機咯~

出來玩沒帶那貨╮(╯_╰)╭回去再補上~

c. 明日計畫

看雪ctf 第二篇

ida附加so

安卓逆向 二

基礎位元組碼 名稱字尾 位元組碼字尾 目的暫存器 源暫存器 move wide from16 vaa,vbbb dalvik指令集中大多數指令用到了暫存器作為目的運算元或源運算元,其中 a b c d e f g h 代表乙個4位的數值,aa bb hh 代表乙個8位的數值,aaaa bbbb hh...

安卓正則補充

01.07 正則之邊界匹配 vip f set 指 邊境模式 這個條目會匹配到乙個位於 set 內某個字元之前的乙個空串,且這個位置的前乙個字元不屬於 set 集合 set 的含義如前面所述。匹配出的那個空串之開始和結束點的計算就看成該處有個字元 0 一樣。理解 這個其實就是規定了 使用的那個位置的...

安卓逆向學習筆記(10) 安卓逆向學習資料

因為喜歡android安全,而android逆向是android安全的乙個分支,所以小弟利用業餘時間自學了一點android逆向。在學習過程中總結了一點學習資料,特此分享給大家。1 android安全大牛的部落格 鬼哥的部落格 聽鬼哥說故事 jack jia的部落格 android手機病毒分析及研究...