본문 바로가기

reversing9

[풀이] abex' crackme #5 abex' crackme #5 분석하기 전에 실행을 해보자. "Enter your serial" 문구가 있고 Check 버튼이 있다. Chcek를 누르면 "The serial you entered is not correct!" 문구가 나온다. OllyDbg를 열어서 분석을 해보자. 실행 후 조금 밑으로 내리면 4010F7부분을 볼 수 있다. strcat와 strcmp 함수를 쓴것으로 봐서는 4010F7에서 어떤 문자열과 비교를 하는지 확인하면 될 것 같다. "ABCD1234"를 입력하고 Check를 눌렀을때의 화면이다. "L2C-5781QU6762-ABEX"문자열과 비교를 하고 있댜. "Yep, you entered a correct serial!" Serial 생성 과정을 확인해보자.. GetVolum.. 2021. 9. 19.
[풀이] abex' carckme #4 abex' crackme #4 분석하기 전에 실행을 해보자. Serial을 입력하는 칸이 있고 Registered 버튼이 있다. 글을 써도 Registered는 활성화 되지 않는다. 올바른 Serial값을 입력해야 Registered가 활성화 될 것 같다. OllyDbg로 열어보자.. String으로 검색을 해보니 "Well done!", "Very good, you got it!" 등 문제 풀이에 도움이 될 부분이 나왔다. 하지만 String 부분을 확인을 해보니 성공과 실패를 구분하는 분기문을 찾을 수가 없었다. 사용된 함수를 보면 vbaStrCmp 함수가 있다... 확인해보자. vbaStrCmp 부분에 Bp를 걸고 실행한 뒤, Serial값에 A를 적어보니 Bp로 이동을하고, 인자로 내가 입력한 A.. 2021. 9. 19.
[풀이] abex' crackme #2 abex' crackme #2 분석하기 전에 실행을 해보자. Name과 Serial을 입력하는 칸이 있고 Check 버튼이 있다. Name과 Serial을 올바르게 입력하고 Check를 누르면 풀리는 문제일거 같다. Name과 Serial에 아무런 문자열을 넣고 Check를 누르니 Name을 4글자 이상으로 입력해달라고 나온다. 흠.. 틀렸다고 나온다.. OllyDbg를 실행시켜 분석을 시작해보자. 401E14를 PUSH하고 401232:ThunRTMain()을 호출하게 된다. 401E14의 메모리다. RT_MainStruct 구조체이고, ThunRTMain의 인자로 프로그램 실행에 필요한 구조체 정보가 담겨있다. CALL 00401232 이후 00401232를 보면 JMP [4010A0]으로 되어 있다.. 2021. 9. 15.
[풀이] abex' crackme #1 abex' crackme #1 분석하기 전에 실행을 해보자. "Make me think your HD is a CD-Rom." 문구가 출력된다. 확인을 누르면 "Nah.. This is not a CD-ROM Drive!" 문구가 나온다. OllyDbg를 실행하여 분석을 진행해보자. * OllyDbg 기본 명령어 [Ctrl +F2] : Restart - 다시 처음부터 디버깅 시작 (현재 진행 중인 프로세스 종료 후 재시작) [F7] : Step Into - 하나의 OP Code 실행 (CALL 명령을 만나면 함수 내부로 들어감) [F8] : Step Over - 하나의 OP Code 실행 (CALL 명령을 만나면 함수 자체를 실행) [Ctrl + F9] : Execute till Return - 함수 코.. 2021. 9. 15.
[Reversing] Radare2 설치 및 사용 방법 총 정리 [예제 포함] 더보기 목차 [궁금한게 있다면 Ctrl+F로 검색하면 빠르다.] Radare2? Radare2설치 바이너리 정보 확인 Radare2 실행 바이너리 분석을 위한 명령어 바이너리 내의 함수 목록 출력 바이너리 내의 함수 이름 변경 함수의 디스어셈블리 출력 탐색 위치 변경 바이너리 그래프 모드 출력 Hexdump 값 출력하기 Flagspaces확인 데이터/코드 참조 찾기 문자열 검색하기 디버그 모드 Radare2 살향 디버깅 시작 설정된 BreakPoint 리스트 확인 BreakPoint 설정 BreakPoint 해제 레지스터 상태 출력 변수의 상태 확인하기 다시 시작 (올리디버거의 Ctrl+f2) 프로그램 종료 확인 바이너리 패치 모드 Radare2 실행 Hex 값 변경하기 명령어 변경하기 rax2 radi.. 2021. 8. 5.
[리버싱] 정적/ 동적 분석 (리버싱 시작) [정적/ 동적 분석] 리버스 엔지니어링..? Reverse Engineering, RE:역공학 이라 하며, 물건이나 기계장치 혹은 시스템 등의 구조, 기능, 동작 등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업 정적 분석이란..? 파일의 겉모습을 관찰하여 분석하는 방법, 이 분석 방법은 파일을 실행하지 않고, 파일의 종류(EXE, DLL, DOC, ZIP 등), 크기, 헤더(PE) 정보,Import/Export API, 내부 문자열, 실행 압축 여부, 등록정보, 디버깅 정보, 디지털 인증서 등의 다양한 내용을 확인하는 것, 또한 디스어셈블러(Disassembler)를 이용해서 내부 코드와 그 구조를 확인하는 것도 정적 분석의 범주에 들어간다. 동적 분석이란..? .. 2019. 7. 23.
[Reversing] call, ret, leave 어셈블리어 [call, ret, leave 어셈블리어] call- push eip- jmp [주소] ret- pop eip- jmp eip leave- mov ebp, esp- pop ebp 2018. 10. 9.
[Reversing] gdb 표기방식 변경 [gdb 표기방식 변경] - 왼쪽이 AT&T 표기방식, 오른쪽이 Intel 표기방식이다. 왼쪽으로 설정하고 싶으면 set disassembly-flavor at오른쪽으로 설정하고 싶으면 set disassembly-flavor intel 이라고 입력을 하면 된다. [AT&T, Intel 표기방식 차이] 2018. 10. 8.
[Reversing] Reversing? [시작] 리버싱 : 프로그램의 구조, 기능, 동작 등을 역으로 따라가며 분석하고 그 원리를 이해하며 부족한 부분을 보완하며 새로운 기능 등을 추가하는 작업 분석 방법- 정적분석 : 파일의 겉모습을 관찰하며 분석하는 방법. 즉, 파일을 실행하지 않고, 파일의 종류(exe, dll, doc, zip 등), 크기, 헤더정보, 실행 압축 여부, 등록 정보, 디지털 인증서 등의 내용을 확인하는 것. 또한 디스어셈블러를 이용해서 내부코드와 그 구조를 확인하는 방법이다.- 정적 화이트박스 분석 : 프로그램을 실행하지 않고 소프트웨어의 설계, 코드나 구조 등에서 상세하게 버그를 찾을 수 있는 방법- 정적 블랙박스 분석 : 프로그램의 소스코드를 파악할수 없고, 실행시키지도 않은 상태에서 수행하는 분석.- 동적분석 : 파.. 2018. 8. 21.