์ „์ฒด ๊ธ€

๐Ÿ“šโ”‚War_Game/๐Ÿซโ”‚Genius_SW

assembly_study-2

Helloword_patch Helloword ์ถœ๋ ฅ๋Œ€์‹  ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ ๋ญ ๋”ฑํžˆ ํ•ด์„ํ•  ๋ถ€๋ถ„์€ ์—†๋Š”๊ฑฐ ๊ฐ™๊ณ  ์ฃผ์„์— Hello World!!๋งŒ ๋ฐ”๊พธ๋Š” ํ–‰๋™์„ ์ทจํ•ด๋ณผ๊นŒ์š” patch ์—ฐ์Šต ์ฝ”๋“œ๋‹ˆ๊นŒ์š” ใ…Žใ…Ž ์šฐํด๋ฆญํ•ด์„œ ๋ฐ”๋กœ ์œ„์™€ ๊ฐ™์ด ๋ˆ„๋ฅด์…”๋„ ๋˜๊ณ  ๊ทธ๋ž˜๋„ ์—ฐ์Šต ์ฝ”๋“œ๋ผ๋„ ์•Œ์•„๋Š” ๋ด์•ผ๊ฒ ์ฃ  ์œ„์ฒ˜๋Ÿผ ์ ‘๊ทผํ•ด offset์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์žก์œผ๋‹ˆ๊นŒ hxd๋กœ ํ™•์ธ ์ˆ˜์ •ํ•˜๋ฉด ๋(F2)~ ๊ทธ๋Ÿผ ๋ฌธ์ž์—ด ํŒจ์น˜๊ฐ€ ๋๋‚ฌ์ฃ  ์ €์žฅํ•˜๊ณ  ๋กœ๋“œํ•ด์„œ ํ™•์ธํ•ด๋ณผ๊นŒ์š”? ์ฐธ๊ณ ๋กœ ๋กœ๋“œํ•˜๋ฉด ์›๋ณธ ์‹คํ–‰ํŒŒ์ผ ๋‚ ์•„๊ฐ€๋‹ˆ๊นŒ ๊ทธ๊ฒŒ ์‹ซ์œผ๋ฉด ๋™์  ๋””๋ฒ„๊ฑฐ ํ•˜๋˜๊ฐ€.. ์›๋ณธ ํŒŒ์ผ ์‚ด๋ฆฌ๋˜๊ฐ€.. ๋‹ค๋ฅธ ํ™•์ธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ด์•ผ๊ฒ ์ฃ ? ์ „ ์•„์ง ์ด๊ฒƒ๋ฐ–์— ๋ชฐ๋ผ์„œ ใ…  ์ฐธ๊ณ ๋กœ ์ €์ฒ˜๋Ÿผ ํ• ๊ฑฐ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ๊ฑด๋“ค์ง€๋ง๊ณ  ๊ทธ๋ƒฅ ๋ˆ„๋ฅด์„ธ์š” accessBingo_patch Bingo๋ฅผ ์ถœ๋ ฅํ•˜๋Š”..

๐Ÿ“šโ”‚War_Game/๐Ÿซโ”‚Genius_SW

assembly_study-1

assembly_test_1 assembly test ๋””์ปดํŒŒ์ผ ๋ฐ ํŒจ์น˜ ์ด์ œ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ™•์ธ์„ ํ•˜๋ฉฐ ์ด๋ฏธ์ง€๋กœ ์‰ฌ์šด ๊ฑด ์„ค๋ช… ์•ˆ ํ• ๊ฒŒ์š” ๊ด€๊ณ„๋„๊ฐ€ ์ €๋ ‡๊ฒŒ ํ‘œํ˜„๋˜๋ฉฐ, ํ”„๋กค๋กœ๊ทธ๋Š” ๊ฑด๋„ˆ๋›ฐ๊ณ  mov dword ptr์— a=1, b=2์ด๋ฉฐ offset์œผ๋กœ before..๋กœ ์Šคํƒ์— ์ €์žฅ๋˜๋ฉฐ, ๋ฐ”๋กœ before..์„ ์ถœ๋ ฅํ•˜๊ณ  ๋ฐ”๋กœ a์™€ b๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. jle์ด๋ฏ€๋กœ ์˜ค๋ฅธ์ชฝ์ด ํฌ๋‹ค๋ฉด.. mov dword ptr์— 0์„ ๋Œ€์ž…ํ•ด ๋ฐ˜ํ™˜ํ•˜๋„ค์š” ์ฆ‰, c=1; ์•„๋‹ˆ๋ผ๋ฉด mov dword ptr์— 1๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  after..๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๋ฅผ ์—ํ•„๋กœ๊ทธํ•˜๋ฉฐ, mainํ•จ์ˆ˜๋ฅผ ๋! ์‚ฌ์‹ค IDA๋Š” ๋””์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋ฐ”๋กœ ๋˜์„œ ๊ทธ๋ƒฅ F5ํ•˜๋ฉด ๋˜๊ธด ํ•ด์š” ใ…Žใ…Ž ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๋ถ€ ์Šคํƒ์—์„œ๋งŒ ๋Œ๊ณ  ์ถœ๋ ฅ๊ฐ™์€ ๋ถ€๋ถ„์ด ์—†๊ธฐ์— ๋””์ปดํŒŒ์ผํ•˜๋ฉด ๋ฐ‘์—์ฒ˜๋Ÿผ ๋‚˜..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“•โ”‚Dreamhack_Hacking

