본문 바로가기

Security_/Reversing15

[해결] IDA 40343 Error 해결방법 Oops! internal error 40343 occured. IDA를 사용하려고 했는데 40343에러가 나왔다.. 40343 에러는 IDA 실행파일 또는 분석 파일이 영어로 된 경로가 아니면 뜨는 에러다. IDA 실행파일 과 분석 파일을 모두 경로가 영어로 되어있게 해주면 에러가 안뜬다. 2021. 10. 4.
[풀이] 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 #3 abex' crackme #3 분석하기 전에 실행을 해보자. "Click OK to check for the keyfile." 문구가 나온다. 확인을 누르니 "Hmmmmm, I can't find the file!" 문구가 나온다. keyfile을 생성한 뒤 key값을 파일 안에 넣는 문제일 것 같다.. OllyDbg로 열면 바로 나와있다. CreateFile 함수의 인자부터 알아보자. FileName : "abex.l2c" (영어 l) Access : GENERIC_READ (읽기 권한) ShareMode : 0 (모든 프로세스의 접근 차단) pSecurity : NULL (사용하지 않을경우 NULL) Mode : OPEN_EXISTING (파일이 존재할 경우에만 파일 열기, 존재하지 않을경우 에러 발.. 2021. 9. 16.
[정리] 함수 호출 규약 cdecl, stdcall, fastcall 함수 호출 규약 (Calling Convention) '함수를 호출할 때 파라미터를 전달하는 방식에 대한 약속' 주요한 함수 호출 규약은 아래와 같다. - cdecl - stdcall - fastcall *caller(호출자) - 함수를 호출한 쪽 callee(피호출자) - 호출을 당한 함수 main()에서 print()함수를 실행할 경우 main()[Caller], print()[Callee] cdecl 방식 c언어 에서 주로 사용되는 방식으로 Caller에서 Stack을 정리 main() 쪽에서 함수 호출뒤 ADD ESP. 8 을 실행 CALL 00401000 ADD ESP, 8 ; 함수 호출뒤 stack 정리 컴파일 뒤 어셈블리어를 확인하면 CALL 00401000 함수 호출 뒤 ADD ESP, 8.. 2021. 9. 16.
[풀이] 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.
[Themida / WinLicense] OllyDbg 오류 해결 정리! 흐아.. 오랜만에 OllyDbg를 열었더니 오류가 많다.. OllyDbg는 공인인증서 관련 프로그램이나, 백신의 충돌때문에 종종 오류를 일으킨다. 해결을 해보자 .. ! Ctrl + Alt + Del 을 눌러서 작업관리자를 열자 그러면 오류를 출력하고 있는 프로그램들을 확인할 수 있다. * 캡처는 올리디버거가 실행중이지만, 올리디버거를 종료해야 삭제가 원활히 된다. 해당 프로세스 우클릭 → 파일 위치 열기(O) → uninstall 실행 * 캡처는 올리디버거가 실행중이지만, 올리디버거를 종료해야 삭제가 원활히 된다. 하지만.. 폴더에 unistall 실행파일이 없다면 프로그램 추가/제거를 들어간다. 검색을 하면 쉽게 찾을 수 있다. 제거를 해주자 :D * 캡처는 올리디버거가 실행중이지만, 올리디버거를 종.. 2021. 9. 14.
[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] OllyDbg 설치 #64bit [OllyDbg 설치] OllyDbg : 바이너리 코드 분석을 위한 디버거 (32비트 운영체제 전용이다) OllyDbg 다운로드 공식 페이지 64비트에서 사용하기 - Olly Advanced 플러그인을 적용하면 Ollydbg를 64비트에서 사용이 가능해진다. [Olly Advanced 플러그인은 OllyDbg의 버그 패치, 다양한 안티 디버깅에 대한 방어 기능을 지원한다.] - 다운 받은 Olly Advanced v1.27.rar을 압축해제 한 후 advancedolly.dll 플러그인 파일을 OllyDbg설치 폴더에 복사한다. - Olly Advanced 플러그인의 옵션 메뉴를 선택한다. * Plugins 메뉴가 없는 경우 : Plugins 옆의 Options - Appearance - Directio.. 2018. 8. 24.
[Reversing] 어셈블리어 비교 #Intel vs AT&T [어셈블리어 비교] Intel : 접두사 _ h(16진수), b(2진수), 0(6진수)AT&T : 접두사 _ %(레지스터), $(값) Operands의 위치 차이 _ Intel 과 AT&T는 정반대이다.Intel destination, sourceAT&T source, destination 메모리 주소 참조Intel [eax]AT&T (%eax) 2018. 8. 24.
[Reversing] Reversing? [시작] 리버싱 : 프로그램의 구조, 기능, 동작 등을 역으로 따라가며 분석하고 그 원리를 이해하며 부족한 부분을 보완하며 새로운 기능 등을 추가하는 작업 분석 방법- 정적분석 : 파일의 겉모습을 관찰하며 분석하는 방법. 즉, 파일을 실행하지 않고, 파일의 종류(exe, dll, doc, zip 등), 크기, 헤더정보, 실행 압축 여부, 등록 정보, 디지털 인증서 등의 내용을 확인하는 것. 또한 디스어셈블러를 이용해서 내부코드와 그 구조를 확인하는 방법이다.- 정적 화이트박스 분석 : 프로그램을 실행하지 않고 소프트웨어의 설계, 코드나 구조 등에서 상세하게 버그를 찾을 수 있는 방법- 정적 블랙박스 분석 : 프로그램의 소스코드를 파악할수 없고, 실행시키지도 않은 상태에서 수행하는 분석.- 동적분석 : 파.. 2018. 8. 21.