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

assembly_study-1

2022. 5. 23. 22:24
๋ชฉ์ฐจ
  1. assembly_test_1
  2. assembly_test_2
  3. assembly_test_3
  4. assembly_test_4


assembly_test_1

assembly test ๋””์ปดํŒŒ์ผ ๋ฐ ํŒจ์น˜

assembly_test_1.exe
0.10MB

์ด์ œ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ํ™•์ธ์„ ํ•˜๋ฉฐ ์ด๋ฏธ์ง€๋กœ ์‰ฌ์šด ๊ฑด ์„ค๋ช… ์•ˆ ํ• ๊ฒŒ์š”

๊ด€๊ณ„๋„๊ฐ€ ์ €๋ ‡๊ฒŒ ํ‘œํ˜„๋˜๋ฉฐ, ํ”„๋กค๋กœ๊ทธ๋Š” ๊ฑด๋„ˆ๋›ฐ๊ณ 
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ํ•˜๋ฉด ๋˜๊ธด ํ•ด์š” ใ…Žใ…Ž
๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๋ถ€ ์Šคํƒ์—์„œ๋งŒ ๋Œ๊ณ  ์ถœ๋ ฅ๊ฐ™์€ ๋ถ€๋ถ„์ด ์—†๊ธฐ์— ๋””์ปดํŒŒ์ผํ•˜๋ฉด ๋ฐ‘์—์ฒ˜๋Ÿผ ๋‚˜์™€์š”

์™ผ์ชฝ์€ IDA ๋””์ปดํŒŒ์ผ / ์˜ค๋ฅธ์ชฝ์€ ์šฐ๋ฆฌ๊ฐ€ ๋ถ„์„ํ•œ ์ฝ”๋“œ ์›๋ณธ!


assembly_test_2

assembly_test_2.exe
0.10MB

์Œ.. mov offset์— Input..์„ ์ถœ๋ ฅํ•˜๊ณ , lea eax, [esp+1Ch]๋กœ BSS์— ๋ณ€์ˆ˜๋ฅผ ์ผ๋‹จ ๋“ฑ๋ก
๊ทธ๋ฆฌ๊ณ  esp์— 4byte๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ธฐ์— int๋กœ ์ถ”์ •ํ•˜๋ฉฐ, ๋ฐ”๋กœ offset์œผ๋กœ %d๋กœ ๋ฐ›๋„ค์š”
๊ตณ์ด ์ถœ๋ ฅ์„ ํ•˜๊ณ  ๋ฐ”๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋„ค์š” ๊ทธ๋ƒฅ ํ•œ๊บผ๋ฒˆ์— ํ•˜์ง€๋Š”..

๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ mov offset์œผ๋กœ before..์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ๋ฐ›์€ ๊ฐ’์œผ๋กœ ๋ฐ”๋กœ switch case๋ฌธ์„ 5๋ฒˆํ•œ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๋„ค์š” ใ„ทใ„ท gdb๋กœ ๋ถ„์„ํ• ๋•Œ๋ณด๋‹ค ํŽธํ•˜๋„ค
ja๋กœ case๋ฌธ์„ ๋„˜์–ด๊ฐ€๊ณ  ์ฐฌ์ฐฌํžˆ ๋„˜์–ด๊ฐ€๋„ค์š” case๋ฌธ์„ ์ด์ œ ํ•˜๋‚˜์”ฉ ๋ถ„์„ํ•˜๋ฉด ๋์ด์ฃ 


case๋ฌธ๋งˆ๋‹ค ๊ทธ๋ƒฅ Zero, One..์ด๋Ÿฐ์‹์œผ๋กœ Four๊ฐ”๋„ค์š” ๊ทธ๋ฆฌ๊ณ  case๋ฌธ์ด 5๋ฒˆ๊นŒ์ง€์ธ๋ฐ 6๊ฐœ๋‹ˆ๊นŒ ์•„๋งˆ๋„
default๋กœ Error๋กœ case๋ฌธ์„ ๋„˜์–ด๊ฐ€๋Š” ์˜ˆ์™ธ๋ฌธ์€ ์ €๋ ‡๊ฒŒ ์ถœ๋ ฅ์„ ํ•˜๋„ค์š”.


