일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 알고리즘
- 파이썬 첼린지
- 운영체제
- Rust
- OS
- 데이터베이스
- Database
- C
- Python challenge
- ubuntu
- 러스트
- 오라클
- 우분투
- 자바 개념
- Python
- 파이썬 알고리즘
- Reversing
- 백준 러스트
- 데이터 통신
- 자바
- 파이썬
- 러스트 예제
- 오라클DB
- data communication
- 파이썬 챌린지
- 백준
- 자바 기초
- 러스트 프로그래밍 공식 가이드
- java
- Operating System
- Today
- Total
목록Reversing (6)
IT’s Portfolio
CodeEngn Basic RCE Level 5 프로그램을 x64dbg로 깐 후 메모리 맵을 살펴보니 UPX 패킹이 되어있음. UPX 패커로 언패킹. 다시 x64dbg로 파일을 깐 후 등록키가 틀렸을 때 나오는 ‘Wrong Serial, try again!’ 문자열 찾기. 다음을 찾기 > 모든 모듈 > 문자열 참조 GFX-754-IER-954 CrackMe cracked successfully 구문을 보고 ‘GFX-754-IER-954’이 등록키인 것을 알 수 있다.
CodeEngn Basic RCE Level 4 그냥 실행화면 x64dbg로 깐 후 실행화면 어디서부터 ‘디버깅 당함’ 이라는 문자열이 뜨는지 F8로 한줄씩 실행 call 0x40100f에서 갑자기 멈춤. 0x40100f로 이동. 중간에 IsDebuggerPresent라는 API 함수가 보인다. IsDebuggerPresent 함수 : 안티디버깅 기법 중 가장 기초적인 방법.
CPU Register - 메모리부터 명령어를 가져와 어떤 명령어인지 해석 후 실행 - General Register, Segment Register, Flag Register, Instruction Register 등 General Register Extended : 확장된 EAX : Extended Accumulator Register - 곱셈과 나눗셈 명령에서 자동 사용. 함수의 리턴값이 저장됨. EBX(Extended Base Register) - ESI나 EDI와 결합하여 인덱스에 사용. ECX : Extended Counter Register - 반복 명령어 사용 시 반복 카운터로 사용. ECX에 반복할 횟수를 지정해두고 반복작업을 수행. EDX : Extended Data Register -..
CodeEngn Basic RCE Level 3 MSVBVM50.DLL을 설치해준다. “이 nag를 제거하거나 올바른 암호를 얻으십시오!” x64dbg로 까본 모습. 한 눈에 봐도 양이 많다. 하지만 패스워드를 입력하면 성공했다는 문자열만 찾으면 문제해결이 가능할 것 같다. 다음을 찾기 > 모든 모듈 > 문자열 참조 2G83G35Hs2라는 문자열이 두 개가 보인다. 2G83G35Hs2를 클릭해서 들어가보자. Danke, das Passwort ist richtig! 이라는 문자열이 뜬다고 한다. 2G83G35Hs2은 Regcode값이 맞는 듯 하다. 프로그램 자체가 입력값과 Regcode값을 비교해서 성공인지 실패인지 판결한 후 메시지 박스를 출력하는 형식이기 때문에 push 401DDC 명령어 다음에 ..
CodeEngn Basic RCE Level 2 레벨 2의 파일은 실행해도 안되고 x64dbg로 까지지도 않음. HxD로 연 모습. "Nope, try again!" "Yeah, you did it!" "JK3FJZh"
CodeEngn Basic RCE Level 1 “너의 HD를 나의 CD-ROM으로 생각하게 만들어라” “어쨌든... 이건 CD-ROM이 아니다!” Entrypoint 후 프로그램에 “Make me think yout HD is a CD-Rom” text와 “abex’ 1st crackme” caption 인자를 전달함. WIN API MessageBoxA 함수 호출. push 402094 부분은 함수호출을 위해 인자(C:\\)를 전달해준거고 그 다음 GetDriveTypeA라는 WIN API 함수가 호출됨. 이 함수의 리턴값은 eax 레지스터에 저장됨. GetDriveTypeA 함수를 호출한 다음구문에 BreakPoint를 걸고 실행을 해보면 EAX 레지스터에 GetDriveTypeA의 반환값이 들어있..