ctf-cybrics
Warmup (Web, Baby, 10 pts)
下載該鏈接獲取html即可:
Zakukozh (Cyber, Baby, 10 pts)
Zakukozh.bin:
題目說明文件是一個圖像文件,但是被仿射密碼加密。
目前常見的圖片文件有:jpg、png、bmp、gif。根據magic num來判斷原文件格式。
jpg魔數:ff d8 ff e0,對比可知不是jpg文件。
png魔數: 89 50 4E 47 0D 0A 1A 0A,對比可知可能爲png文件。
int main()
{
long inv_a = inverse(0xF, 0x100);
char c;
ifstream inFile("../Debug/zakukozh.bin", ios::binary | ios::in); //以二進制讀模式打開文件
if (!inFile) {
cout << "Source file open error." << endl;
return 0;
}
ofstream outFile("../Debug/zakukozh.png", ios::binary | ios::out); //以二進制寫模式打開文件
if (!outFile) {
cout << "New file open error." << endl;
inFile.close();
return 0;
}
while (inFile.get(c)) //每次讀取一個字符
{
char tmp = inv_a * (c - 0x59) % 0x100;
outFile.put(tmp); //每次寫入一個字符
}
outFile.close();
inFile.close();
return 0;
}
Oldman Reverse (Reverse, Baby, 10 pts)
oldman.asm
.MCALL .TTYOUT,.EXIT
START:
mov #MSG r1
mov #0d r2
mov #32d r3
loop:
mov #MSG r1
add r2 r1
movb (r1) r0
.TTYOUT
sub #1d r3
cmp #0 r3
beq DONE
add #33d r2
swab r2
clrb r2
swab r2
br loop
DONE:
.EXIT
MSG:
.ascii "cp33AI9~p78f8h1UcspOtKMQbxSKdq~^0yANxbnN)d}k&6eUNr66UK7Hsk_uFSb5#9b&PjV5_8phe7C#CLc#<QSr0sb6{%NC8G|ra!YJyaG_~RfV3sw_&SW~}((_1>rh0dMzi><i6)wPgxiCzJJVd8CsGkT^p>_KXGxv1cIs1q(QwpnONOU9PtP35JJ5<hlsThB{uCs4knEJxGgzpI&u)1d{4<098KpXrLko{Tn{gY<|EjH_ez{z)j)_3t(|13Y}"
.end START
SWAB指令交換指定字的高字節和低字節,並且沒有字節尋址。
以上資料來自維基百科。得知swab爲word的字節交換,clrb爲字節清除。還原爲C代碼如下所示。
#include <stdio.h>
int main()
{
char msg[] = "cp33AI9~p78f8h1UcspOtKMQbxSKdq~^0yANxbnN)d}k&6eUNr66UK7Hsk_uFSb5#9b&PjV5_8phe7C#CLc#<QSr0sb6{%NC8G|ra!YJyaG_~RfV3sw_&SW~}((_1>rh0dMzi><i6)wPgxiCzJJVd8CsGkT^p>_KXGxv1cIs1q(QwpnONOU9PtP35JJ5<hlsThB{uCs4knEJxGgzpI&u)1d{4<098KpXrLko{Tn{gY<|EjH_ez{z)j)_3t(|13Y}";
char* pMsg = msg;
short index = 0;
for (int i = 32; i != 0; i--)
{
pMsg = msg + index;
char tmp = *pMsg;
printf("%c", tmp);
index += 33;
index = index & 0xff;
}
return 0;
}
Tone (Forensic, Baby, 10 pts)
該鏈接是一個y站的視頻地址,畫面沒有啥的,有聲音,下載並轉換格式爲wav,使用audacity打開。
對比頻率一一獲取到按鍵序號:
222 999 22 777 444 222 7777 7777 33 222 777 33 8 8 666 66 2 555 333 555 2 4
電話按鍵對應字母:
cybricssecrettonalflag
參考鏈接:https://www.freebuf.com/geek/5507.html