Jastes 2022. 5. 23. 22:24


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

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