# Description
What do you do if you encounter Flutter on Linux?
Plain Text
๋ณต์ฌ
# ๋ถ์
slutter.zip ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์๋ค.
ํด๋น ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์์ถ์ ํ์ด๋ณด๋ฉด ์๋์ ๊ฐ์ ํ์ผ ๊ตฌ์กฐ๋ฅผ ํ์ธํ ์ ์๋ค.
./
โโโ data
โ โโโ flutter_assets
โ โ โโโ AssetManifest.bin
โ โ โโโ AssetManifest.json
โ โ โโโ FontManifest.json
โ โ โโโ NOTICES.Z
โ โ โโโ fonts
โ โ โ โโโ MaterialIcons-Regular.otf
โ โ โโโ kernel_blob.bin
โ โ โโโ packages
โ โ โ โโโ cupertino_icons
โ โ โ โโโ assets
โ โ โ โโโ CupertinoIcons.ttf
โ โ โโโ shaders
โ โ โ โโโ ink_sparkle.frag
โ โ โโโ version.json
โ โโโ icudtl.dat
โโโ lib
โ โโโ libflutter_linux_gtk.so
โโโ slutter
Bash
๋ณต์ฌ
slutter ํ์ผ์ ํ์ธํด๋ณด๋ฉด ์๋์ ๊ฐ์ด ELF ํ์ผ์ธ ๊ฒ์ ์ ์ ์๋ค.
file ./slutter
./slutter: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=c77dcc8e7423c8e589ceca8752cadcc937408f1d, for GNU/Linux 4.4.0, with debug_info, not stripped
Bash
๋ณต์ฌ
์คํํด๋ณด๋ฉด ์๋์ ๊ฐ์ด 0x13371337๋ฒ ํด๋ฆญํ๋ผ๊ณ ๋ฌ๋ค.
ํด๋ฆญํ๋ฉด 1์ฉ ์ฆ๊ฐํ์ง๋ง ๊ณ์ ํ์ค์ ์ผ๋ก ํด๋ฆญ์ ํ๊ณ ์์ ์๊ฐ ์๋คโฆ
์ฝ์ง
1.
์ฑ์ด๋ฉด string์ผ๋ก ๋ฐํ์๋ค๊ณ ์๊ฐํ๋ค.
โ gdb๋ก attach ํ memory dumpํ ํ์ธํด๋ดค์ง๋ง ์์
2.
linux์์ cheat engine ๊ฐ์๊ฑธ๋ก memory value ๋ณ์กฐ
โ memory์์ ๊ฒ์์ ๋๋๋ฐ ๋ณ๊ฒฝํด๋ ์๋ฌด๋ฐ ๋ณํ๊ฐ ์ผ์ด๋์ง ์์
Flutter Debug Mode
Flutter๊ฐ Debug ๋ชจ๋์์๋ ์ปดํ์ผ์ ํ ๋ kernel_blob.bin์ ๋จ๊ธด๋ค๊ณ ํ๋ค.
์ฆ kernel_blob.bin ํ์ผ์ ์์ค์ฝ๊ฐ ๋จ์์๋ค๊ณ ํ์ธํ๊ณ ์ฐ๋ฆฌ๋ ์์์ tree ๋ช
๋ น์ด๋ฅผ ํตํด์ kernel_blob.bin ํ์ผ์ด ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ๋ค.
extract string
kernel_blob.bin์์ string์ ์ถ์ถํ๋ค.
strings kernel_blob.bin > strings.txt
Bash
๋ณต์ฌ
์์ค์ฝ๋๊ฐ ์ถ์ถ๋๋ค.
์ด์ ์ ๋ฌธ์์ด์ ์ฐพ์๋ณธ๋ค.
Ctrl + F๋ก โpush this buttonโ ๊ฒ์ ํ ์ ์๋๋ฅผ ๋ณด๋ฉด flag๊ฐ ๋ฐํ์๋ค.
if (_counter == 0x13371337) {
flag = [
70,
77,
67,
84,
70,
123,
100,
49,
68,
95,
121,
48,
117,
95,
117,
53,
51,
95,
56,
108,
117,
55,
55,
51,
82,
95,
48,
82,
95,
119,
104,
52,
55,
63,
125
];
}
Bash
๋ณต์ฌ
์๊ธด์ ์ ์ง์ง 0x13371337๋ฒ ํด๋ฆญํ์ด๋ ํ๋ ธ๋ค๋ ๊ฒ์ด๋ค.
python ์ฝ๋๋ก ๋ณตํธํํด๋ณด๋ฉด flag๋ฅผ ์ป์ ์ ์๋ค.
[print(chr(i),end='') for i in [70, 77, 67, 84, 70, 123, 100, 49, 68, 95, 121, 48, 117, 95, 117, 53, 51, 95, 56, 108, 117, 55, 55, 51, 82, 95, 48, 82, 95, 119, 104, 52, 55, 63, 125]]
Python
๋ณต์ฌ
# Flag
FMCTF{d1D_y0u_u53_8lu773R_0R_wh47?}
Plain Text
๋ณต์ฌ





