반응형

Reversing/드림핵(dreamhack) 3

rev-basic-1 LEVEL 1

1. 문제 정보 1.1 문제 이름 rev-basic-1 (dreamhack) 1.2 문제 설명 문제를 실행하면 문자열을 받도록 되어있다. 문자열을 넣었을 때 프로그램 내부에서 검증을 거쳐 검증이 통과하면 Correct 통과하지 못하면 Worng을 출력한다. 1.3 문제 분야 ◼️ 리버싱 2. 풀이 2.1 정적 분석 Shift + f12를 눌러 문자열을 검색하였다. 'Input :', 'Correct', 'Wrong' 등 다양한 문자열이 존재를 한다. 검증부분이 통과할 때 Correct 부분이 출력될 것이므로 이 부분을 분석하겠다. 더블클릭으로 Correct 부분에 접근하고 x를 통해 문자열이 호출하는 함수로 접근을 하였다. 먼저 sub_1400013E0와 sub_140001440 함수를 먼저 분석해 보겠..

rev-basic-0 LEVEL 1

1. 문제 정보 1.1 문제 이름 rev-basic-0 (dreamhack) 1.2 문제 설명 문제를 실행하면 문자열을 받도록 되어있다. 문자열을 넣었을 때 프로그램 내부에서 검증을 거쳐 검증이 통과하면 Correct 통과하지 못하면 Worng을 출력한다. 1.3 문제 분야 ◼️ 리버싱 2. 풀이 2.1 정적 분석 Shift + f12를 눌러 문자열을 검색하였다. 'Input :', 'Correct', 'Wrong' 등 다양한 문자열이 존재를 한다. 검증부분이 통과할 때 Correct 부분이 출력될 것이므로 이 부분을 분석하겠다. 더블클릭으로 Correct 부분에 접근한다. x를 통해 문자열이 어떤 함수를 호출하는지 알 수 있다. 그림 3번을 보면 main+57번째에서 호출하는 것을 알 수 있다. mai..

HelloWorld 분석

HelloWorld 소스코드 /* File: hello-world.cpp Build opts: - /MT -> Library Static Linking - /DYNAMICBASE:NO -> Disable ASLR - /od -> Disable Optimization */ #include #include char* str; int main() { int delay = 1000; Sleep(delay); // 1000ms(1초)를 대기합니다. str = (char*)"Hello, world!\n"; printf(str); return 0; } 이 프로그램은 1초를 대기하고 printf로 hello,world!를 출력하는 프로그램이다. 먼저 신뢰할 수 없는 프로그램일 경우 악성코드 프로그램을 대비해 정적분석도..

반응형