일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Windows
- 개발하기
- HackCTF
- ucrtbase.dll
- pcap packet
- vcruntime.dll
- vcruntime140.dll
- hacking
- IAT Hooking
- 네트워크 바이트 오더
- Windows Kernel Driver
- 윈도우 커널 드라이버
- arudino
- windows kernel debugging
- 개발 환경 준비
- Windows Kernel Debug
- pcap packet capture
- 포너블
- C언어 패킷캡쳐
- 윈도우 커널
- 시스템해킹
- 윈도우 커널 디버깅
- 바이트 오더
- pwnable
- Network Byte Order
- apphelp.dll
- packet capture
- Msvcrt.dll
- 해킹
- Windows Kernel
- Today
- Total
목록Reversing/Code Injection (3)
미친해커
해당 포스팅은 이전 포스팅에서 이어집니다. [Reversing] Code Injection Step 1 Code Injection 기법은 사실상 ShellCode Injection 이라고 불러도 될 만큼 동작 방식이 매우 비슷하다. 하지만 우리는 주입할 코드를 ShellCode가 아닌 C언어 함수로 작성해 주입할 것이다. 1. 주입할 함수 작 crazyhacker.tistory.com Why did the error occur? 에러가 발생되는 원인은 다음과 같다. 주입된 어셈블리(코드)를 확인해보면 0x1E54A422AB0를 첫번째 인자로 넘기고 0x1E54A426D8C에서 WinExec의 주소를 rax로 가져와 call 하게 된다. 하지만 해당 2개의 주소는 존재하지(사용되지) 않는 것을 확인할 수 ..
Code Injection 기법은 사실상 ShellCode Injection 이라고 불러도 될 만큼 동작 방식이 매우 비슷하다. 하지만 우리는 주입할 코드를 ShellCode가 아닌 C언어 함수로 작성해 주입할 것이다. 1. 주입할 함수 작성 /* 주입되는 코드는 CreateRemoteThread API를 통해 실행되기 때문에 아래와 같은 형식을 반드시 지켜줘야 한다. (함수명은 관계 없음) */ DWORD WINAPI ThreadProc(LPVOID lpParameter) { // 계산기를 실행 WinExec("calc.exe", SW_SHOW); } 2. 코드 인젝션 함수 작성 BOOL CodeInjection(DWORD PID) { // 타겟 프로세스의 핸들 획득 HANDLE hProcess = O..
코드 인젝션 (Code Injection) 정의 Code Injection이란 실행 가능한 코드를 대상 메모리 영역으로 삽입하여 실행하는 것을 말한다. 코드 인젝션 활용 영역 프로그램의 기능 개선 및 버그 패치 API 후킹 일반 응용 프로그램에 특별한 목적의 코드를 추가 악성코드에서의 활용 코드 인젝션 주요 동작 흐름 Windows API / Kernel Function 프로세스 권한 획득 : OpenProcess() / NtOpenProcess() 메모리 공간 할당 : VirtualAllocEx() / NtAllocateVirtualMemory() 코드 삽입 : WriteProcessMemory() / NtWriteVirtualMemory() 코드 실행 : CreateRemoteThread() / Nt..