๊ทธ๋ฆฌ๊ณ  ์—ํ•„๋กœ๊ทธ๋กœ ๊ฐ€๊ธฐ์ „์— mov offset after..๋กœ ์ถœ๋ ฅํ•˜๊ณ  ๋๋‚˜๋„ค์š”.

์™ผ์ชฝ์€ IDA ๋””์ปดํŒŒ์ผ๋Ÿฌ ์˜ค๋ฅธ์ชฝ์€ ๋ถ„์„ํ•œ ์›๋ณธ ์ฝ”๋“œ


assembly_test_3

assembly_test_3.exe
0.10MB

ํ”„๋กค๋กœ๊ทธ ์•ž์— and์™€ sub์œผ๋กœ 50byte์„ ๋ฏธ๋ฆฌ ํ• ๋‹นํ•œ ๊ฒƒ์œผ๋กœ ๋ดค์„๋• BSS์— ๋ญ˜ ๋„ฃ์—ˆ๋„ค์š”?
, dword ptr step #1๋กœ ์ถœ๋ ฅํ•˜๋ฉฐ ๋ฐ˜๋ณต๋ฌธ ์“ธ๊ฑด๊ฐ€๋ณด๋„ค์š”
๋˜ mov dword ptr .. 0, 1์ด๋Ÿฌ๋ฏ€๋กœ ๋ฐ˜๋ณต๋ฌธ ํ•จ์ˆ˜๋กœ ์ด๋™ํ•˜์ฃ 

๋ฐ”๋กœ loc_401574:๋กœ ์ด๋™ํ•ด ๋ฐ˜๋ณต๋ฌธ์„ cmp์— [esp+4C]์„ ๋ถˆ๋Ÿฌ์™€์„œ
loc_401567:๋กœ ์ด๋™ํ•˜๋ฉฐ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ 10๋งŒํผ ๋ฐ˜๋ณตํ•ด์„œ ๋Œ๋ ค์ฃผ๋„ค์š”. 0Ah๋กœ cmpํ•˜๋‹ˆ๊นŒ์š”.
๋‹ค์Œ์œผ๋กœ step #2 ์ถœ๋ ฅํ•˜๊ณ  ์ธ์ž๋ฅผ 3๊ฐœ๋ฅผ ๊ฐ๊ฐ 3, 2, 1๋กœ ๋„ฃ์–ด์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๋ญ ๋”ฑํžˆ ์—†๋„ค์š”? ๋ฐ˜ํ™˜๊ฐ’์„ ์•ˆ ๋ฐ›์•„์„œ ์Šคํƒ ํ˜น์€ ํž™์— ์ €์žฅ๋˜์–ด ์žˆ์–ด์„œ ๊ทธ๋Ÿฐ๊ฐ€?

๊ทธ๋ฆฌ๊ณ  step #3์„ ์ถœ๋ ฅํ•˜๊ณ  ์—ํ•„๋กœ๊ทธ๋กœ ๋๋‚˜๋„ค์š”

์™ผ์ชฝ์€ IDA ๋””์ปดํŒŒ์ผ ์˜ค๋ฅธ์ชฝ์€ ์›๋ณธ ์ฝ”๋“œ

 ์—ฌ๊ธฐ์„œ ์•Œ๋Š” ๋‚ด์šฉ์ด์ง€๋งŒ ์ฃผ์„์€ ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ํŠนํžˆ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์ƒ๋žต๋˜์ฃ 
