[CodeEngn] Basic RCE L04
·
Hacking/Reversing
exe 파일을 디버깅하지 않고 실행해 보았다. 이번엔 IDA에서 디버깅을 했다. 함수의 기능을 확인할 수 있었다. 이제 IDA에서 디버깅해보자. basic RCE 3처럼 Function name에서 확인하려 했으나 함수의 이름이 나타나 있지 않았다. 그래서 함수의 import 화면을 실행했다. 실행해보니 의심되는 함수 IsDebuggerPresent 함수가 있어 더블클릭한 뒤 x를 눌러 실행했다. jz에 중단점을 두고 실행해 보았다. EAX(return)값이 1이고, 분기점이 왼쪽으로 가 call이 실행되어 "디버깅 당함"이 출력되는 것을 확인할 수 있었다. jz 중단점 전에 EAX 값을 0으로 바꿔서 확인해 보았다. 오른쪽 분기점으로 실행되어 예상했던 대로 "정상"이 출력되는 것을 확인할 수 있었다. ..
[CodeEngn] Basic RCE L03
·
Hacking/Reversing
문제 파일을 실행해 보았다. 원래는 실행 파일이 있는 폴더에 MSVBVM50.dll 파일을 설치한 뒤에 실행하면 된다고 하는데, 나는 실행이 되지 않았다. https://boksbooks.tistory.com/67 Msvbvm50.dll 다운로드 및 오류 해결법 Msvbvm50.dll Msvbvm50.dll 에러가 발생하면 문제가 생긴 파일이 있는 위치에 파일을 복사하여 넣거나 파일을 새로 생성해야 합니다. 여기에서는 파일을 다운로드 받아서 시스템 폴더에 넣거나 다이 boksbooks.tistory.com 해당 글을 참고해도 실행이 되지 않아서 코드를 훑어보아 해결하기로 했다. 스트링 비교 함수는 두 글자를 비교(cmp)를 하고 Error 혹은 Success 문자를 출력하는 분기점(jz)을 포함하고 있을..
[CodeEngn] Basic RCE L02
·
Hacking/Reversing
다운받아 실행해 보려 했으나 역시 실행파일이 손상되어 실행이 되지 않았다. 따라서 HxD를 통해 바이너리 코드를 분석해 보았다. 파일이 손상되지 않았다면 함수의 이름이 되었을 것으로 추청되는 흔적들을 찾을 수 있었다. Nope과 Yeah로 조건문이 있었을 것으로 미루어 짐작해 본다. CrackMe#1과 Yeah, you did it! CrackMe#1이 있는 것으로 보아 CrackMe#1과 조건문을 통해 비교하는 것 같다. 그 뒤를 보면 비밀번호로 추정되는 것을 확인할 수 있다. 그 아래도 확인하면 Rule도 볼 수 있다. It's very easy라고 적혀있는 부분이 조금 ...ㅋㅋㅋ 성공했다
[CodeEngn] Basic RCE L01
·
Hacking/Reversing
IDA를 통해 파일을 열어보기 전에 1.exe를 실행해 보았다. 아무런 작업을 하지 않은 상태에서 확인을 눌러 보았다. IDA를 통해 실행한 뒤에 GetDriveTypeA의 값을 입력받는 곳에서 수정을 통해 값을 CD-ROM에 해당하는 것으로 입력하면 될 것 같다. IDA 실행 화면이다. GetDriveTypeA 함수를 실행한 뒤에 eax와 esi를 비교해서 둘이 같은지를 살펴본다. 둘이 같다면 Ioc_40103D로 이동해서 CD-ROM으로 인식한다. GetDriveTypeA 함수를 찾아보았다. https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdrivetypea GetDriveTypeA function (fileapi.h)..