日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

REVERSE-PRACTICE-BUUCTF-23

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 REVERSE-PRACTICE-BUUCTF-23 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

REVERSE-PRACTICE-BUUCTF-23

    • [2019紅帽杯]Snake
    • [BSidesSF2019]blink
    • [De1CTF2019]Re_Sign
    • [ACTF新生賽2020]Splendid_MineCraft

[2019紅帽杯]Snake

unity游戲,dnSpy打開Snake\Snake_Data\Managed\Assembly-CSharp.dll
發現要載入Interface這個dll

ida打開Snake\Snake_Data\Plugins\Interface.dll
交叉引用字符串"You win! flag is "來到GameObject函數
分析GameObject函數,該函數只有一個參數a1,當a1∈[0,99]時,會執行if語句包絡的代碼,其中就有輸出flag的語句


于是考慮爆破,寫C代碼,載入Interface.dll,調用GameObject函數,傳入從0到99之間的整數,爆破成功即可得到flag,從flag可以知道是RSA加密算法

#include<iostream> #include<Windows.h> #include"ida_defs.h" //函數指針 typedef signed __int64(*Dllfunc)(int); using namespace std; int main() {Dllfunc GameObject;//GameObject是dll中想要調用的函數名稱HINSTANCE hdll = NULL;hdll = LoadLibrary("Interface.dll");//加載dll if (hdll == NULL){cout << "加載動態庫失敗\n";}else{GameObject = (Dllfunc)GetProcAddress(hdll, "GameObject");//到dll中定位函數if (GameObject == NULL){cout << "加載動態庫方法失敗\n";}else{for (int i = 0; i <= 99; i++){signed __int64 res = GameObject(i);}}}FreeLibrary(hdll);//釋放dllreturn 0; } /* You win! flag is flag{Ch4rp_W1th_R$@} */

[BSidesSF2019]blink

apk文件,jadx-gui打開,com.example.blink.MainActivity什么都沒有
在com.example.blink.r2d2中,將一段字符串解base64,分割成byte數組,填入一個圖像文件中

apk在模擬器中雙擊運行會直接退出
按照jeb調試apk smali的方法,在啟動apk activity時,將MainActivity改成r2d2,即adb shell am start -D -n com.example.blink/com.example.blink.r2d2,jeb附加后運行即可得到flag

[De1CTF2019]Re_Sign

exe程序,運行后輸入,有upx殼,ESP定律脫殼后ida分析
交叉引用字符串"Success"來到sub_401000函數,程序脫殼后不能運行,ida和x32dbg配合分析
調試發現,sub_402BA0函數讀取輸入,sub_402E40函數和sub_sub_402F80函數都是簡單的賦值,調試的輸入為"abcdefg",經過sub_401233函數變換為"GD9MH6SeHd==",而正常的base64編碼結果為"YWJjZGVmZw==",猜測sub_401233函數是變表base64,重要的是找到變表

F7單步步入sub_401233函數,在這個地方找到變表

驗證一下,sub_401233函數的變表就是找到的這個表

分析sub_401F0A函數,輸入經變表base64編碼后,在while循環體中,一個字節一個字節拷貝到v30,v30賦給v37,v37傳入sub_2160函數,返回值與v25(ebx)指向的int數據比較

sub_402160函數中使用到了常規base64表,調試輸入為"abcdefg",變表base64后為"GD9MH6SeHd==",第一個字節"G"傳入sub_402160函數,返回值為7,也就是"G"在常規base64表中的位置(下標從1開始),于是可知要去比較的數據也是某字符在常規base64表中的位置(下標從1開始)

x32dbg調試得到要去比較的數據

寫逆運算腳本即可得到flag

#coding:utf-8 import base64 table="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" table_changed="0123456789QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm+/=" data=[0x08,0x3b,0x01,0x20,0x07,0x34,0x09,0x1f,0x18,0x24,0x13,0x03,0x10,0x38,0x09,0x1b,0x08,0x34,0x13,0x02,0x08,0x22,0x12,0x03,0x05,0x06,0x12,0x03,0x0f,0x22,0x12,0x17,0x08,0x01,0x29,0x22,0x06,0x24,0x32,0x24,0x0f,0x1f,0x2b,0x24,0x03,0x15,0x41,0x41] s="" ss="" for i in data:s+=table[i-1] #s賦完值其實是輸入經變表base64后的結果 for c in s:ss+=table[table_changed.find(c)] #由變表和常規表的映射得到常規base64編碼的結果 print(base64.b64decode(ss)) #de1ctf{E_L4nguag3_1s_K3KeK3_N4Ji4}

