레나튜토리얼
-
lena's reversing for newbies 03리버싱 엔지니어링/lena's reversing 2022. 3. 17. 00:20
1. 프로그램 실행(RegisterMe.exe) RegisterMe.exe 프로그램을 실행해보면, 3가지 창이 뜬다. 여기서 2번째 창을 제외한 메시지박스를 없애야한다. 2. 코드 살펴보기 올리디버거를 통해 실행해보니 처음부터 실행메시지박스를 확인할 수 있었음 JMP를 통해 메시지박스를 넘어가는 방법도 있지만, Entry pointer 변경을 통해 시작을 메시지박스 호출 이후부터 하는 방법도 존재함 3. PE 헤더를 이용한 시작 주소 바꾸기 3.1 현재 시작 주소 찾기 ① 상단의 M을 눌러 메모리맵으로 들어간다 ② PE 헤더를 찾아 클릭하여 들어간다 ③ AddressofEntryPoint를 찾는다. 처음 메시지박스 이후 주소를 시작주소로 변경해야하기 때문에 AddressofEntryPoint를 1024로..
-
lena’s reversing for newbies 02리버싱 엔지니어링/lena's reversing 2022. 3. 13. 23:18
1. 실행 lena's reversing for newbies 01와 같은 파일. 다른 풀이. 2. CreateFileA 올리디버거를 통해 실행, 다음과 같은 코드를 지나침 CreateFileA는 파일을 여는 함수 Mode = OPEN_EXISTING : 파일이 존재하지 않으면 함수 호출 실패 현재 “Keyfile.dat”파일이 존재하지 않아 실행되지 않고 지나침. 따라서, “Keyfile.dat” 파일을 생성하여 reverseMe.exe와 같은 디렉토리에 저장. 파일 저장 후 재실행 시 새로운 메시지 박스 출력 3. 코드 살펴보기 새로운 메시지 박스로 가는 코드를 하나씩 실행하며 살펴보면, CMP : 두 피연산자를 비교 DWORD PTR DS : 포인터 개념 CMP DWORD PTR DS : [4021..
-
lena's reversing for newbies 01리버싱 엔지니어링/lena's reversing 2022. 2. 5. 01:06
1. 실행 reverseMe.exe 파일을 실행해보면 아래와 같은 메시지 박스 등장. 2. 디버깅 Ollydbg를 통해 reverseMe.exe를 디버깅 - 문자열 찾아보기 (Search for -> All referenced text strings) 실행했을 때의 메시지박스 문자열 확인할 수 있었고 "You really did it! Congratz !!!!" 문자열을 발견하여 클릭해서 가보니 메시지 박스로 출력됨. 따라서, 해당 메시지 박스를 출력하도록 수정해야함을 알 수 있음. 3. 코드 살펴보기 2번에서 처음 확인했던 메시지박스에서 확인한 문자열을 클릭하여 해당 코드 살펴봄. JNZ(=JNE) : 값이 같지 않으면 점프 메시지박스 출력 전 조건 분기문, 따라서 조건에 상관없이 점프하도록 수정 JN..