๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Welcome.
:: DreamHack ๐Ÿšฉ/wargame - reverse

[ dreamhack ] - [ reversing | rev-basic-6]

by EunBird 2022. 5. 31.

https://dreamhack.io/wargame/challenges/20/

 

rev-basic-6

Reversing Basic Challenge #6 ์ด ๋ฌธ์ œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌธ์ž์—ด ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ •ํ•ด์ง„ ๋ฐฉ๋ฒ•์œผ๋กœ ์ž…๋ ฅ๊ฐ’์„ ๊ฒ€์ฆํ•˜์—ฌ correct ๋˜๋Š” wrong์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜์—ฌ correct๋ฅผ ์ถœ

dreamhack.io

์ด๋ฒˆ rev-basic-6 ๋ฌธ์ œ๋„ ์ด์ „ ๋ฌธ์ œ๋“ค๊ณผ ๊ฐ™์€ ์œ ํ˜•์ด๋‹ค.

 

๋””์ปดํŒŒ์ผ๋œ ์ƒํƒœ์˜ main ํ•จ์ˆ˜
mainํ•จ์ˆ˜์—์„œ ์ฐธ์กฐ๋œ sub_140001000 ํ•จ์ˆ˜ ํ™•์ธ.

 

์ด๋ฒˆ์—๋„ ์—ญ์‹œ if ์ ˆ์— ์กด์žฌํ•˜๋Š” ์กฐ๊ฑด๋ฌธ์„ ๋ถ„์„ํ•˜์—ฌ 

ํŠน์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งŒ๋“ค์–ด์„œ ์—ญ์œผ๋กœ 

Correct๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ž…๋ ฅ๊ฐ’์„ ์ฐพ์•„๋‚ด์•ผ ํ•œ๋‹ค.

 

์กฐ๊ฑด๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

byte_140003020[*(unsigned __int8 *)(a1 + i)] != byte_140003000[i]

 

์ด ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ”๊พธ๋ฉด,

byte_140003020[  a1[ i ]  ]  != byte_140003000[ i ]

์ด๋‹ค.

 

 

๋”ฐ๋ผ์„œ ์ฃผ์†Œ๋ฅผ ๋”ฐ๋ผ๊ฐ€์„œ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ˆซ์ž๋“ค์„ ํ™•์ธํ•ด ๋ณด์•˜๋‹ค.

140003000 ์—๋Š” ์•ฝ 20๊ฐœ ์ •๋„๋กœ ๋ณด์ด๋Š” ๊ฐ’๋“ค์ด ์ €์žฅ๋˜์–ด ์žˆ๊ณ ,

140003020 ์—๋Š” ์•ฝ 200๊ฐœ์ •๋„๋กœ ๋ณด์ด๋Š” ๊ฐ’๋“ค์ด ์ €์žฅ๋˜์–ด ์žˆ๋‹ค.

 

140003000 ๊ณผ 140003020 ์„ ๊ฐ๊ฐ str00[18] , str20[128]๋กœ ๋‚˜ํƒ€๋‚ด๊ฒ ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์•Œ์•„๋‚ผ ๊ฐ’๋“ค์„ ์ €์žฅํ•  ์˜ฌ๋ฐ”๋ฅธ ์ž…๋ ฅ๊ฐ’์„ str33[19] ๋ผ๊ณ  ํ•˜๊ฒ ๋‹ค.

 

๋‹ค์‹œ, ์กฐ๊ฑด๋ฌธ์„ ์‚ดํŽด๋ณด๋ฉด 

๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

str20[ str33 [ i ] ]  !=  str00[ i ]

 

์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„์Šคํ‚ค ์ฝ”๋“œ์— ๋Œ€ํ•ด ์ดํ•ดํ•ด์•ผ ํ•˜๋Š”๋ฐ,

์ปดํ“จํ„ฐ๋Š” ๋ฌธ์ž๋ฅผ ์ดํ•ดํ•  ์ˆ˜  ์—†๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ์ˆซ์ž๋“ค์— ํŠน์ • ๋ฌธ์ž๋“ค์„ ๋งค์น˜ํ•˜์—ฌ

๋ฌธ์ž๋“ค์„ ์ €์žฅํ•œ๋‹ค. 

๊ทธ ์ˆซ์ž๋“ค๊ณผ ๋ฌธ์ž๋“ค์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์•„์Šคํ‚ค์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

 

๋”ฐ๋ผ์„œ ์œ„ ์กฐ๊ฑด๋ฌธ์€ 