ssp_001

๋ฌธ์ œํ’€์ด ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ๊ธฐ๋ฒ•์„ ๋จผ์ € ๋ณด์‹œ๋ฉด canary์ ์šฉ๊ณผ NX๊ฐ€ ์žˆ์ฃ  RELRO๋Š” ์ €๊ฒŒ ๋œ๊ฑด๊ฐ€? Relro๋Š” ๋‹ค์Œ์— ์ž์„ธํžˆ ์„œ์ˆ ํ•  ์‹œ๊ฐ„์ด ์˜ค๊ฒ ์ฃ  ๊ทธ๋Ÿฌ๋‹ˆ ์ด ๋‚ด์šฉ์€ ํŒจ์Šคํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด์„œ ๋ญ๊ฐ€ ์ทจ์•ฝํ•œ ์ฝ”๋“œ์ธ์ง€ ์‹œํ์–ด ์ฝ”๋”ฉ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ง€์ ๊นŒ์ง€ ํ•ด๋ณผ๊นŒ์š” HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค ์ด ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ์ œ๋ชฉ๊ณผ ์ฃผ์ œ๊ฐ€ ์ฃผ์ œ์ด๋ฏ€๋กœ ๋‹น์—ฐํžˆ BOF๊ฐ€ ์ ์–ด๋„ ๋‘ ๋ฒˆ ๋‚˜์˜ค๊ฒ ์ฃ  ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๋ฉด... ์†”์งํžˆ ์ € case ๋ชจ๋‘ ์ทจ์•ฝํ•œ ์ฝ”๋“œ์ด๊ธด ํ•ด์š” ๋ญ๊ฐ€ ๋ฌธ์ œ์ธ์ง€ ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณผ๊นŒ์š” ์œ„ ์ฝ”๋“œ๋Š” BOF๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์ง€๋งŒ ์น˜๋ช…์ ์ธ ์ฝ”๋“œ ์‹คํ–‰๊นŒ์ง€๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ Canary๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š”๋ฐ.. ์™œ๋ƒํ•˜๋ฉด Box์˜ ๋ณ€์ˆ˜๋ช…์ธ ๋ณ€์ˆ˜ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ 0x40์ด๋‹ˆ๊นŒ ๊ทธ ์ด์ƒ์œผ๋กœ ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋˜๊ฒ ์ฃ  ๋‘ ๋ฒˆ์งธ ์ฝ”๋“œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ž…๋ ฅ๊ฐ’์˜ ์ธ์ž์˜ ๊ธธ์ด๋ฅผ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“—โ”‚Dreamhack_Reversing

rev-basic-0

ํŒŒ์ผ ์‹คํ–‰ ๋จผ์ € ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ์‹œ๋‹ค. ์ฐธ๊ณ ๋กœ ์œ„๊ฒŒ์ž„ ๋ฌธ์ œ์™€ ๊ฐ™์ด ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ๋•Œ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ(VM)์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด good! ๋งŒ์•ฝ ๋ฌธ์ œ ์ •๋ณด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘ ๋ฐฉ์‹์ด ์˜ˆ์ƒ์ด ๊ฐ„๋‹ค๋ฉด ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ •์ ๋ถ„์„์„ ๋จผ์ € ์‹œ๋„๋„ ์ข‹์€ ๋ฐฉ๋ฒ• ์œˆ๋„์šฐ OS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” Windows PowerShell์— ๋ฌธ์ œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•œ ๋ชจ์Šต์„ ๋ณด์—ฌ์ฃผ์ž๋ฉด.. ๋ฌธ์ œ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์˜ ์–ด๋–ค ๊ฒ€์ฆ๊ณผ์ •์„ ๊ฑฐ์ณ ์ž…๋ ฅํ•œ ๋ฌธ์ž์—ด์ด ๊ฒ€์ฆ์„ ํ†ต๊ณผํ–ˆ๋‹ค๋ฉด Correct, ํ†ต๊ณผ ๋ชปํ•˜๋ฉด Wrong์„ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฑธ ์œ ์ถ”๊ฐ€๋Šฅ ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฌธ์ œ์˜ ์ •๋‹ต(flag)์€ ๊ฒ€์ฆ๊ณผ์ •์„ ํ†ต๊ณผํ•˜์—ฌ Correct๊ฐ€ ์ถœ๋ ฅ๋˜๋„๋ก ํ•˜๋Š” ์ž…๋ ฅ๊ฐ’์ด ๋  ๊ฑฐ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“—โ”‚Dreamhack_Reversing

