Reverse Engineering/Reversing 실전 4

[Reversing] CodeEngn BasicRCE Level4

[문제04] 이 프로그램은 디버거 프로그래을 탐지하는 기능을 갖고 있다.디버거를 탐지하는 함수의 이름은 무엇인가? 문제가 계속 왜 이런지 모르겠다... ㅇ_ㅇ;; 공부하려고 왔더니... 검색만 시키고 있다... 제대로 된 분석을 하고싶단 말이다... 이번은 그냥 검색할끄다... Syntax BOOL WINAPI IsDebuggerPresent(void); Parameters This function has no parameters. Return Value If the current process is running in the context of a debugger, the return value is nonzero. If the current process is not running in the con..

[Reversing] CodeEngn BasicRCE Level3

[문제03] 비주얼베이직에서 스트링 비교함수 이름은? Basic_L03.exe ㅇ_ㅇ;; 인터넷에서 찾아보려다가... 그래도 다운받을 수 있는 프로그램도 올려놨고 해서... 그냥 까보기로 한다... 이번에는 WinHex 프로그램을 사용했다. 코드를 살펴보면 왠지... 왠지 모르게... 이걸 비쥬얼베이직에서 사용할 것 같고... 스트링을 조작할 것 같고... 뭔가를 비교할 수 있을 것 같은... __vbaStrCmp() 라는 함수명이 눈에 띈다... [Visual Basic에서 쓰는데 String을 Compare합니다... 뭐 이렇게 말하는 함수려나...;;] 인증페이지에서 확인했더니... 되더라... 그냥 인터넷에서 찾아볼 것을 그랬나...;;;

[Reversing] CodeEngn BasicRCE Level2

[문제02] 패스워드로 인증하는 실행파일이 손상되어 실행이 안되는 문제가 생겼다. 패스워드가 무엇인지 분석하시오. Basic_L02.exe 문제에서 이미 제시하였지만, 다운받아서 실행하면 정말로 실행이 안된다. 많은 방법이 시도 될 것이지만, 아직 나의 한계로는 많은 방법이 떠오르지 않는다. 그래서 HexEditor를 이용하여 프로그램의 바이너리 코드를 확 까보기로 한다. HexEditor를 이용하여 문제의 실행파일을 까보면 다음의 함수를 호출하는 부분을 확인한다. Dialog를 불러오고, 끝내고, Dialog Text정보를 확인하고, 메세지 창을 띄우고... 각각의 역할을 맡는 함수들이 호출되지만 정확한 실행흐름의 파악이 되지 않는다. 조금 더 프로그램을 살피기 위해서 마우스 휠을 넘기답면 또 아래와 ..

[Reversing] CodeEngn BasicRCE Level1

[문제01] HDD를 CD-Rom으로 인식시키기 위해서는 GetDriveTypeA의 리턴값이 무엇이 되어야 하는가? GetDriveTypeA의 리턴값을 물어보는 것으로 해당 API 함수에 대한 리턴값을 조사한 뒤 인증하면 된다. 하지만 간단히 파일을 다운받을 수 있도록 하였으니 확인해 본다. Basic_L01.exe 파일을 다운받은 후 실행하면 다음과 같은 메세지 창을 차례로 띄운다. 이 메세지 창만으로는 확신할 수 없다... Ollydbg로 파일을 열어 코드를 확인한다. 코드의 끝이다. 문제가 거창하게 느껴질 정도다. MessageBoxA라는 API함수를 호출하여 처음의 메세지창을 띄운 뒤, 해당 함수의 리턴값을 비교한뒤 JE 구문을 만족할 경우 OK~~!@ 이 부분으로 점프하게 된다. 해결방법은 2가..