반응형

첫 안티디버깅 문제입니다.

분석을 해 보면


IsDebuggerPresent 라는 API가 있습니다.

이름에서 알 수 있듯이 이 함수는 프로그램이 디버깅 중인지

확인해서 디버깅 중이라면 1을 반환하는 함수입니다.


'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn basic 06  (0) 2015.11.13
CodeEngn basic 05  (0) 2015.11.13
CodeEngn Basic 03  (0) 2015.11.13
CodeEngn Basic 02  (0) 2015.11.13
CodeEngn Basic 01  (0) 2015.11.13
반응형

비주얼 베이직은 .NET프레임워크로 작동하는 것이기 때문에

어떤 동작을 하려면 특정 함수를 호출합니다.

또한 비주얼 베이직은 String 찾기로 찾을수 없으니 

특정 함수로 찾아야 합니다.





'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn basic 06  (0) 2015.11.13
CodeEngn basic 05  (0) 2015.11.13
CodeEngn basic 04  (0) 2015.11.13
CodeEngn Basic 02  (0) 2015.11.13
CodeEngn Basic 01  (0) 2015.11.13
반응형

실행파일은 실행되지 않습니다. 

그 이유는 PE 헤더가 손상되어 있기 때문인데

아직 시도해보지 않았으나 PE헤더를 복구 시킬수도 있을것 같습니다.

하지만 저는 보통 실행파일에 문자열은 Data 섹션에 밀집해 있다는 것을 이용하였습니다.





'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn basic 06  (0) 2015.11.13
CodeEngn basic 05  (0) 2015.11.13
CodeEngn basic 04  (0) 2015.11.13
CodeEngn Basic 03  (0) 2015.11.13
CodeEngn Basic 01  (0) 2015.11.13
반응형

GetDriveTypeA API에 대해 공부할 수 있는 문제입니다.


디버거를 시작하자마자 이 화면이 뜰 것입니다. 

MSDN에서 GetDriveTypeA를 검색해 보면

GetDriveTypeA라는 API는 파라미터로 루트 디렉터리를 입력받고

드라이버의 타입에 따라 값을 반환합니다.

이걸 통해 답을 알 수 있습니다.

이때 하드디스크를 CD-ROM으로 인식시킬려면

리턴값을 바꾸거나 JE부분을 패치 시키면 됩니다.



'Reversing > CodeEngn Basic' 카테고리의 다른 글

CodeEngn basic 06  (0) 2015.11.13
CodeEngn basic 05  (0) 2015.11.13
CodeEngn basic 04  (0) 2015.11.13
CodeEngn Basic 03  (0) 2015.11.13
CodeEngn Basic 02  (0) 2015.11.13
반응형



이번 문제는 그림을 그려서 맞추는 문제입니다.

ida로 열어보겠습니다.






이 부분이 우리가 그린 그림과 정답 그림을 비교 하는 부분입니다.

정답 그림은 리소스 파일로 저정되어 있나 봅니다.





예상대로 리소스 파일에 비트맵 파일이 있지만

헤더는 없습니다. 그러므로 해더를 만들어야 합니다.


참고 사이트 

이 사이트를 참고해서 해더를 만들어 보면
(쉬운 방법은 그림판으로 비트맵을 만들어 수정하면 됩니다)
가로 세로 길이가 문제가 되는데
이건 동적 디버깅을 통해 윗 핵스레이의
cLines와 v16을 알아내면 됩니다.








'Reversing > Reversing.KR' 카테고리의 다른 글

ReversingKR Replace  (0) 2015.09.22
ReversingKR Easy ELF  (0) 2015.09.20
ReversingKR Easy UnpackMe  (0) 2015.09.12
ReversingKR Easy KeygenMe  (0) 2015.09.11
ReversingKR Easy CrackMe  (0) 2015.09.08
반응형



Dialog의 체크 부분입니다.

0x40105A에서 입력받은 값을 불러옵니다

0x40466F를 호출하고 난뒤가 약간 이상한데

무조건 Correct부분을 뛰어넘는 부분입니다.







소스를 설명하면

입력받은 값을 2 더한 다음

다시 0x601605c7과 더하고 2 더한 뒤 

0x40466f에다 0xc39000c6을 넣습니

0xc3900c6을 변환하면

mov byte ptr [eax], 0x90

retn

입니다.

그러므로 eax값을 0x401071로 맞춰줄 필요가 있습니다.


원래 연산 때 더하면서 윗 바이트가 짤리므로 

