Reversing Engineering - 5. hello-world로 배우는 x64dbg 사용법 # 프롤로그 - hello-world.cpp // hello-world.cpp #include void main(){ puts("hello world!\n"); } # x64dbg 기본 설정 - x64dbg로 hello-world.exe를 열면 아무런 설정을 안했을 경우 아래와 같이 뜸 > 박스 부분을 살펴보면 현재 ntdll부분에 멈춰있는 것을 알 수 있음 > 이는 x64dbg가 기본적으로 시스템 중단점 설정이 켜져있기 때문 - 설정 - 환경설정으로 들어가서 아래 사진과 같은 창에서 시스템 중단점 설정을 변경해야 함 > 위의 창에서 박스로 표시된 옵션을 해제하면 됨 > 이후 디버깅 프로그램을 재시작하면 시..
Reversing Engineering - 3. puts("hello world!\n") → x86_64 asm 1. hello world # hello world - 1 - "hello world!"를 출력하는 코드가 어떤식으로 어셈블리 코드로 바뀌었는지 확인 #include int main(){ puts("hello world!\n"); return 0; } > 소스는 visual studio code 2019를 통해 64비트 릴리즈 모드로 컴파일 # hello world - 2 - 보는 방법 1. 주소: 해당 어셈블리 코드의 시작 주소가 표시됨 2. 기계 코드 > 사람이 읽을 수 있는 어셈블리 코드의 전 단계인 기계어가 여기에 표시됨 > : 앞에 있는 값은 prefix이고 띄어쓰기 다음에 있는 부분..