목록Computer App Penetesting/Reversing (19)
외로운 Nova의 작업실
rena 20강의 경우 언패킹을 하는 문제입니다. 즉, OEP를 찾는 문제이죠. hardware bp를 이용해 OEP를 찾아보겠습니다. - 문제 인식 먼저 실행시켜보도록 하겠습니다. 자신을 언패킹 해달라고합니다. 올리디버거로 열어봅시다. - reversing 한번 F8을 눌러 JMP해보겠습니다. PUSH EBP로 이제 unpacking 함수를 실행하려고하는 것 같습니다. 이 함수가 끝난다면 즉, EBP의 값이 POP된다면 이제 OEP로 JMP할 것임을 예상할 수 있습니다. 따라서 EBP값에 hardware bp를 걸어보겠습니다. 스택에서 follow in Dump를 해주고 메모리 부분에서 오른쪽마우스클릭 - BreakPoint - hardware 눌러주시고, 아래와 같이 설정해주고 OK를 눌러줍니다. 이..
- 패킹 패킹이란 프로그램의 코드 크기를 줄이려고 압축하거나 프로그램 분석을 어렵게 만들려고 암호화하는 것을 패킹이라고합니다. 특히 단순 압축하는 것을 컴프레싱, 암호화하는 것을 프로텍팅이락 구분합니다. 패킹의 원리는 다음과 같습니다. 1. origin code를 알고리즘에 따라 패킹한 후 그 코드를 packed data로 프로그램에 unpackingc code와 함께 저장합니다. 2. origin code는 삭제합니다. 3. 엔트리 포인트를 unpacking code의 시작점으로 두면 패킹이 끝이납니다. 언패킹의 원리는 다음과 같습니다. 1. 엔트리 포인트에따라 unpacking code 알고리즘을 실행합니다. 2. unpacking code 알고리즘은 packed data를 기반으로 결과값을 orig..
안녕하세요. 이번시간에는 리버싱 입문책으로따라 rena 17강을 크랙해보도록 하겠습니다. 리버싱 입문의 글쓴이는 이 17강을 통해서 어셈블리어를 익히는 것을 중점으로 설명합니다. 하지만 저는 어셈블리어와 친하기때문에 따로 일련번호 생성 로직을 읽어내는 부분은 정리하지않겠습니다. 그저 리버싱을 통해 크랙해보도록 하겠습니다. 하지만 어셈블리어와 친해지는 것은 중요하다는 것을 잊지않을 것 입니다. - 문제 인식 먼저 17강 파일을 실행시켜보도록 하겠습니다. 위에는 Nova, 아래는 1234를 넣어보고 check을 눌러보겠습니다. 디버거를 하드 드라이브에서 제거하라고 나오는 군요.. 하지만 이 문제는 일련번호에 관한 문제입니다. Nova를 가지고 일련번호를 프로그램 내부적으로 생성해내고 그것이 사용자가 입력한 ..
rena의 강의는 리버싱 관련해서 유명한 강의 입니다. 이에따른 자료들은 아래 링크에 들어가시면 다운 받으실 수 있습니다. https://forum.tuts4you.com/files/file/1307-lenas-reversing-for-newbies/ Lenas Reversing for Newbies A collection of tutorials aimed particularly for newbie reverse engineers. 01. Olly + assembler + patching a basic reverseme 02. Keyfiling the reverseme + assembler 03. Basic nag removal + header problems 04. Basic + aesthetic pa..
안녕하세요. 이번시간에는 crackme5.exe 파일을 리버싱해보고 크랙판을 만들어보도록 하겠습니다. 자료는 아래 올려놓겠습니다. - 문제 인식 먼저 파일을 실행시켜보도록 하겠습니다. 이것도 4번 문제와 같이 시리얼을 넣으라고 하는 군요, 하지만 이번 문제는 check 버튼이 활성화가 되어있습니다. 한번 1234를 넣어서 check 버튼을 눌러보겠습니다. 시리얼 번호가 다르다고 나오는 군요, 이번 문제는 시리얼 번호를 알아내는 문제인 것 같습니다. - 리버싱 ollydbg를 이용해 리버싱을 해주겠습니다. 그리고 함수가 있는지 확인하기위해 PUSH EBP를 검색해보겠습니다. 검색했지만 없는 것으로 확인됩니다. 이 프로그램은 무슨 언어로 쓰여졌을까요? DIE로 분석해보겠습니다. 분석 결과 delphi로 쓰여..
안녕하세요. 이번시간에는 crackme4.exe 문제를 풀어보도록 하겠습니다. 아래 문제 파일을 올려두도록 하겠습니다. - 문제 인식 먼저 실행시켜보도록 하겠습니다. serial 번호를 넣으라고하고 밑에 Registered 부분의 버튼이 활성화가 되어있지 않은 모습을 확인할 수 있습니다. 일단 serial번호를 아무거나 넣어보겠습니다. registered 버튼이 활성화가 되지 않은걸 확인할 수 있습니다. 아무래도 알맞는 serial 번호를 넣어야 Register 버튼이 활성화될 것 같다는 걸 알 수 있습니다. 그러면 이제 리버싱을 해서 serial 번호를 알아내보도록 하겠습니다. - 리버싱 일단 어떤 함수가 있는지 한번 확인해보겠습니다. cntl + f를 눌러 PUSH EBP를 검색해보겠습니다. 첫번째 ..
안녕하세요. 이번시간에는 crackme3.exe 파일을 크랙해보도록 하겠습니다. 아래 파일을 올려두겠습니다. - 문제 인식 한번 실행시켜보겠습니다. 뭔가 keyfile을 체크해본다고 합니다. 확인을 눌러보겠습니다. 파일을 찾을 수 없다고 뜹니다. 이번 문제는 파일 인증에 관한 문제인 것 같습니다. 일단 먼저 파일을 어떻게 인증하는지 리버싱을 통해 알아보고 분기문을 우회하여 크랙판을 만들어보겠습니다. - 리버싱 먼저 step over로 call 함수를 기준으로 코드의 흐름을 분석해보겠습니다. 0040100E call 함수 : user32.messageboxA 함수로 첫번째 메시지 박스를 출력해냅니다. 004010EA call 함수 : kernel32.createfileA 함수로 파일의 유무를 파악합니다. ..
안녕하세요. 이번 시간에는 abex crackme2.exe 파일을 리버싱해보도록 하겠습니다. 아래 파일 남겨놓겠습니다. - 문제 인식 먼저 실행시켜봅시다. Name과 Serial form이 있고 옆에 check, about, quit 버튼이 있는 것을 확인할 수 있습니다. 일단 뭐 Name에는 a를 serial에는 1234를 넣어보겠습니다. 이름에다가는 4개의 문자를 넣으라고 알림창이 뜹니다. 꼭 4개 이상을 넣어야하는 이유가 있는걸까요..ㅎㅎ 일단 name을 nova로 비밀번호는 1234로 넣어보겠습니다. serial이 틀리다고 나오네요. 이번 문제는 serial을 찾는 문제인 것 같습니다. 그렇다면 이제 ollydbg로 리버싱해보겠습니다. 일단 ollydbg로 crackme2.exe 를 올려주겠습니다..
안녕하세요. 저는 시스템해킹을 배우기위해 리버싱입문(조성문)책을 샀고 그에 따라 실습한 내용들을 기록해볼까합니다. 먼저, 준비물은 ollydbg와 crackme1.exe 파일입니다. ollydbg는 v1.10을 사용하였습니다. crackme1.exe 파일은 아래에 올려놓겠습니다. 세계에서 가장 많이 활용되는 예제가 abex crackme 시리즈라고 합니다. 자 이제 실습을 진행해보겠습니다. - 문제 인식 먼저 Crackme1.exe를 실행시켜보도록 하겠습니다. 그러면 하드디스크를 cd-rom으로 생각하게 자신을 만들어달라고합니다. 그렇다면 하드디스크를 cd-rom으로 인식하게 바꿔주면되겠죠? 일단 내부적으로 어떤 window API를 쓰는지 ollydbg로 열어보겠습니다. - 코드 분석 00401000부..