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手機病毒分析及研究...