[ACTF新生賽2020]Splendid_MineCraft

exe程序,運行后輸入,無殼,ida分析
交叉引用字符串"Welcome to ACTF_Splendid_MineCraft!“來到sub_401080函數
讀取輸入,驗證輸入的長度是否為26,strtok函數用字符’_'將輸入分割成三個部分,于是可知輸入的格式為"ACTF{xxxxxx_yyyyyy_xxxxxx}”,v12-v13(v14-v15)為{}中的第一部分"xxxxxx",v8-v9為{}中的第二部分"yyyyyy",v10-v11為{}中的第三部分"xxxxxx"

v12-v13,即{}中的第一部分要進入dword_4051D8,經SMC后,驗證{}中的第一部分
來到data段dword_4051D8,按d轉成字節形式的數據,按c轉成代碼,可看到SMC的代碼

調試,SMC執行完成后是這個樣子

往下走,來到驗證{}內的第一部分的代碼,“3@1b;b"和"elcome"兩個字符串異或,再加0x23,結果與傳入的{}內的第一部分比較,可知正確的第一部分的6個字符為"yOu0y*”

由于v5與{}內的第一部分的6個字符相關,更新輸入后調試,可知v5==0x20
執行完SMC后,來到驗證{}內第二部分的代碼,eax指向的是數組byte_DC5018,于是這段代碼的驗證思路就是,cl=byte_DC5018[input[i]^(i+0x83)],寫腳本可知第二部分為"knowo3"

往下走(期間要修改幾次ZF的值),來到驗證第三部分的代碼,這里直接比較第三部分和已知字符串"5mcsM<"

于是三個部分的腳本放在一起就是,輸入flag,驗證成功

#coding:utf-8 flag="ACTF{" #第一部分 s1="3@1b;b" s2="elcome" data=[] for i in range(len(s1)):data.append(ord(s1[i])^ord(s2[i])) for i in range(len(data)):data[i]+=0x23 flag+=''.join(chr(i) for i in data) flag+='_' #第二部分 data=[0xF6, 0xA3, 0x5B, 0x9D, 0xE0, 0x95, 0x98, 0x68, 0x8C, 0x65,0xBB, 0x76, 0x89, 0xD4, 0x09, 0xFD, 0xF3, 0x5C, 0x3C, 0x4C,0x36, 0x8E, 0x4D, 0xC4, 0x80, 0x44, 0xD6, 0xA9, 0x01, 0x32,0x77, 0x29, 0x90, 0xBC, 0xC0, 0xA8, 0xD8, 0xF9, 0xE1, 0x1D,0xE4, 0x67, 0x7D, 0x2A, 0x2C, 0x59, 0x9E, 0x3D, 0x7A, 0x34,0x11, 0x43, 0x74, 0xD1, 0x62, 0x60, 0x02, 0x4B, 0xAE, 0x99,0x57, 0xC6, 0x73, 0xB0, 0x33, 0x18, 0x2B, 0xFE, 0xB9, 0x85,0xB6, 0xD9, 0xDE, 0x7B, 0xCF, 0x4F, 0xB3, 0xD5, 0x08, 0x7C,0x0A, 0x71, 0x12, 0x06, 0x37, 0xFF, 0x7F, 0xB7, 0x46, 0x42,0x25, 0xC9, 0xD0, 0x50, 0x52, 0xCE, 0xBD, 0x6C, 0xE5, 0x6F,0xA5, 0x15, 0xED, 0x64, 0xF0, 0x23, 0x35, 0xE7, 0x0C, 0x61,0xA4, 0xD7, 0x51, 0x75, 0x9A, 0xF2, 0x1E, 0xEB, 0x58, 0xF1,0x94, 0xC3, 0x2F, 0x56, 0xF7, 0xE6, 0x86, 0x47, 0xFB, 0x83,0x5E, 0xCC, 0x21, 0x4A, 0x24, 0x07, 0x1C, 0x8A, 0x5A, 0x17,0x1B, 0xDA, 0xEC, 0x38, 0x0E, 0x7E, 0xB4, 0x48, 0x88, 0xF4,0xB8, 0x27, 0x91, 0x00, 0x13, 0x97, 0xBE, 0x53, 0xC2, 0xE8,0xEA, 0x1A, 0xE9, 0x2D, 0x14, 0x0B, 0xBF, 0xB5, 0x40, 0x79,0xD2, 0x3E, 0x19, 0x5D, 0xF8, 0x69, 0x39, 0x5F, 0xDB, 0xFA,0xB2, 0x8B, 0x6E, 0xA2, 0xDF, 0x16, 0xE2, 0x63, 0xB1, 0x20,0xCB, 0xBA, 0xEE, 0x8D, 0xAA, 0xC8, 0xC7, 0xC5, 0x05, 0x66,0x6D, 0x3A, 0x45, 0x72, 0x0D, 0xCA, 0x84, 0x4E, 0xF5, 0x31,0x6B, 0x92, 0xDC, 0xDD, 0x9C, 0x3F, 0x55, 0x96, 0xA1, 0x9F,0xCD, 0x9B, 0xE3, 0xA0, 0xA7, 0xFC, 0xC1, 0x78, 0x10, 0x2E,0x82, 0x8F, 0x30, 0x54, 0x04, 0xAC, 0x41, 0x93, 0xD3, 0x3B,0xEF, 0x03, 0x81, 0x70, 0xA6, 0x1F, 0x22, 0x26, 0x28, 0x6A,0xAB, 0x87, 0xAD, 0x49, 0x0F, 0xAF] res=[0x30,0x4,0x4,0x3,0x30,0x63] for i in range(len(res)):for j in range(len(data)):if data[j]==res[i]:flag+=chr(j^(i+0x83)) flag+='_' #第三部分 flag+="5mcsM<" flag+='}' print(flag) #ACTF{yOu0y*_knowo3_5mcsM<}