Exercise: Helloworld

๋ถ„์„(Export)! ์˜ˆ์ œ๋กœ HelloWorld.exe๋ฅผ ๋ถ„์„ํ•ด๋ณด๋Š” ์‹ค์Šต์„ ํ•ด๋ด…์‹œ๋‹ค. ์˜ˆ์ œ์—” 1์ดˆ๋ฅผ ๋Œ€๊ธฐ ํ›„ Hello, world!๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ, ์˜ค๋ฅธ์ชฝ์—์„œ ๋‚ด๋ ค๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ์ง์ ‘ ์ปดํŒŒ์ผํ•˜๊ณ  ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ฝ”๋“œ๋„ ์นœ์ ˆํžˆ ์˜ฌ๋ ค์•ผ์ฃ  ์šฐ๋ฆฌ๋Š” ์ด ์ฝ”๋“œ์— ๋Œ€ํ•˜์—ฌ ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฅธ๋‹จ ์ „์žฌํ•˜์— ์ง„ํ–‰ํ•ด์•ผ ๋ฆฌ๋ฒ„์‹ฑ์ด๊ฒ ์ฃ  ์ž ๊ทธ๋Ÿผ ํ•œ๋ฒˆ ๋ฐ‘์— exe ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ฑฐ๋‚˜ ์ปดํŒŒ์ผ ํ•˜์…”์„œ ํ™•์ธํ•ด๋ด…์‹œ๋‹ค ์ฐธ๊ณ ๋กœ ์ „ IDA ์“ธ๊ฑฐ์˜ˆ์š” /* File: hello-world.cpp Build opts: - /MT -> Library Static Linking - /DYNAMICBASE:NO -> Disable ASLR - /od -> Disable Optimization */ #include #include ch..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“—โ”‚Dreamhack_Reversing

x86 Assembly

x86 Assembly๐Ÿค–: Essential Part x86 Assembly: Essential Part ํ•ด์ปค์˜ ์–ธ์–ด: ์–ด์…ˆ๋ธ”๋ฆฌ๐Ÿ’ฌ PC์—์„œ ๋ณต์žกํ•œ ๋…ผ๋ฆฌ์  ์ธ๊ณผ๊ด€๊ณ„, ์—ฌ๋Ÿฌ ๊ฐœ์ฒด๊ฐ€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉฐ ๊ทธ ์„ธ๊ณ„์—์„œ ํ†ต์šฉ๋˜๋Š” ๊ธฐ๊ณ„์–ด(Machine Code)์–ธ์–ด ํ•ต์‹ฌ! ์‹œ์Šคํ…œ ํ•ดํ‚น์„ ํ•  ๋•Œ๋Š” ์ปดํ“จํ„ฐ ์–ธ์–ด, ์šด์˜์ฒด์ œ, ๋„คํŠธ์›Œ dystopia050119.tistory.com Quiz: x86 Assembly Quiz: x86 Assembly dystopia050119.tistory.com ๊ธฐ์กด์— ์ •๋ฆฌ๋œ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋„ค์š”.. ์‹œ์Šคํ…œ์„ ํ•˜๊ธฐ์ „์— ์ด ์ปค๋ฆฌํ˜๋Ÿผ์„ ๋จผ์ €ํ• ๊ฑธ.. ใ…  ์ œ๊ฐ€ ์ด ๋ธ”๋กœ๊ทธ๋ฅผ ํ•˜๋Š” ์ด์œ ๋Š” ์—ฌ๋Ÿฌ ์ด์œ ๊ฐ€ ์žˆ์ง€๋งŒ ๊ทธ ์ค‘์— ํ•˜๋‚˜๊ฐ€ ํฌํด์šฉ์ด๋ผ์„œ ์ด๋ฒˆ๋งŒ ๋‚ ๋จนํ• ๊ป˜์š” ํ—ท ์ฐธ๊ณ  ์ž๋ฃŒ x86 Assembly๐Ÿค–: Essential ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“—โ”‚Dreamhack_Reversing

