본문 바로가기
반응형

ALL95

※함수호출규약 ●정의 함수 호출시 인자를 전달하는 방식과 스택프레임을 반환하는 방식을 약속해 놓은것이라고 한다. 호출규약은 x86/x64 서로 다른 규약을 사용합니다. x86은 __cdecl,__stdcall,__fastlcall,__thiscall 총 4개의 호출규약으로 구분되며 x64에서는 __fastcall을 사용하며 운영체제별 구분됩니다. 오늘은 위 호출규약별 특징을 정리하겠습니다. ●x86 __cdecl -함수의 종료이후 스택을 Caller가 정리한다.(함수의 내부에서 정리하는것이 아닌 함수외부에서 스택을 정리한다.) -호출규약을 입력하지 않으면 기본 cdecl을 사용한다. __stdcall -함수의 내부에서 스택을 정리한다. __fastcall,__thiscall -함수의 내부에서 스택을 정리한다. -fas.. 2017. 3. 15.
[Win32 API] PAGE_GUARD예외 처리특성을 통한 안티디버깅 이 안티 디버깅을 알기 위해서는 다음 Windows의 예외처리 특징에 대해 알아야한다. ※Windows가 프로세스에 대한 예외를 처리할 경우 2가지로 나뉘며 특징은 다음과 같다.1.일반적인 실행의 경우 : 예외처리를 프로세스에 맡긴다.(프로그래머 정의 : try-except문)2.디버거에서 실행될 경우 : 예외처리를 디버거에게 맡긴다. 이 경우 프로그래머가 정의한 예외처리문은 거치지 않는다. 두차이를 이용하여 악성코드는 의도된 예외를 발생시키는데 예외에 사용되는 용도로 PAGE_GUARD를 사용한다.PAGE_GUARD는 메모리 보안속성인데 PAGE_GUARD가 설정된 메모리에 접근할경우 예외가 발생한다.Win32 API인 VirtualProtect의 3번째 parameter를 사용하여 메모리의 보안속성을.. 2016. 11. 17.
[WIN32 / C] pipe를 통한 command prompt연결(console) - Remote Shell 이 글은 파이프 통신을 공부하며 진행하게된 코드를 기재한다. 블로그 운영도 처음이고 첫글이니 만큼 어수룩한면이 많아 이해해주길 바랍니다.^^ 앞으로 나아지겠죠? ㅎㅎ 최근 개인적으로 진행하고 있는 프로젝트를 진행하기 위해 파이프를 공부하며 작성하게된 코드를 소개하겠습니다. 잡담은 여기까지~~ 코드를 소개하면 작성된 프로그램은 Child프로세스로 cmd.exe를 실행 이후 부모프로세스(작성된 프로그램)와 child process사이에 파이프통신을 연결한다. 이 파이프를 통하여 부모프로세스는 child process인 cmd.exe에 cmd명령어(ipconfig,ping등)를 내릴수 있게 된다. 아래의 코드중 색으로 하이라이팅된 코드들은 진행하며 알게 되거나 삽질하게된 부분이다. 코드 #include #in.. 2016. 11. 16.
반응형