'기계'에 해당되는 글 1건

  1. 2023.04.28 C - Assembly(어셈블리) - Machine Code(기계 코드)
반응형

C 코드를 어셈블리 코드로, 어셈블리 코드를 기계 코드로 바꿔보자.

 

콘솔 명령어 CMD를 실행하는 C 코드를 작성하고 빌드한다.

 

실행하면 콘솔 화면이 나타난다.

 

브레이크 포인트를 걸고 디버깅한다.

 

C 코드가 디스어셈블리된 코드를 확인할 수 있다.

 

 

디버거를 이용해 kernel32.dll의 WinExec() 주소를 확인한다. (0x75E3E120)

디버거로 확인한 WinExec() 주소는 재부팅 할 때마다 변경된다.

 

확인한 어셈블리 코드와 WinExec() 주소를 적당히 편집해 어셈블리 코드를 작성한다. 빌드하고 실행하면 콘솔 화면이 실행된다.

 

WinExec() 가 실행되기 전 코드에 브레이크 포인트를 걸고 디버깅한다. 이번엔 기계 코드를 확인한다.

 

DEP(Data Execution Prevention)를 No로 세팅한다.

 

 

기계 코드를 작성하고 빌드한다. 실행하면 콘솔 화면이 실행된다.

 

반응형
Posted by J-sean
: