목록2020/05/06 (3)
Self-Improvement
http://reversing.kr/challenge.php 에서 Easy_CrackMe.exe를 다운받아 준다. 해당 프로그램을 실행하면 입력할 수 있는 메시지 박스와 입력 값이 패스워드와 같지 않다면 "Incorrect Password" 메시지 창이 뜨게 된다. 이 점으로 볼때 패스워드를 찾아야 한다는 것을 알 수 있다. 프로그램을 x32dbg로 열어준다. EIP는 00401188주소에서 시작하며 친절하게 EntryPoint라고 되어있다. 2가지 접근법이 존재한다. 1. 프로그램을 실행했을 때 메시지 박스가 뜬것을 감안하여 F8로 하나씩 실행하면서 메시지 박스를 호출하는 곳을 찾아내고 패스워드를 비교하는 곳도 찾아내어 분석한다. 2. 패스워드가 올바르지 않다고 메시지가 뜬 문자열을 찾은 후 해당 문자..
CASE 구문에서 배운 소스코드의 Main 함수에서 입력값에 따라 [one], [two]...로 문자열을 출력하게 된다. "[one]" 문자열 대신 다른 걸로 출력하게 문자열을 패치해본다. "[one]" 문자열이 저장된 메모리의 7E7B6C 주소로 이동하여 [바이너리패치 - 패치]로 문자열을 변경해준다. 만약의 상황을 위해 패치할때 크기 유지를 체크한 뒤 해준다. "[one]"을 "noONE"으로 패치한 후 확인해보면 정상적으로 변경되어 있다. 만약 기존의 글자보다 길에 써야할 경우에는 이 프로그램이 침범하지 않을 사용하지 않을 공간에 작성한 뒤 명령어를 패치해준다. 위 007E9444 주소를 기존 "[two]" 문자열 주소를 불러오는 어셈블 명령어를 007E9444주소로 변경한다. Space를 누르거나..
x64dbg를 sourceforge에서 다운로드 받았을때 snowman 기능이 존재하지 않았다. https://github.com/x64dbg/snowman/releases/tag/plugin-v1 x64dbg/snowman Snowman Decompiler for x64dbg (LOOKING FOR MAINTAINER) - x64dbg/snowman github.com snowman.dp32, snowman.dp64를 다운로드 해준다. 각 파일을 x32dbg, x64dbg plugin 폴더에 넣어준 뒤 실행하면 snowman 기능을 사용할 수 있다.