| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- x32
- Rich Header
- __stdcall
- Python
- __fastcall
- 코드엔진
- pe format
- Calling Convention
- __vectorcall
- 리치헤더
- 함수 호출 규약
- crackme
- __cdecl
- stack frame
- Reversing
- 크랙미
- 파이썬
- image section header
- Image dos header
- Programmers
- ABI
- 프로그래머스
- 리버싱
- 실행파일
- Dos Stub
- x64
- rev
- RVA
- 32bit
- CodeEngn
- Today
- Total
목록Reversing/CodeEngn (8)
kj0on
0. 실행환경 0-1. 운영체제 (1)0-2. 툴 (3)1. 파일 password : codeengn2. 프로그램 동작계산기 프로그램이 실행된다.3. Detect It Easy32비트 실행파일, UPX 패킹 된 것을 확인할 수 있다. Visual Studio .NET 2002~2003 링커로 추정된다.4. 분석UPX 언패킹을 해준다. OEP를 찾는 문제이기 때문에 상세 분석은 하지 않았다.5. 풀이언패킹 후 EP를 살펴보면 0x01012475 인 것을 알 수 있다.
0. 실행환경 0-1. 운영체제 (1)0-2. 툴 (2)1. 파일 password : codeengn2. 프로그램 동작실행 시 Serial을 입력하는 창과 Check 버튼을 볼 수 있다. Serial이 일치하지 않는 경우 에러 메시지가 출력된다.3. Detect It Easy32비트 실행파일, 델파이로 작성된 프로그램인 것을 알 수 있다.4. 분석실행하다 보면 간단한 반복문이 나타난다. dl에 0x02를 넣고 밑에서 dec로 값을 0x01감소한다. 이후 jne로 조건부 분기가 이루어 진다. 따라서 총 2번 반복된다. 연산을 해주는 위치를 보면 앞에서 lstrcat해준 문자열이다. 빨간색 네모칸의 값에 add 연산을 해주는 코드다. 반복문을 모두 실행하고 나면 최종적으로 값에 2가 더해진다. 해당 값은 C..
0. 실행환경 0-1. 운영체제 (1)0-2. 툴 (3)1. 파일 password : codeengn2. 프로그램 동작프로그램 실행 시 위의 GUI가 나타난다. Check Serial 버튼 클릭시 "Wrong serial!!!" 메시지를 출력한다.3. Detect It Easy32비트 실행파일, UPX 패킹 된 것을 확인할 수 있다. 언패킹 후 실행결과 Microsoft Visual C/C++로 작성된 프로그램 인 것을 확인할 수 있다.4. 분석upx 언패킹 후 분석을 진행했다. 문자열 참조 시 [이미지2]의 문자열을 확인할 수 있다. 비교적 간단한 코드를 확인할 수 있다. GetDlgItemTextA로 TextBox에 있는 문자열을 가져온다. 그 뒤 06.401320 함수를 통해 ESP오류를 체크한다(..
0. 실행환경 0-1. 운영체제 (1)0-2. 툴 (3) 1. 파일 password : codeengn2. 프로그램 동작프로그램 실행 시 위의 GUI가 나타난다. Register now ! 버튼 클릭시 "Wrong Serial,try again!" 메시지를 출력한다. Name 값을 입력하지 않았을 때는 "Enter a Name!" 메시지를 출력한다. Serial 값을 입력하지 않았을 때는 "Enter a Serial!" 메시지를 출력한다. Quit the Crackme 버튼 클릭시 "Mail Name/Serial to acidbytes@gmx.net" 메시지를 출력하고 종료된다.3. Detect It Easy32비트 실행파일, UPX 패킹 된 것을 확인할 수 있다. 언패킹 후 실행결과 델파이로 작성된 프..
0. 실행환경 0-1. 운영체제 (1)0-2. 툴 (2)1. 파일 password : codeengn2. 프로그램 동작프로그램 실행 시 "정상" 문자열을 반복해서 출력한다. x32dbg에서 실행 시 "디버깅 당함" 문자열을 반복해서 출력한다.3. Detect It Easy32비트 실행파일, Microsoft Visual C/C++로 작성된 콘솔 프로그램 인 것을 확인할 수 있다.4. 분석EntryPoint로 이동해서 우선 문자열이 출력되는 부분을 먼저 찾기로 했다. EntryPoint에서 문자열을 참조하면 프로그램 동작에서 출력된 문자열을 확인할 수 있다. 해당 문자열의 구분하는 분기지점을 파악해야한다. 더블클릭해서 해당지점으로 이동해 보면 코드를 확인할 수 있다. Sleep 함수 호출 이후 _chke..
0. 실행환경 0-1. 운영체제 (1)0-2. 툴 (2)1. 파일 password : codeengn2. 프로그램 동작실행 시 가장 처음 나타나는 메시지다. 취소를 누를 경우 종료된다. 문자가 깨져보인다. 확인버튼을 눌렀을 때 나타나는 GUI다. Regcode : 에 일치하지 않는 값 입력 시 나타나는 메시지 창이다. ?er 클릭 시 나타나는 메시지 창이다.3. Detect It Easy32비트 실행파일, Visual Basic 5로 작성된 프로그램 인 것을 알 수 있다.4. 분석EntryPoint로 이동 시 ThunRTMain으로 전형적인 Visual Basic의 EP형태가 보인다. 문자열 참조 시 값이 일치하지 않을 경우 메시지 창에 나타나는 문자열을 볼 수 있다. 해당 위치로 이동한다. 메시지를 출..
0. 실행환경 0-1. 운영체제 (1)0-2. 툴 (4)1. 파일 password : codeengn2. 프로그램 동작실행 시 보이는 화면은 위와 같다. 해당 오류 메시지를 보여주면서 프로그램을 실행할 수 없다.3. Detect It EasyDIE에서 실행 파일을 읽을 수 없다. PE 구조가 훼손되서 제대로 읽지 못하는 듯 하다.4. 분석PE구조를 읽을 수 없기 때문에 Hex Editor로 값을 확인해 봐야한다. 먼저 나타나는 DOS Header 부분을 보면 e_magic의 시그니처 MZ (0x4D5A)가 나타나는 것을 확인할 수 있다. 그 다음 e_lfanew의 값을 참조해 0x00000200번지의 값을 확인한다. NT Header 부분이 0x00으로 채워져 있다. Signature(0x50450000..
0. 실행환경 0-1. 운영체제 (1)0-2. 툴 (2)1. 파일 password : codeengn2. 프로그램 동작프로그램을 실행했을 때의 동작이다. 두 개의 팝업 창을 띄워주는 것을 볼 수 있다. 나타나는 메시지를 확인해 보면 문제에서 무엇을 요구하는지를 알 수 있다. 첫번째 팝업 메시지를 보면 프로그램을 실행했을 때 하드디스크가 CD롬으로 인식하기를 요구하고 있다. 이후 Error 팝업이 나타나는 것을 봐서 CD-ROM으로 인식이 되지 않았다는 것을 알 수 있다.3. Detect It Easy32비트 실행파일, 델파이로 작성된 프로그램인 것을 알 수 있다. 4. 분석EP 근처에서 GetDriveTypeA함수를 확인할 수 있다. 인자로 0x402094에 있는 데이터("c:\\")가 인자로 사용된다..