์ „์ฒด ๊ธ€ 110

[DreamHack System Hacking] Master Canary - (2)

๋ฌธ์ œ ์ฝ”๋“œ // Name: mc_thread.c // Compile: gcc -o mc_thread mc_thread.c -pthread -no-pie #include #include #include #include void giveshell() { execve("/bin/sh", 0, 0); } void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } int read_bytes (char *buf, int len) { int idx = 0; int read_len = 0; for (idx = 0; idx < len; idx++) { int ret; ret = read(0, buf+idx, 1); if (ret < 0) { return rea..

[DreamHack System Hacking] Master Canary - (1)

์‹ค์Šต ์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. // Name: mc_thread.c // Compile: gcc -o mc_thread mc_thread.c -pthread -no-pie #include #include #include #include void giveshell() { execve("/bin/sh", 0, 0); } void init() { setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); } void thread_routine() { char buf[256]; int size = 0; printf("Size: "); scanf("%d", &size); printf("Data: "); read(0, buf, size); } int main() { pthread_..

[DreamHack System Hacking] Master Canary

Thread Local Storage Thread Local Storage (TLS)๋Š” ๋ช…์นญ ๊ทธ๋Œ€๋กœ ์Šค๋ ˆ๋“œ์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ์˜๋ฏธํ•œ๋‹ค. ELF ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, ๊ฐ๊ฐ์˜ ๋ชฉ์ ์„ ๊ฐ€์ง„ ์„น์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ .text, ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์€ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์œ„ํ•œ .data๋“ฑ์„ ์˜ˆ์‹œ๋กœ ๋“ค ์ˆ˜ ์žˆ๋‹ค. TLS ์˜์—ญ์€ ์ด์™€ ๋‹ฌ๋ฆฌ ์Šค๋ ˆ๋“œ์˜ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์œผ๋กœ, ๋กœ๋”(Loader)์— ์˜ํ•ด ํ• ๋‹น๋œ๋‹ค. ๋‹ค์Œ์€ ๋กœ๋”์—์„œ TLS ์˜์—ญ์„ ํ• ๋‹นํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜์ธ init_tls์˜ ์ฝ”๋“œ์ด๋‹ค. static void * init_tls (void) { /* Construct the static TLS block and the dtv for the initial thread. For some pla..

์›น ํ”„๋กœ์ ํŠธ (SISS 2ํ•™๊ธฐ ๊ฒจ์šธ๋ฐฉํ•™)

์ด์ „์— ๋ธ”๋กœ๊ทธ ์“ฐ๋‹ค๊ฐ€ ์ด์ œ ์•ˆ์ผ๋”๋‹ˆ ์–ด๋”˜๊ฐ€ ๊ธฐ๋ก์„ ํ•ด๋‘๊ณ  ๋ณด๊ณ  ์‹ถ์–ด์„œ ์„œ์˜์ด๊บผ๋ฅผ ์˜ฎ๊ฒจ์˜ค๊ธฐ๋กœ,,,๊ฒฐ์ • 4์ฃผ์ฐจ_์›นํ”„๋กœ์ ํŠธ ์ด๋ฒˆ ์ฃผ ์›นํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์บ๋ฆญํ„ฐ์˜ ์„ฑ๋Šฅ์„ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์บ๋ฆญํ„ฐ์˜ database๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค ์›นํŽ˜์ด์ง€์˜ ์ฃผ์š”๊ธฐ๋Šฅ์€ '(์ง€์ƒ์—์„œ์˜) ์†๋„, ๊ฐ€์†, ๋ฌด๊ฒŒ, (์ง€์ƒ์—์„œ์˜) ํ•ธ๋“ค๋ง, ๋งˆ์ฐฐ๋ ฅ, ๋ฌด๊ฒŒ' 2110917.tistory.com

Docker-Compose ์„ค์น˜, ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

ํฌ๋„ˆ๋ธ” ๋ฌธ์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •์—์„œ Dockerfile์ด ํ•„์š”ํ–ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Docker-Compose๋ฅผ ์„ค์น˜ํ•ด๋ณด์ž. $ sudo snap install curl $ sudo apt install curl ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทผ๋ฐ ์œ„์—์„œ ๋‘ ๋ฒˆ์งธ ๋ช…๋ น์–ด๋ฅผ ์„ค์น˜ํ•˜๋‹ค๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋–ด๋‹ค. ํ•ด๊ฒฐ_ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐ๋œ๋‹ค. ๊ทธ ๋‹ค์Œ ์ด์–ด์„œ ์„ค์น˜ํ•ด๋ณด๋ฉด ์„ค์น˜๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ๋๋‹ค. ์ด์ œ ํŒŒ์ผ๋งŒ ์˜ฌ๋ฆฌ๋ฉด ๋œ๋‹ค!

[Python] ๋ฐฑ์ค€ 1475๋ฒˆ

1475๋ฒˆ. ๋ฐฉ ๋ฒˆํ˜ธ (silver 5) ๋‹ค์†œ์ด๋Š” ์€์ง„์ด์˜ ์˜†์ง‘์— ์ƒˆ๋กœ ์ด์‚ฌ์™”๋‹ค. ๋‹ค์†œ์ด๋Š” ์ž๊ธฐ ๋ฐฉ ๋ฒˆํ˜ธ๋ฅผ ์˜ˆ์œ ํ”Œ๋ผ์Šคํ‹ฑ ์ˆซ์ž๋กœ ๋ฌธ์— ๋ถ™์ด๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด์˜ ์˜†์ง‘์—์„œ๋Š” ํ”Œ๋ผ์Šคํ‹ฑ ์ˆซ์ž๋ฅผ ํ•œ ์„ธํŠธ๋กœ ํŒ๋‹ค. ํ•œ ์„ธํŠธ์—๋Š” 0๋ฒˆ๋ถ€ํ„ฐ 9๋ฒˆ๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•˜๋‚˜์”ฉ ๋“ค์–ด์žˆ๋‹ค. ๋‹ค์†œ์ด์˜ ๋ฐฉ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ•„์š”ํ•œ ์„ธํŠธ์˜ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•˜์‹œ์˜ค. (6์€ 9๋ฅผ ๋’ค์ง‘์–ด์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ณ , 9๋Š” 6์„ ๋’ค์ง‘์–ด์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.) ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ๋‹ค์†œ์ด์˜ ๋ฐฉ ๋ฒˆํ˜ธ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ํ•„์š”ํ•œ ์„ธํŠธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ1 9999 ์˜ˆ์ œ ์ถœ๋ ฅ1 2 ์˜ˆ์ œ ์ž…๋ ฅ2 122 ์˜ˆ์ œ ์ถœ๋ ฅ2 2 ์˜ˆ์ œ ์ž…๋ ฅ3 12635 ์˜ˆ์ œ ์ถœ๋ ฅ3 1 ๋ฐฉ ๋ฒˆํ˜ธ n์„ input์„ ํ†ตํ•ด ์ž…..

[Python] ๋ฐฑ์ค€ 1427๋ฒˆ

1427๋ฒˆ. ์†ŒํŠธ์ธ์‚ฌ์ด๋“œ (silver 5) ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์€ ์‰ฝ๋‹ค. ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ๊ทธ ์ˆ˜์˜ ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด๋ณด์ž. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ •๋ ฌํ•˜๋ ค๊ณ  ํ•˜๋Š” ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 1,000,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์ž๋ฆฌ์ˆ˜๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ1 2143 ์˜ˆ์ œ ์ถœ๋ ฅ1 4321 ์˜ˆ์ œ ์ž…๋ ฅ2 999998999 ์˜ˆ์ œ ์ถœ๋ ฅ2 999999998 ์˜ˆ์ œ ์ž…๋ ฅ3 61423 ์˜ˆ์ œ ์ถœ๋ ฅ3 64321 sort(reverse=True)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ด๋‹ค. ๊ฐ ์ˆซ์ž๋ฅผ ์ž๋ฆฌ ๋ณ„๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด num์„ ์„ ์–ธํ•˜๊ณ  n์— ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ €์žฅํ•œ๋‹ค. for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ strํ˜•์˜ n์— ๋Œ€ํ•ด n์„ num ๋ฐฐ์—ด์— intํ˜•์œผ๋กœ ์ €์žฅํ•œ๋‹ค. -> ์ด๋ ‡๊ฒŒ ๋˜๋ฉด..

[Python] ๋ฐฑ์ค€ 11866๋ฒˆ

11866๋ฒˆ. ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ 0 (silver 4) ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ N๋ช…์˜ ์‚ฌ๋žŒ์ด ์›์„ ์ด๋ฃจ๋ฉด์„œ ์•‰์•„์žˆ๊ณ , ์–‘์˜ ์ •์ˆ˜ K(≤ N)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด์ œ ์ˆœ์„œ๋Œ€๋กœ K๋ฒˆ์งธ ์‚ฌ๋žŒ์„ ์ œ๊ฑฐํ•œ๋‹ค. ํ•œ ์‚ฌ๋žŒ์ด ์ œ๊ฑฐ๋˜๋ฉด ๋‚จ์€ ์‚ฌ๋žŒ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์›์„ ๋”ฐ๋ผ ์ด ๊ณผ์ •์„ ๊ณ„์†ํ•ด ๋‚˜๊ฐ„๋‹ค. ์ด ๊ณผ์ •์€ N๋ช…์˜ ์‚ฌ๋žŒ์ด ๋ชจ๋‘ ์ œ๊ฑฐ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†๋œ๋‹ค. ์›์—์„œ ์‚ฌ๋žŒ๋“ค์ด ์ œ๊ฑฐ๋˜๋Š” ์ˆœ์„œ๋ฅผ (N, K)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์ด๋ผ๊ณ  ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด (7, 3)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์€ ์ด๋‹ค. N๊ณผ K๊ฐ€ ์ฃผ์–ด์ง€๋ฉด (N, K)-์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— N๊ณผ K๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ N ≤ 1,000) ์ถœ๋ ฅ ์˜ˆ์ œ์™€ ๊ฐ™์ด ์š”์„ธํ‘ธ์Šค ์ˆœ์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ1 7 ..

[Python] ๋ฐฑ์ค€ 1748๋ฒˆ

1748๋ฒˆ. ์ˆ˜ ์ด์–ด์“ฐ๊ธฐ 1 (silver 4) 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์ด์–ด์„œ ์“ฐ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒˆ๋กœ์šด ํ•˜๋‚˜์˜ ์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. 1234567891011121314151617181920212223... ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์ƒˆ๋กœ์šด ์ˆ˜๋Š” ๋ช‡ ์ž๋ฆฌ ์ˆ˜์ผ๊นŒ? ์ด ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— N(1 ≤ N ≤ 100,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์ƒˆ๋กœ์šด ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ1 5 ์˜ˆ์ œ ์ถœ๋ ฅ1 5 ์˜ˆ์ œ ์ž…๋ ฅ2 15 ์˜ˆ์ œ ์ถœ๋ ฅ2 21 ์˜ˆ์ œ ์ž…๋ ฅ3 120 ์˜ˆ์ œ ์ถœ๋ ฅ3 252 ์ฒ˜์Œ์—๋Š” n๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ๋ฐฐ์—ด์— strํ˜•ํƒœ๋กœ ์ €์žฅํ•œ ๋‹ค์Œ len์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋”ํ•˜๋ฉด ๋ ๊นŒ ํ–ˆ๋Š”๋ฐ, ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™€์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ๊ทœ์น™์„ ์ฐพ์•„๋ณด๋ฉด, 1 ~ 9..

[Reversing.Kr] Easy Keygen

์ด๋ฒˆ ๋ฌธ์ œ์—๋Š” Easy Keygen.exe ํŒŒ์ผ๊ณผ Readme ํ…์ŠคํŠธ ํŒŒ์ผ์ด ์กด์žฌํ•œ๋‹ค. Easy Keygen.exe๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ž…๋ ฅ์„ AAAA, ๋‘ ๋ฒˆ์งธ ์ž…๋ ฅ์„ BBBB๋ผ๊ณ  ์ž…๋ ฅํ•ด๋ณด๋‹ˆ Wrong๊ณผ ๊ฐ™์€ ์ถœ๋ ฅ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ReadMe ํ…์ŠคํŠธ ํŒŒ์ผ ์•ˆ์˜ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. input Name์— ๋˜‘๊ฐ™์ด AAAA๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๊ณ , input Serial์—๋Š” ๋‹ค์Œ ํ…์ŠคํŠธ ํŒŒ์ผ์— ์ œ์‹œ๋˜์–ด์žˆ๋Š” Serial ๊ฐ’์„ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ์•„๋ฌด๋Ÿฐ ๋‚ด์šฉ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š๊ณ  ์ข…๋ฃŒ๋˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด์ œ ์˜ฌ๋ฆฌ๋””๋ฒ„๊ฑฐ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด์ž. ์‹คํ–‰ ํ™”๋ฉด๊ณผ ๋น„๊ตํ•ด์„œ ํ™•์ธํ•ด๋ณด๋ฉด 40102E์—์„œ push 408060์„ ํ†ตํ•ด "Input Name: "์ด ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ์Šคํƒ์— ์Œ“๋Š”๋‹ค. ๊ทธ ๋‹ค์Œ ca..

DreamHack/Reversing 2022.07.03