๊ทธ๋ฆฌ๊ณ  ํ•จ์ˆ˜ ๋ถ€๋ถ„์€ ํž™ ์•„๋‹˜ cs?์ชฝ์— ์ €์žฅ๋˜์–ด ๋ฐ˜ํ™˜๊ฐ’์„ ํ™•์ธ์„ ์•ˆํ•˜๊ธฐ์— ๋ ˆ์ง€์Šคํ„ฐ ๋“ฑ์„ ๋ด์•ผ ๋‚˜์˜ค๊ฒ ์ฃ 
๋ญ ๋‚˜๋จธ์ง„ ์œ ์‚ฌํ•˜์ฃ 


assembly_test_4

assembly_test_4.exe
0.10MB

์ „์ฒด์ ์ธ ๋กœ์ง์€ ์œ„์™€ ๊ฐ™๊ณ  ํ•˜๋‚˜์”ฉ ๋ถ„์„ํ•ด๋ด…์‹œ๋‹ค.


๋ฉ”์ธ ์•ž์— var_64๋กœ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๋˜์—ˆ๊ธฐ์— DS ํ˜น์€ BS์— ํ• ๋‹น๋œ ์ „์—ญ๋ณ€์ˆ˜๊ฒ ๊ตฐ์š”
 ๋‹ค์‹œ Input.. ์ถœ๋ ฅํ•˜๊ณ  lea eax์— [esp+0x80][esp-0x64]๋ฅผ ํ• ๋‹นํ•˜๊ณ  ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹นํ•ด char๋กœ ๋ฐ”๊พธ๋„ค์š”..
์ข€ ์–ด๋ ต์ง€๋งŒ ์œ„์™€ ๊ฐ™์ด ๋ฌธ์ž์—ด ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด ์ž…๋ ฅ ๋ฐ›๊ณ  call๋กœ strncmp๋กœ ๋ฌธ์ž์—ด ๋น„๊ต๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

์ง€์ •๋œ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€์ง€ ๋น„๊ตํ•ด ๊ฐ™์œผ๋ฉด ์ด๋™ํ•˜๋ฉฐ ์ด๋™๋œ ๋ถ„๊ธฐ์ ์€ ์•„๋ก€์™€ ๊ฐ™์ฃ 
์œ„์— reversing์ด๋ผ๋Š” mov์—์„œ ์žˆ๋Š” offset์˜ ๋‚ด์šฉ์„ ๋น„๊ตํ•œ๋‹ค๋Š” ๋ถ€๋ถ„!

๋˜ํ•œ ์กฐ๊ฑด๋ฌธ์ด ์•ˆ ๋งž๋Š”๋‹ค๋ฉด Inva..์„ ์ถœ๋ ฅํ•˜๊ณ  ๋!

 _hidden_value๋กœ ๋˜ ๋ฒ„ํผ ํฌ๊ธฐ ์žก๊ณ  Hidden.. ์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ  ์•„๊นŒ mov [esp+4], eax์— 0์œผ๋กœ ์ง€์ •!

๋ฐ‘์—๋Š” ๊ทธ๋ƒฅ ์—ํ•„๋กœ๊ทธ์ฃ 

์™ผ์ชฝ IDA ์˜ค๋ฅธ์ชฝ ์›๋ณธ

์ฝ”๋“œ ๋ถ„์„์€ ์œ„์™€ ๊ฐ™์ด ๋๋‚˜๋ฉฐ ์ „์—ญ ๋ณ€์ˆ˜์™€ ํ•จ๊ป˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์€ ๋‹ค ํ™•์ธํ–ˆ์ฃ  ใ…Ž
์ฐธ๊ณ ๋กœ ์ง€์ •๋œ ์ „์—ญ๋ณ€์ˆ˜๋Š” DS์— ์ €์žฅ๋˜์š”


์ฐธ๊ณ  ์ž๋ฃŒ

 

์ •๋ณด๋ณดํ˜ธ์˜์žฌ๊ต์œก์›

 

dream.mokpo.ac.kr:443