總結

以上是生活随笔為你收集整理的REVERSE-PRACTICE-BUUCTF-23的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品扒开腿做爽爽爽视频 | 精品区在线观看 | 国产黄色免费网站 | 日韩少妇一区二区 | 亚洲男人的天堂在线观看 | 久草天堂| 国毛片 | 中文字幕亚洲无线码在线一区 | 视频1区2区 | 水牛影视av一区二区免费 | 久久免费播放视频 | 久久人人爽人人爽 | 久久午夜夜伦鲁鲁一区二区 | 韩国无码一区二区三区精品 | 精品少妇人妻av免费久久洗澡 | 久久精品激情 | 欧美日韩一二 | 成人激情视频在线播放 | 免费看91的网站 | 久久99精品久久久久久园产越南 | 黄色大片免费网站 | 成人影片网址 | 成人一区二区精品 | 日韩性网站 | 亚洲色图五月天 | 红猫大本营在线观看的 | 日韩av三级在线观看 | 日韩高清影院 | 美国色综合 | 日本高清不卡一区 | a天堂在线 | 高清不卡一区二区 | 尤物国产在线 | 女人脱了内裤趴开腿让男躁 | 午夜寂寞福利 | 欧美aⅴ视频 | 内射干少妇亚洲69xxx | 日韩电影二区 | 日本中文字幕在线不卡 | 人妻系列一区 | 99久久99久久免费精品蜜臀 | av动漫免费看| 欧美人体一区二区三区 | 色综合五月婷婷 | 性感美女一区二区三区 | 国产美女三级无套内谢 | 日韩av在线影院 | 麻豆视频免费 | 尤物毛片 | 国产探花在线精品一区二区 | 69国产在线 | 欧美日韩网址 | 黄色a级片视频 | 久久色在线 | 日本人xxxⅹ18hd19hd | 91色视频在线观看 | 久久精品福利视频 | 丰满人妻综合一区二区三区 | 亚洲性生活 | 久久黄色一级视频 | 四虎国产精品成人免费入口 | 黄色综合 | 国产精品30p | 亚洲爱情岛论坛永久 | 日本视频免费观看 | 欧美精品成人一区二区在线观看 | 亚洲天堂导航 | 琪琪色在线视频 | 国产精品视频免费观看 | 美女诱惑av | 国产69精品久久 | 五月天综合婷婷 | 在线中文字日产幕 | 天天操天天干天天爽 | 四虎影院色 | av资源站| 蜜桃av中文字幕 | 久久伊人超碰 | 97无码精品人妻 | 日日夜夜精品 | 中文字幕线人 | 99色网站 | 97视频一区二区三区 | 涩涩97| 欧美综合亚洲图片综合区 | 加勒比成人av | 日韩不卡高清视频 | 亚洲妇女体内精汇编 | 99在线免费观看 | 亚洲免费观看在线 | 变态 另类 国产 亚洲 | 亚洲中文字幕无码专区 | 粉嫩精品久久99综合一区 | 人妻天天爽夜夜爽一区二区三区 | 国产人妻精品一区二区三区 | 日韩大片免费观看视频播放 | 欧美一区二区最爽乱淫视频免费看 | 午夜激情在线观看视频 | 日韩精品毛片 |