본문 바로가기

Reversing6

Dll Injection 03 3. SetWindowsHookEx 후킹 : 다른 프로세스에 걸려서(hooked) 해당 정보를 얻어오거나, 변경 setWindowsHookEx() : setWindowsHookEx()은 프로세스에 훅을 설치하는 API로 프로세스에 dll을 삽입해 hook procedure를 호출한다. 이를 이용해 원하는 dll 삽입이 가능하다. 1) idHook : 설치될 hook 종류 2) lpfn : hook procedure(callback function)의 함수 포인터) 3) hMod : lpfm의 hook procedure이 포함된 DLL 인스턴스 핸들 4) dwThreadId : Thread ID, hook procedure 설치할 윈도우 값, 0일 때 전역 hook HookMain.cpp Injection.. 2020. 5. 20.
Dll Injection 02 2. CreateRemoteThread Main()에서 인젝션 할 dll과 프로세스를 입력받은 후 InjectDll함수를 실행 ↓ OpenProcess()를 이용해 notepad.exe프로세스 핸들 구한 후 Dll을 삽입할 프로세스의 메모리에 삽입할 공간, dll파일의 경로를 VirtualAllocEx(), WriteProcessMemory를 이용해 할당, 메모리에 입력 ↓ dll인젝션은 LoadLibrary()를 대상 프로세스가 실행하게 해 dll을 로딩하는 것이므로 프로그램에 로딩되어 있는 kernel32.dll에서의 loadlibrary() 주소를 얻어와 CreateRemoteThread()를 이용해 원격으로 실행 ↓ GetModuleHandle(), GetProcAddress()를 이용해 kern.. 2020. 5. 18.
Dll Injection 01 실행중인 다른 프로세스에 특정 DLL 파일을 강제로 삽입 (LoadLibrary() -> DllMain실행) CreateRemoteThread(), AppInit_Dlls(레지스트리), SetWindowsHookEx()의 세 가지 방법 존재. 1. Appinit_dlls (1) HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows\Appinit_dlls (2) LoadAppinit_dlls의 값을 1로 바꿔줘야함 ( 0 -> Appinit_dlls 사용X, 1 -> Appinit_dlls 사용) (3) User32.dll의 DLL_PROCESS_ATTACH과정에서 LoadLibrary()를 사용하여 로드된다. Appinit_dll.. 2020. 5. 18.
[python] base64 모듈을 이용한 custom base64 import string import base64 STANDARD_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' CUSTOM_ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/' ENCODE_TRANS = string.maketrans(STANDARD_ALPHABET, CUSTOM_ALPHABET) DECODE_TRANS = string.maketrans(CUSTOM_ALPHABET, STANDARD_ALPHABET) def encode(input): return base64.b64encode(input).translate(EN.. 2018. 11. 23.