일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- wnourefresh
- 취약점
- iptables
- Docker
- .net core 7
- .nret core 배포
- ncurses
- doupdate
- packet filter
- rfc5508
- ioctl
- 어셈블리어
- BOF
- mvwin
- wrefresh
- edge trigger
- packet flow
- NAPT
- cbpf
- Compiler
- epoll_wait
- DOCKER-USER
- level trigger
- architecture
- 풀이
- vtable
- LOB
- C언어
- REDIS
- epoll
- Today
- Total
Tuuna Computer Science
12345678910111213141516171819202122232425262728293031#include #include #include int main(int argc, char** argv){ while (1) { HWND hWnd = FindWindow(NULL, TEXT("Steam")); if (hWnd) { DWORD Processid; GetWindowThreadProcessId(hWnd, &Processid); //hwnd로 프로세스 ID를 얻어옴 printf("\n탐지 성공\n\n"); printf("\n불법 프로그램을 강제종료 합니다. "); HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, Processid); //The han..
이는 윈도우 쓰레드를 이용해서 디버깅을 힘들게 해봤는데 그래도 쉬울 것이다. 함수를 잘 찾아보자
일단 위 메모리 구조를 보자 어셈블리로 코딩을 해보면 .section .data에 데이터공간을 선언하고 .section .text에 코드를 적은적이 있을 것이다. 그리고 완성된 소스파일을 어셈블하고 링크작업을 한 뒤 프로그램을 실행하면 메모리에 프로그램이 올라가게 될 것이다. 그럼 이 프로그램이 어떻게 메모리에 올라가느냐 일단 우리가 적은 코드 즉, .section .text섹션은 메모리의 0x08048000에 적재될 것이다. 그리고 .section .data영역도 그 다음에 선언된다. 그 다음은 .bss영역이 선언된다. 또한 그 위엔 LIFO식인 stack영역이 존재하고 stack 영역 위엔 프로그램의 인자가 적재된다. 즉 프로그램의 이름(NULL문자로 끝나는)과 프로그램실행시 넘기는 각종 인자가 메모..