Reversing
-
Hooking - 기본개념Reversing/Hooking 2019. 10. 25. 14:57
Hooking - 정보를 가로채고, 실행 흐름을 변경하고, 원래와는 다른 기능을 제공하게 하는 기술이다. 후킹의 전체적인 프로세스 - 디스어셈블러/디버거를 이용하여 프로그램의 구조와 동작원리 파악 - 버그 수정 또는 기능 개선에 필요한 Hook 코드를 개발 - 실행 파일과 프로세스 메모리를 자유롭게 조작하여 Hook 코드 설치 후킹기술이 필요한 경우(case) - 프로그램 소스코드가 없는 경우 - 소스코드 수정이 여의치 않은 상황 ... 후킹 종류 - IAT Hooking - EAT Hooking - Inline Hooking - Message Hooking - API Hooking ..... 많다고 한다..
-
-
CodeEngn Advance08 (미완)Reversing/Codengn Advance 2018. 8. 15. 15:44
CodeEngn Advance 08 문제풀이 문제 지문 中Key 값이 5D88-53B4-52A87D27-1D0D-5B09 일때 Name은 무엇인가 힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) (그림 1)(사진 1)위 화면은 로드? 작업이라고 얼추 들은 기억이난다.(초심잡고 다시하는 중)(그림 2)로드하는 화면에서 F9(실행)을 하게되면 프로그램 실제코드로 이동하게 된다.(그림 3)리버싱을 수행할 때 마다 문자열 체킹하면 단서가 나오기 때문에 위(그림 3) 또한 정답시 출력하는 문자열로 추정되는 "Good Boy!!!"가 보인다. (그림 4)"Good Boy!!!"루틴으로 이동한 화면이다. 파란색 박스는 내가 Name에 입력한 값의 개..
-
Reversing.kr MusicPlayerReversing/Reversing.kr 2017. 11. 6. 23:23
이 문제푸느라 4~5시간 정도 소모된 것 같다. 왜냐하면 나는 타임 조건문을 수정하고나서 런타임 오류 메시지박스가 안나오고(다풀고나서 다른분들의 풀이 참고했음) 이상한곳에서 무한루프를 돌았기 때문에 안티디버깅인줄알고 안티디버깅함수공부도 했기때문이다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이상한곳으로 빠지느라 시간이 많이걸림.. 그런데도 풀었다는게 신기함.. * open을 누르면 이상한곳으로 빠져서 경로를 넣어서 실행해줬습니다. 1. 메시지박스 모두 브레이크 포인트 후 실행2. 마지막 메시지박스 함수가 1분 어쩌고저쩌고 하는 거임3. 이 박스 위 루틴을 확인하면 6000의 16진수값과 내가 재생하면서 늘어나는 00:01 00:02 .. 값과 비교하는 cmp 비교구문을 찾음. // 1000 == 1초4. 비교하는 값을 3분..
-
Reversing.kr ImagePrcReversing/Reversing.kr 2017. 11. 6. 23:02
LoadResource함수를 쓰면 메모리에 올라간다고 합니다. (정확한내용은 나중에 수정하겠음.)문자열 검색을 통해 wrong을 출력하는 곳으로 이동하였고, 실행파일 모듈에서 (메모리로)bmp리소스를 불러들인 뒤 16진수로 15F90번 동안 제가 그린 그림의 리소스와 비교대상 그림의 리소스와 1바이트씩 비교합니다. 15F90이 리소스 크기로 추정됩니다. 만일 서로 그림형태가 다를경우 다른 값이 나올것이고 값이 다를 때 wrong을 출력함수로 분기합니다. 그래서 비교하는 그림의 리소스가 있는 메모리 위치로 이동을 합니다.이게 리소스로 추정됩니다. 메모리자체를 백업합니다. 15F90와 같이 크기를 맞추기 위해 쓰레기 값들을 제거하였고, 깨끗한 원본리소스를 구할 수 있었습니다. 1. BMP리소스를 어떻게 해야..
-
CodeEngn Advance 06Reversing/Codengn Advance 2017. 1. 17. 09:24
UPX언패킹을 해준다. ISDebuggerPresent 우회를 해준다.실행(F9)를 해준다. stop(F12)를 해준다.그리고 엔터를 꾸욱눌러준다.790에서 끝난다.원래 이렇게 푸는거 아닌데 백투유저 모드 안되서.. (내가 하면 항상 잘 안됨 ㅡㅡ) -> 추가 내용: 그냥 파일실행해서 엔터만누를경우 10회 단위로 뚝 끊겨서 다시 클릭해서 엔터누르고 다시클릭해서 엔터누르고 반복되서 번거로운데위 순서 처럼해주면 엔터누를때 제약없이 계속 이어서 횟수가올라감 뭐라표현해야하지.. 1 2 3 4 5 6 7 8 9 10 (뚝 다시 클릭) 11 12 13 14 ... // 이게 그냥 실행할 경우1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... // 위 순서처럼 한 경우 // 한번 문제 실행해보시면 알수..