Liea
'보안공부' 태그의 글 목록 (2 Page)

보안공부

④ 공부/WarGame 문제 풀이

[Reversing] [CrackMe] quiz5_abexcm4.exe 문제풀이

파일 : quiz5_abexcm4.exe 1. 가장 먼저 프로그램을 실행시켜 보았다. (아래 사진 참고) - 이름과 시리얼 번호를 입력하라는 창이 떴다. 2. 아무 내용이나 입력 후 Registered 버튼을 눌러보려 하니 버튼이 아직도 비활성화가 되어있다. - 시리얼 값이 맞아야 버튼이 활성화가 되는건가 하고 추측을 해보았다. 3. 디버거를 사용하여 해당 실행파일의 내용을 확인 해 보았다. - 프로그램 실행은 00401220 주소부터 시작되었다. 입력 키를 맞추어 버튼을 누르고 아래의 내용들이 출력되어야 문제풀이에 성공하는 듯 하다. 4. 입력한 시리얼 값과 비교하는 문장을 찾기 위해 메인창을 보았으나, 비교문이 잘 보이지 않아서 다음 방법으로 찾아보았다. - 코드에서 호출되는 모든 API 함수를 확인..

④ 공부/WarGame 문제 풀이

[Reversing] [CrackMe] quiz3_abexcm2.exe 문제풀이

파일 : quiz3_abexcm2.exe 1. 가장 먼저 프로그램을 실행시켜 보았다. (아래 사진 참고) - 이름과 시리얼 번호를 입력하라는 창이 떴다. 2. 아무 내용이나 입력 후 체크버튼을 눌러보니 다음과 같은 창들이 떴다. - 이름 입력칸은 4 글자 이상이어야 하고, 시리얼번호는 당연히 틀렸다고 나온다. 3. 혹시나 하고 About 버튼도 눌러서 확인 해 보았고 다음 내용의 창이 떴다. 4. 디버거를 사용하여 해당 실행파일의 내용을 확인 해 보았다. - 올바른 이름과 시리얼 키를 찾고, "Yep, you entered a correct serial!" 이라는 문장이 나와야 문제풀이에 성공하는 듯 하다. - 프로그램 실행은 0041238 주소부터 시작되었다. 5. BP(BreakPoint)를 시리얼이..

④ 공부/WarGame 문제 풀이

[Reversing] [CrackMe] quiz1_abexcm1.exe 문제풀이

파일 : quiz1_abexcm1.exe 1. 가장 먼저 프로그램을 실행시켜 보았다. (아래 사진 참고) - 나의 HD 가 CD-Rom 으로 인식하게 만들라는 내용이 떴다. - 확인을 누른 뒤엔 이것은 CD-Rom 드라이브가 아니라는 내용이 나왔다. 2. 디버거를 사용하여 해당 실행파일의 내용을 확인 해 보았다. - "OK, I really think that your HD is a CD-ROM! :p" 이라는 문장이 나와야 문제풀이에 성공하는 듯 하다. 3. 처음부터 하나씩 확인 해 보니, 00401024주소에서 CMP 명령어를 사용하여 EAX 와 ESI 를 비교하고있다. 이 과정으로 CD-ROM 인식을 확인하는 것 같다. CMP 명령어는 비교 대상이 같다면 ZF 가 1 로 설정되고, 다르면 0 으로 ..

② 공부/[Reversing]

[리버싱] 간단한 Immunity debugger 사용법

프로그램 : immunity debugger - 아래 창은 CPU main창 1 : 불러온 실행파일의 디스어셈블 명령어 화면, 코드영역의 주소, 영역에 있는 OPCode 2 : 레지스터 목록, 레지스터에 들어가 있는 값 3 : 메모리에 들어가 있는 값 확인(메모리 덤프값) 4 : 스택에 들어가 있는 값 확인(지역변수, 함수프레임, 파라미터 값 등) à 프로그램 진행상태 분석에 쓰임 main - search for - all referenced text string //메모리에 올라가있는 각종 문자열과 상수값을 출력 해당 문자열 선택 후 우클릭으로 follow in disassembler 클릭시 해당 라인으로 이동함 main의 해당 줄 우클릭 - follow in dump - immediate consta..

② 공부/보안 관련

모의해킹 시나리오 정리

보호되어 있는 글입니다.

② 공부/[Reversing]

[리버싱] 어셈블리어 (CMP와 JMP, JNZ, JE) 정리

1. 데이터 비교 CMP ex) CMP A B - A의 값과 B의 값을 비교한다. ++ 두 값이 같다면 ZF가 1로 설정됨, 다르면 ZF가 0으로 설정됨 ex) CMP EAX, ESI - EAX의 값과 ESI의 값을 비교해라. 2. 코드 이동(점프) JMP (Jump) ex) JMP A - 이번 문장에서 처리할 위치를 A로 이동한다. JNZ (Not Zero Jump) ex) JNZ A - 비교 값이 0이 아닌 경우 A로 이동한다. - 비교된 값이 0인 경우에는 점프하지 않고 다음코드를 실행한다. ++ 비교 된 값이 있어야 하므로 앞에 CMP가 먼저 실행된다. JE (Jump Equal) ex) JE A - 비교된 값이 같으면 해당 주소로 이동한다.

② 공부/[Reversing]

Redhat gdb 사용하기(2) _메모리 영역 확인

sample.c 코드파일 disass main 실행 내용