๋”๋ณด๊ธฐ

 

์ฐธ๊ณ  ์ด๋ฏธ์ง€

 

๋”๋ณด๊ธฐ

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ“šโ”‚War_Game > ๐Ÿซโ”‚Genius_SW' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

MNU Junior CTF 2022  (0) 2022.08.05
assembly_study-2  (0) 2022.05.24
  1. assembly_test_1
  2. assembly_test_2
  3. assembly_test_3
  4. assembly_test_4
'๐Ÿ“šโ”‚War_Game/๐Ÿซโ”‚Genius_SW' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • MNU Junior CTF 2022
  • assembly_study-2
Jastes
Jastes
Jastes
Jastes
Jastes
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (178)
    • ๐Ÿ“šโ”‚War_Game (13)
      • ๐Ÿซโ”‚Genius_SW (3)
      • ๐Ÿ“–โ”‚CTF-d (1)
      • ๐Ÿ˜˜โ”‚CTF (2)
      • ๐Ÿ“‘โ”‚Contest (7)
    • ๐ŸŒ‡โ”‚System_Study (92)
      • ๐Ÿ“•โ”‚Dreamhack_Hacking (50)
      • ๐Ÿ“—โ”‚Dreamhack_Reversing (8)
      • ๐Ÿ“•โ”‚HackerSchool_FTZ (13)
      • ๐Ÿ“™โ”‚lazenca_Study (0)
      • ๐Ÿช™โ”‚Pwnable.kr (8)
      • ๐Ÿช™โ”‚Pwnable.tw (0)
      • ๐Ÿ”’โ”‚H4C_5๊ธฐ (10)
      • ๐Ÿ”โ”‚Etc.. (3)
    • ๐Ÿ”ฌโ”‚Reversing & Cryptography (3)
      • ๐Ÿ“•โ”‚CodeEnge (2)
      • ๐Ÿ”โ”‚Cryptography (0)
      • ๐Ÿ”โ”‚Etc.. (1)
    • ๐ŸŒ†โ”‚Web_Study (25)
      • ๐Ÿ“˜โ”‚Dreamhack_Hacking (5)
      • ๐Ÿ“–โ”‚Dreamhack_War_Game (4)
      • ๐Ÿ”ฌโ”‚DVWA (3)
      • ๐Ÿš โ”‚Lord_of_SQLInjection (4)
      • ๐ŸฅŠโ”‚pentestgym (8)
      • ๐Ÿ”โ”‚Etc.. (1)
    • ๐Ÿ’ปโ”‚IT_Study (30)
      • ๐Ÿ“ฐโ”‚DB_Study (2)
      • ๐ŸŽ“โ”‚SW_Engineering (4)
      • ๐Ÿ“Ÿโ”‚System_Study (6)
      • ๐Ÿ›ซโ”‚Web_Study (8)
      • ๐Ÿ“ปโ”‚network_study (1)
      • ๐Ÿ’พโ”‚AI (0)
      • ๐Ÿงญโ”‚CS_Study (0)
      • ๐Ÿ˜จโ”‚์–ต๊นŒ_๋ชจ์Œ (5)
      • ๐Ÿ”โ”‚Etc.. (4)
    • ๐Ÿ“‹โ”‚Study (10)
      • ๐Ÿค”โ”‚๋Œ€์™ธ ๊ต์œก (0)
      • ๐Ÿ˜โ”‚Step Mentoring (5)
      • ๐Ÿ˜˜โ”‚๐Ÿค”Security Mentoring (3)
      • ๐Ÿ“โ”‚Cover_letter (2)
    • ๐Ÿ˜˜โ”‚๐Ÿ˜’ Expansion_Society (5)
      • ๐Ÿ“šโ”‚Book report (1)
      • ๐Ÿ˜’โ”‚My_History (4)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By github ์ฐธ๊ณ 
Jastes
assembly_study-1
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.