본문 바로가기

전체 글168

PE File Format 구조 DOS header 부터 Section header 까지를 PE 헤더 , 그 밑의 Section들을 합쳐서 PE 바디(Body) 라고 합니다. 파일에서는 offset으로, 메모리에서는 VA(Virtual Address, 절대주소)로 위치를 표현합니다. 파일이 메모리에 로딩되면 모양이달라집니다. (Section의 크기, 위치 등) 파일의 내용은 보통 코드(.text), 데이터(.data), 리소스(.rsrc) 섹션에 나뉘어서 저장됩니다 섹션 헤더에 각 Section에 대한 파일/메모리에서의 크기, 위치, 속성등이 정의되어 있습니ㅏㄷ. PE 헤더의 끝부분과 각 섹션의 끝에는 NULL Padding이라고 불리우는 영역이 존재합니다. 컴퓨터에서 파일. 메모리, 네트워크 패킷 등을 처리할 때 효율을 높이기위해 최.. 2022. 11. 25.
디스코드 봇을 이용한 간단한 컴퓨터 제어 디스코드 봇을 이용하여 간단한 컴퓨터 제어 프로그램을 만들어보았습니다 아이콘은 역시 땃쥐입니다. 자세히보면 휴대폰을 들고있고 휴대폰으로 컴퓨터를 제어합니다. ! 프로그램은 간단합니다. 디스코드 봇 토큰을 입력하고 봇을 온라인 시킵니다. 알파카 로봇이 로그인되었습니다. >h 를 입력하여 명령어 도움말을 확인할수 있습니다. 컴퓨터의 현재 화면을 스크린샷 찍어서 보내주거나 간단한 키보드 입력을 할수 있습니다. 명령어는 휴대폰으로 입력하여도 컴퓨터에 작동이 되기때문에 휴대폰으로 간단한 컨트롤이 가능합니다. //////////// 2022 11 15 기능 업글 명령어 시작 문자열 ">" 에서 "." 으로 변경 기존 명령어로 작동하던 기능을 버튼으로 기능 사용하능하게 변경함 2022. 11. 9.
바이트 오더링 바이트 오더링은 데이털르 저장하는 방식을 말하는 것이라고 생각하면 되는데, 이는 애플리케이션의 디버깅을 할 때 알아두어야 하는 기본 개념 중 하나입니다. 바이트 오더링 방식에는 크게 두가지가 있습니다. 바로 빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian) 방식입니다. BYTE b = 0x12; WORD w = 0x1234; DWORD dw = 0x12345678; char str[] = "abcde"; 총 4개의 (크기가 다른) 자료형이 있습니다. 각 엔디언 방식에 따라서 같은 데이터를 각각 어떤식으로 저장하는지 비교해보겠습니다. TYPE Name SIZE 빅 엔디언 리틀엔디언 BYTE b 1 [12] [12] WORD w 2 [12][34] [34][12] DWORD dw 4 .. 2022. 11. 3.
서비스 프로세스 서비스 프로세서 동작원리 서비스(Service) 프로그램은 SCM(Serivec Control Manager)에 의해서 관리됩니다. 서비스 애플리케이션이 실행되기 위해서는 시작 명령을 내려줄 수 있는 서비스 제어기(Service Controller)가 필요합니다. 서비스 제어기는 SCM에게 서비스제어를 요청하면 SCM이 서비스 프로그램에게 제어 명령을 전달하고 리턴 값을 돌려받는 구조로 되어있습니다. 2022. 10. 25.
땃쥐 예약 종료 프로그램 친구가 피파를 하는데 컴퓨터를 3시간 후에 자동으로 꺼지게 예약 종료하는 것을 보았고, 그래서 어라? 내가 예약 종료 하는 프로그램 만들수 있지 않을까.. ? 하는 생각이 들어서 만들게 되었습니다 아이콘은 땃쥐가 코로 전원 버튼을 누르는 땃쥐 뒷통수를 볼수 있습니다. 프로그램은 간단하게 원하는 시간(초)를 설정해주게되면 그 시간이 지난 후에 자동으로 컴퓨터가 꺼지는 방식입니다. 10분 예약을 눌러놓았습니다. 프로그램을 x버튼을 눌러서 끄게되도 트레이 아이콘에서 살아있습니다. 땃쥐 뒷통수가 잘 보이진 않지만 뒷통수가 있는데 오른쪽 마우스를 클릭해보면 프로그램을 다시 열거나 남은 시간을 확인 할수도 있고 프로그램을 꺼버릴수도 있습니다. 남은시간은 이렇게 알림창으로 알려주게 됩니다. 저는 컴퓨터를 끌 생각이 .. 2022. 10. 20.
고급 안티 디버깅 고급 안티 디버깅 기법 PE 프로텍터에서 주로 사용되는 고급 안티 디버깅 기법의 공통된 특징은 기술적인 난이도가 높을뿐만 아니라 리버서를 정신적, 육체적으로 지치게 만든다는 것입니다. 수없이 많은 가비지 코드, 조건 분기문, 루프문, 암호화/복호화 코드 그리고 도대체 그, 깊이를 파악할 수 없는 Call_tree에 빠져서 허우적대다 보면 자신이 지금 어디쯤 와 있는지 알 수 없게 되버립니다. 정작 분석하고 싶은 코드에서 접근조차 못하고 엉뚱한 곳에서 헤매게 되는 것이죠. 이런식으로 리버서를 혼란시켜놓고, 중간 중간 Dynamic 아티디버깅 기법을 살짝 섞어 놓으면 그야말로 속수무책으로 당할 수박에 없는 상황이 되어버립니다. 물론 디버깅 자체가 아예 불가능한 것은 아닙니다만, 그 난이도가 매우 높습니다. .. 2022. 10. 20.
반응형