์ž…๋ ฅ๊ฐ’์„ ์ €์žฅํ•  ๋•Œ, ์ˆซ์ž๋กœ ์ €์žฅํ•˜๋Š”๋ฐ,

๊ทธ ์ˆซ์ž๋ฅผ str20 ์˜ ์ธ๋ฑ์Šค๋กœ ์ง‘์–ด๋„ฃ์–ด์„œ, 

str20์˜ ํ•ด๋‹น ์ธ๋ฑ์Šค์— ์œ„์น˜ํ•œ ์ˆซ์ž๊ฐ€

str00์˜ i๋ฒˆ์งธ์˜ ์ˆซ์ž์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์—ญ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•จ์œผ๋กœ์จ 

Correct๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

#include<stdio.h>
int main(){
	char str20[128] = { // byte_140003020
	
	0x63, 0x7C, 0x77, 0x7B, 0xF2, 0x6B, 0x6F, 0xC5,  0x30, 0x01, 0x67, 0x2B, 0xFE, 0xD7, 0xAB, 0x76,
        	0xCA ,0x82 ,0xC9 ,0x7D ,0xFA ,0x59 ,0x47 ,0xF0, 0xAD, 0xD4, 0xA2, 0xAF, 0x9C, 0xA4, 0x72, 0xC0,
        	0xB7, 0xFD, 0x93, 0x26, 0x36, 0x3F, 0xF7, 0xCC, 0x34, 0xA5, 0xE5, 0xF1, 0x71, 0xD8, 0x31, 0x15,
        	0x04, 0xC7, 0x23, 0xC3, 0x18, 0x96, 0x05, 0x9A, 0x07, 0x12, 0x80, 0xE2, 0xEB, 0x27, 0xB2, 0x75,
        	0x09, 0x83, 0x2C, 0x1A, 0x1B, 0x6E, 0x5A, 0xA0, 0x52, 0x3B, 0xD6, 0xB3, 0x29, 0xE3, 0x2F, 0x84,
        	0x53, 0xD1, 0x00, 0xED, 0x20, 0xFC, 0xB1, 0x5B, 0x6A, 0xCB, 0xBE, 0x39, 0x4A, 0x4C, 0x58, 0xCF,
        	0xD0, 0xEF, 0xAA, 0xFB, 0x43, 0x4D, 0x33, 0x85, 0x45, 0xF9, 0x02, 0x7F, 0x50, 0x3C, 0x9F, 0xA8,
        	0x51, 0xA3, 0x40, 0x8F, 0x92, 0x9D, 0x38, 0xF5, 0xBC, 0xB6, 0xDA, 0x21, 0x10, 0xFF, 0xF3, 0xD2
	};

	char str00[18] = { // byte_14003000
		0x00, 0x4D, 0x51, 0x50, 0xEF, 
		0xFB, 0xC3, 0xCF,  0x92, 0x45, 
		0x4D, 0xCF, 0xF5, 0x04, 0x40, 
		0x50, 0x43, 0x63
		};
	
	char str33[19]; // input
	
	int i;
	int j;
	for (i=0 ; i<18 ; i++){
		for (j=0 ; j<128 ; j++){
			if ( str20[j] == str00[i] ){ 
            	// 140003020 ์˜ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ์ธ๋ฑ์Šค ๊ฐ’๊ณผ 140003000์˜ ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š”๊ฐ€?
				
                str33[i] = j ;
                // ์ผ์น˜ํ•˜๋ฉด str33์— j(140003020์˜ ์ธ๋ฑ์Šค ๋„˜๋ฒ„)์˜ ๊ฐ’์„ ์ €์žฅ.
			}
		}
	}
	
	int t;
	for ( t=0 ; t<19 ; t++){
		printf("%c", str33[t]);
	}
	
	printf("\n");
	return 0;
}

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด,

 

FLAG : Replac3_the_w0rld

 

์ด๋‹ค.

728x90

':: DreamHack ๐Ÿšฉ > wargame - reverse' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ dreamhack ] - [ reversing | rev-basic-7]  (0) 2022.06.01
[ dreamhack ] - [ reversing | rev-basic-5 ]  (0) 2022.05.31
[ dreamhack ] - [ reversing | rev-basic-4 ]  (0) 2022.05.30
reversing | [CodeEngn] Malware L07  (0) 2022.05.30
[dreamhack] - [reversing | rev-basic-2]  (0) 2022.05.30

๋Œ“๊ธ€