기준 주소를 0x100401071

이라고 생각해야 합니다.


0x100401071 - 2 - 0x601605c7 - 2 = 0xA02A0AA6


KEY: 2687109798



'Reversing > Reversing.KR' 카테고리의 다른 글

ReversingKR ImagePrc  (0) 2015.10.22
ReversingKR Easy ELF  (0) 2015.09.20
ReversingKR Easy UnpackMe  (0) 2015.09.12
ReversingKR Easy KeygenMe  (0) 2015.09.11
ReversingKR Easy CrackMe  (0) 2015.09.08
반응형


문제 이름이 Easy이듯이 메인은 간단합니다.



0x804A020에다 입력값을 저장합니다.



일단 12번째 줄로 인해 입력 값의 길이는 5임을 알 수 있습니다.

첫 번째 글자 = 0x78 ^ 0x34

두 번째 글자 = '1'

세 번째 글자 = 0x32 ^ 0x7c

네 번째 글자 = 0x88 ^ 0xdd

다섯 번째 글자 = 'X'


KEY: L1NUX


'Reversing > Reversing.KR' 카테고리의 다른 글

ReversingKR ImagePrc  (0) 2015.10.22
ReversingKR Replace  (0) 2015.09.22
ReversingKR Easy UnpackMe  (0) 2015.09.12
ReversingKR Easy KeygenMe  (0) 2015.09.11
ReversingKR Easy CrackMe  (0) 2015.09.08
반응형

ReadMe

ReversingKr UnpackMe

Find the OEP

ex) 00401000


어떤 Packer로 되어있는지 확인해 보았습니다.



자작 페커를 사용하셨나 봅니다.



이부분은 409000~4094EE부분을 언펙하는 부분입니다.



IAT를 복원하고 줄줄히 밑으로 복원합니다.



마지막에 JMP를 통해 OEP로 가게 됩니다.

이런 방식의 Packer는 UPX를 약간 개조한 것 같습니다.


KEY: 00401150


'Reversing > Reversing.KR' 카테고리의 다른 글

ReversingKR ImagePrc  (0) 2015.10.22
ReversingKR Replace  (0) 2015.09.22
ReversingKR Easy ELF  (0) 2015.09.20
ReversingKR Easy KeygenMe  (0) 2015.09.11
ReversingKR Easy CrackMe  (0) 2015.09.08
반응형

ReadMe

ReversingKr KeygenMe

Find the Name when the Serial is 5B134977135E7D13



이름을 입력받아 시리얼을 만드는 모양인 것 같습니다.

IDA로 열어보았습니다.



이걸 통해 시리얼을 사용해 이름을 만드는 소스를 만들었습니다.

#include<stdio.h>

#include<string.h>

int main(void)

{

char Serial[100]={0};

char Name[100]={0};

char Seed[3]={16,32,48};

int i,k;

scanf("%s",Serial);

for(i=0,k=0;i<strlen(Serial)/2;i++,k++)

{

k%=3;

sscanf(Serial + (i * 2), "%2x", &Name[i]);

Name[i] ^= Seed[k];

}

printf("%s\n",Name);

return 0;

}


KEY: K3yg3nm3

'Reversing > Reversing.KR' 카테고리의 다른 글

ReversingKR ImagePrc  (0) 2015.10.22
ReversingKR Replace  (0) 2015.09.22
ReversingKR Easy ELF  (0) 2015.09.20
ReversingKR Easy UnpackMe  (0) 2015.09.12
ReversingKR Easy CrackMe  (0) 2015.09.08
반응형


정말 심플한 CrackMe 입니다.

디버거로 바로 열어보겠습니다.




ID가 1000인 리소스를 불러옵니다.

아마도 메인 다이얼로그의 TEXT일 겁니다.



리소스해커로 열어보니 1000이 

메인 다이얼로그의 TEXT라는 것을 알 수 있습니다.



IDA의 Hex-Ray로 열어본 사진입니다.

이걸통해 Key값은

KEY: Ea5yR3versing

임을 알 수 있습니다.

'Reversing > Reversing.KR' 카테고리의 다른 글

ReversingKR ImagePrc  (0) 2015.10.22
ReversingKR Replace  (0) 2015.09.22
ReversingKR Easy ELF  (0) 2015.09.20
ReversingKR Easy UnpackMe  (0) 2015.09.12
ReversingKR Easy KeygenMe  (0) 2015.09.11

+ Recent posts