Computer Science

Computer Architecture Computer Architecture 1. ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture) ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ๋Š” PC์„ค๊ณ„๋ฅผ ์—ฌ๋Ÿฌ ํ•˜๋“œ์›จ์–ด๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ณ , ์ด๋“ค์„ ์กฐ๋ฆฝํ•ด์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์™„์„ฑํ•œ ๊ฒƒ์ด ์ปดํ“จํ„ฐ ๊ตฌ์กฐ! ๋”๋ณด๊ธฐ ๐Ÿ“œ๊ฐœ์š”๐Ÿ“œ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(Computer Architecture) dystopia050119.tistory.com ํ€ด์ฆˆ๋Š” ๋”ฑํžˆ ์„ค๋ช… ์•ˆ ํ• ๊ป˜์š” ์ €๊ฑฐ ๋ดค์œผ๋ฉด ์ง„์งœ๋กœ ๊ธฐ์ดˆ๋‹ˆ๊นŒ ์–ด์งœํ”ผ ๋ชจ๋ฅด์‹œ๋ฉด ๋‹ค์‹œ ๋ฐฐ์›Œ์•ผํ•ด์š” Background: Windows Memory Layout ๋ฉ”๋ชจ๋ฆฌ ๋ ˆ์ด์•„์›ƒ(Memory Layout) : ํ”„๋กœ์„ธ์Šค ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ(Virtual Memory)์˜ ๊ตฌ์„ฑ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋ฉด OS๋Š” ํ”„๋กœ์„ธ์Šค์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•˜๋ฉฐ, CS์—์„  ์ด ๊ณต๊ฐ„์„ ..

๐ŸŒ‡โ”‚System_Study/๐Ÿ“—โ”‚Dreamhack_Reversing

Background: Static Analysis vs. Dynamic Analysis

๋ฆฌ๋ฒ„์Šค ์—”์ง€๋‹ˆ์–ด๋ง ์ •์  ๋ถ„์„(Static)๊ณผ ๋™์  ๋ถ„์„(Dynamic) ๊ตฌ๋ถ„ ์ •์  ๋ถ„์„ : ์™ธ์ ์ธ ๊ด€์ฐฐ๋งŒ์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์ทจ๋“ ๋™์  ๋ถ„์„ : ์‹คํ–‰์„ ํ†ตํ•ด ๋™์ž‘์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ! ๋Œ€๊ฒŒ ์ •์ ์ธ ๋ฐฉ๋ฒ•๊ณผ ๋™์ ์ธ ๋ฐฉ๋ฒ•์„ ์ ์ ˆํžˆ ํ˜ผ์šฉํ•˜๋ฉด ๋Œ€์ƒ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„์„ ๊ฐ€๋Šฅ! ๋™์ ์ธ ๋ฐฉ๋ฒ•๋งŒ์„ ๊ณ ์ˆ˜ํ•˜๋ฉด ํฐ ๊ตฌ์กฐ๋ฅผ ๋†“์น  ์ˆ˜ ์žˆ๊ณ , ๋ฐ˜๋Œ€๋กœ ์ •์ ๋งŒ ๊ณ ์ˆ˜ํ•˜๋ฉด ์‹คํ–‰์„ ํ†ตํ•ด ์ง๊ด€์ ์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ๋ถ„์„ํ•˜๋Š๋ผ ์‹œ๊ฐ„์„ ํ—ˆ๋น„ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†ํ›„ํ•˜์ฃ .. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ •์  ๋ถ„์„๊ณผ ๋™์  ๋ถ„์„ ์ค‘ ํ•œ ๋ฐฉ๋ฒ•๋งŒ์„ ๊ณ ์ˆ˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ.. ์–ด๋–ค ์ƒํ™ฉ์— ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•  ๊ฒƒ์ด๋ƒ๊ฐ€ ์‹ค๋ ฅ์„ ์ขŒ์šฐํ•˜๋Š” ์ค‘์š”ํ•œ ์š”์†Œ์ฃ  ์ •์  ๋ถ„์„(Static Analysis)๐Ÿ” ์ •์  ๋ถ„์„(Static Analysis) : ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค์ง€ ์•Š๊ณ  ๋ถ„..

Jastes
Jastes