목록Reversing (2)
D1N0's hacking blog
1. pushad, popad x96dbg로 패킹된 파일을 열어 사용자 코드로 실행을 하면 pushad 명령을 찾을 수 있다 프로그램 실행을 위한 언패킹 전에 레지스터 상태를 스택에 저장하고, 언패킹이 끝날때 popad 명령으로 레지스터를 복구한다 pushad를 실행하고 esp를 덤프해서 따라가면 레지스터들이 보인다 저 주소에 하드웨어 중단점을 걸어준다 그리고 F9로 실행하면 언패킹이 끝난 주소에서 멈춘다 위에서 popad 명령이 실행된 것을 확인할 수 있다 jmp 08.1012475가 보이는데, 이 01012475가 이 프로그램의 OEP이다 2. Exeinfo PE 일단 upx로 파일을 언패킹해준다 그리고 Exeinfo로 보면 EP를 바로 알 수 있다 PE버튼을 눌러 헤더 정보를 보면 Image bas..
Z3 solver z3 solver는 특정 값들을 찾아주는 SMT solver 모듈이라고 한다 쉽게 말하면 여러 수식을 풀어주는 모듈이라고 생각하면 된다 리버싱 할 때도 많이 필요하고 그게 아니더라도 유용히 쓸 수 있을 거 같아서 정리하기로 했다 설치 일단 Z3 solver 모듈의 링크는 이곳이다 github.com/Z3Prover/z3 들어가면 다양한 언어에서의 설치 과정이 자세히 나와있지만 나는 파이썬을 쓸 거라서 pip로 간단히 설치가 가능하다 pip install z3-solver or pip3 install z3-solver 기본 문법 사용 전 모듈 불러오기 from z3 import * 정수형 미지수 선언 x = Int('x') y = Int('y') 실수형 미지수 선언 x = Real('x'..