高校戰“疫”網絡安全分享賽Re:天津垓WP

復現題

我下載的時候這個題缺了個dll,補上後運行下程序,觀察。
在這裏插入圖片描述
需要輸入授權字符串。拖入IDA查看,查看字符串,發現有限制調試工具的代碼,解除。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
找到第一個輸入點。需要輸入符號位運算的合法輸入,寫個腳本破解,如下:

str = [0x52, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x48, 0x6f, 0x70, 0x70, 0x65, 0x72, 0x21]
arr = [17, 8, 6, 10, 15, 20, 42, 59, 47, 3, 47, 4, 16, 72, 62, 0, 7, 16]

flag = ''
for i in range(18):

    for j in range(127):
        v43 = ~(j & str[i % 14]) & (j | str[i % 14])
        if v43 == arr[i]:
            flag += chr(j)
print(flag)

得到結果:
在這裏插入圖片描述
輸入驗證後發現程序直接退出了。
在這裏插入圖片描述
接着往下看,發現text代碼段有一段數據,沒有解析爲指令。
在這裏插入圖片描述
使用IDA分析下看看,沒有解析成功,應該是人爲加密了。用交叉引用查哪裏曾經調用了這段代碼。發現有段彙編call了那段數據,說明是個函數。此處查看下僞代碼,找到了一個加密數據的函數。
在這裏插入圖片描述
這個函數調用了一個win32API,而根據微軟msdn中給出的描述,這個API的作用是指定某段區域設置訪問保護,然後這個函數緊接着對保護區域與輸入進行異或以加密。
我們只需要對保護區域的數據進行解密即可用IDA分析得到保護區域的原數據,也就是彙編指令。
在這裏插入圖片描述
參考大佬的腳本後發現,可以直接用IDAPython的API進行操作,實在是太方便了。腳本如下(必須要在IDA中跑):

input =[67, 97, 117, 99, 97, 115, 117, 115, 64, 115, 95, 97, 98, 105, 108, 105, 116, 121]
for i in range(1045):
    address = 0x10040164D + i
    byte = get_bytes(address, 1)#IDApythonAPI,作用是獲取指定地址的指定字節數
    byte = ord(byte) ^ input[i%18]
    patch_byte(address, byte)#IDApythonAPI,更改指定地址的字節爲byte

分析解密的數據段,並創建函數,查看僞代碼。
在這裏插入圖片描述
上圖紅框同樣和第一次輸入時做了類似的事情。寫個逆向腳本破解即可,如下:

data = [
2007666,
2125764,
1909251,
2027349,
2421009,
1653372,
2047032,
2184813,
2302911,
2263545,
1909251,
2165130,
1968300,
2243862,
2066715,
2322594,
1987983,
2243862,
1869885,
 2066715,
 2263545,
 1869885,
 964467,
 944784,
 944784,
 944784,
 728271,
 1869885,
 2263545,
 2283228,
 2243862,
   2184813,
   2165130,
   2027349,
 1987983,
2243862,
1869885,
2283228,
2047032,
1909251,
2165130,
1869885,
2401326,
1987983,
2243862,
2184813,
885735,
2184813,
2165130,
1987983,
2460375]

v61 = 0x4CE3
v62 = 0x8000000B
flag = ''
for i in range(51):
    for j in range(127):
        v60 = v61 * j % v62
        if v60 == data[i]:
            flag += chr(j)
print(flag)

運行獲得flag
在這裏插入圖片描述

flag{Thousandriver_is_1000%_stronger_than_zero-one}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章