Cracking & Reverse Engineering
크랙과 리버스 엔지니어링에 관한 자료를 제공합니다. 주로 제가 크랙한 프로그램에 대한 자료를 제공합니다. 하지만 제 실력이 그리 좋지 않은 관계로 하이레벨 자료를 기대하지 않는게 좋습니다. ^^; 직업(?)이 아니라 취미로 하는것이기에... 좀 전문적이지 않습니다. 가끔씩 머리가 아플때마다 머리식히기 위해서 하는데 상당히 재미있습니다. 여러분도 한번 해보세요. ^^Fry (Translate ALZIP to ZIP) - 2004년 2월 8일
어제 웃대에서 휴식을 취하고 있다가 안타까운 글을 읽었습니다. 모 개발자와 모 업체가 알집 파일을 푸는 알고리즘을 갖고 서로 싸우는 내용이었는데, 개인적으로 보기 안좋더군요. 한국사람들끼리 원수처럼 싸우는 것이 참... 그렇게 헐뜯고 싸울만큼 가치있는 기술도 아닌데 말이죠. 리버스 엔지니어링에 조금이라도 경험이 있는 분이라면 손쉽게 분석하실수 있습니다. 아래는 간단한 예제 코드 입니다. 알집이 zip 알고리즘을 그대로 사용하기 때문에, 헤더만 조금 고쳐주시면 zip 파일로 손쉽게 변환이 가능하죠. 아래 예제에서는 한개의 파일만 압축되어 있는 알집 파일을 zip파일로 변환시키는 모습입니다. 코드를 조금 수정 하시면, 여러개의 파일이 압축되어 있는 알집 파일도 변환 가능하죠. 뭐 다 아시겠지만.. ^^
- fry.zip - 소스 파일 입니다. 콘솔에서 테스트 하다가 mfc로 옮기다 보니 소스가 좀 지저분 합니다. ^^;
Tinker Bell for WinMine 2000 Pro & XP Pro - 2003년 7월 1일
지뢰찾기 맵핵 입니다. 시스템 전역 후킹 라이브러리를 만들다가, 어떻게 하다보니 만들게 되었습니다. 황당하게도 프로그램 이름은 팅커벨로 정했습니다. 만들고 있던 라이브러리 이름이 후크선장 이어서 무의식적으로 프로젝트 이름을 팅커벨로 입력해 버렸거든요. 후킹 라이브러리에서 사용하는 부분들을 그대로 팅커벨(MFC)로 옮기다 보니 소스의 변수 선언부가 약간 어지럽습니다. 혹시라도 소스 보실분은 이점 이해해 주세요. 2003년 7월 1일 업데이트 이후로 윈도우즈 2000 프로페셔널 버젼과 함께 윈도우즈 XP 프로페셔널 버젼의 지뢰찾기도 맵핵이 됩니다. 나머지는 리버싱을 안해봐서 잘 모르겠네요. 선언부만 변경해주시면 다른 버젼도 적용 가능합니다. ^^
- winmine.zip - Windows 2000 Professional에 들어있는 지뢰찾기 실행파일 입니다.
- tinkerbell.zip [screenshot 1st 2nd] - 팅커벨 소스 파일입니다. Visual C++ 7.0이 필요합니다. 서비스팩 깔기 귀찮아서 이제부터 6.0은 안쓰기로 했습니다. ^^
'WinMine for Windows 2000 Professional' Cracking - 2003년 4월 25일
이번 크랙은 정말 얼떨결에 하게 됐습니다. 어떻게 된거나면, dcinside란 곳에서 놀고있는데 한분이 자신이 지뢰찾기 게임을 중급자 모드로 해서 30초만에 클리어 했다는 글을 올리신 것에서 부터 시작됐죠. 이후로 다른분들이 많이 도전하셨지만 50초가 최고였습니다. 저도 지뢰찾기는 꽤 한다고 생각했는데, 쉽지가 않더군요. 하지만, 뭐 모로가든 서울만 가면 된다는 말이 있잖습니까. 게임이 어려우면 내게 쉽도록 바꾸면 되죠. ^^ 이번 크랙은 간단했습니다. 약 100byte 정도의 코드만 추가해 주시면 되요. 한번 해보세요.
- Original WinMine - Windows 2000 Professional에 들어있는 지뢰찾기 실행파일 입니다. 공짜에요. (맞죠?)
- Cracked WinMine [screenshot 1st 2nd 3rd] - 크랙된 지뢰찾기 실행파일 입니다. 아래 두번째 사진이 크랙된 모습이에요. 실행하시면 지뢰가 보입니다. O_O;;;;
'ReverseMe#1 by SantMat' Reverse Engineering - 2002년 12월 9일
ReverseMes.de에 있는 문제 입니다. 처음 해보는 리버싱이지만 스토리를 갖고 있어서 상당히 재밌게 했습니다. ^^ 인류의 종말(멸망?)을 구한 영웅이 된 기분이랄까요? ㅎㅎ. 크랙보다는 훨씬 재미있네요. 이거 하면서 가장 힘들었던 점은 기계어 코드를 직접 입력하는것.. --; OpGen이라는 명령어 생성기를 구했는데 2000에서는 안돌아 가더군요. (미치는줄 알았음.) 그래서 생각보다 시간이 많이 걸려 버렸습니다. 계속 구해보다가 못구하면 하나 만들어서 써야 겠네요. 쩝. 그리고 리버스한 프로그램의 암호는 'fuckingUSA'로 설정했습니다. 미국이 싫어요! >.< ReverseMes에 리버스한 프로그램이랑 튜토리얼을 올릴려고 했는데 'fuckingUSA'암호로 올렸다가는 매장당할것 같아서 못올리겠네영 ㅋㅋ.. 그렇다고 암호는 바꾸기 싫고. -_- 암튼 잼있으니 여러분도 한번 해보세요. ^^
- ReverseMe #1 - ReverseMes.de에 있는 ReverseMe #1 문제 입니다.
- 리버스한 ReverseMe #1 [screenshot 1st 2nd 3rd] - 제가 리버스한 결과물입니다. 이뿌게 만들려고 노력했는데.. --;;; ㅋㅋㅋ
'CrackMe B1' Cracking - 난이도 : 4/10, 2002년 12월 3일
Le4rN TO Cr4cK에 있는 난이도 4의 문제 입니다. 아래의 문제들과는 달리 패치를 하는게 아니라 암호 key를 찾는 것 입니다. 크랙해 보니까 확실히 패치하는 것 보다는 어렵더군요. 디어셈 해보시면 아시겠지만 key에 따른 function table이 메모리에 있어서 그걸 참조 합니다. 더이상 말하면 재미 없겠죠? ^^; 한번 풀어보세요. 아마 연습장과 계산기가 필요하실 겁니다. ^^
- CrackMe B1 - CrackMe B1 프로그램 입니다.
튜토리얼 문서[screenshot] - 아직 공개하지 않습니다. 'Le4rN TO Cr4cK'에서 출제중인 문제입니다. 따라서 스크린샷만 공개합니다.
'CrackMe 8' and 'CrackMe 8.1' Cracking - 난이도 : 1/10, 2/10, 2002년 12월 3일
Le4rN TO Cr4cK에 있는 난이도 1과 2의 문제 입니다. 프로그램을 실행하면 'Unregistered'라고 나오면서 등록하라고 그러는데 이걸 크랙해서 'Registered'라고 나오도록 바꾸면 됩니다. 이건 제가 가장 처음에 도전한 문제입니다. 이 두개는 똑같은 방법으로 풀었습니다. 그래서 이렇게 같이 적습니다. 출제자는 뭔가다르게 바꾼것 같은데 뭘 의도한지는 잘 모르겠네요. --; 쉬운 난이도인만큼 실제로 머리쓸일은 없을 겁니다.
- CrackMe 8, CrackMe 8.1 - CrackMe 8과 CrackMe 8.1 프로그램 입니다.
튜토리얼 문서[screenshot] - 아직 공개하지 않습니다. 'Le4rN TO Cr4cK'에서 출제중인 문제입니다. 따라서 스크린샷만 공개합니다.
유용한 문서
- $ 스펙과 관련된 문서 $
- Description of PE format - html. CrackStore에서 공개. Exe파일의 PE Header에 대한 분석.
- The art of assembly language - html.
$ 그외의 문서 $ - IceExt v0.23을 이용한 NT 환경에서 SoftIce 화면 캡쳐하기 - txt. 제가 작성한 문서 입니다. ^^
- About anti-SoftICE tricks - html. CrackStore에서 공개한 문서. anti-SoftIce 코드에 대한 분석.
- How To Break On The EP (Entry Point) With Int 03 - zip. CoDe_InSiDe님이 쓰신 EP에 브포거는 방법.
홈페이지 링크
- $ 국내 홈페이지 $
- Le4rN TO Cr4cK - 국내 크래킹 관련 포럼. 많은 해커들이 자신이 크래킹한 프로그램에 대한 튜토리얼 문서를 제공.
- oPEN rEVERSE fORUMS - 리버스 엔지니어링 포럼.
- dive2code님의 홈페이지 - 크래킹에 필요한 여러 문서를 공개.
- x3chun님의 홈페이지 - 크래킹과 리버스 엔지니어링에 관한 문서와 프로젝트를 진행.
$ 국외 홈페이지 $ - CrackMes.de - 전세계 크래커들이 모여있는 곳. 난이도별로 수많은 크래킹 문제들 출제.
- ReverseMes.de - 리버스 엔지니어링 사이트.
- Crack Store - 폴란드의 크래킹 커뮤니티. 크래킹에 필요한 툴, 튜토리얼 문서, 툴사용 문서, 소스등을 제공.
- Programmer Tools - 컴파일, 디버깅, 패킹 관련 툴을 제공.
- Stenri님의 홈페이지 - 소프트아이스 화면을 캡쳐하는 IceExt라는 플러그인을 개발.
- CoDe_InSiDe's Manual UnPacking Page - Packer와 Encrypter에 관한 문서 제공.