diff --git a/malware-analysis_ref_and_memo.md b/malware-analysis_ref_and_memo.md index c90a660..1ef88c8 100644 --- a/malware-analysis_ref_and_memo.md +++ b/malware-analysis_ref_and_memo.md @@ -534,13 +534,13 @@ Injecition/Hollowingされたプロセスの自動検出
- DLLをロードする流れやメモリからロードするツールについて ### Win32API -|API|dll/header file|arg|return|overview| -|:-|:-|:-|:-|:-| -|[GetModuleHandle](https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandlea)|kernel32/libloaderapi.h (include Windows.h)|PCSTR lpModuleName(モジュール名)|Success:a handle to the specified module
Fail:NULL|指定したモジュールへのハンドルを取得| -|[ReadProcessMemory](https://docs.microsoft.com/ja-jp/windows/win32/api/memoryapi/nf-memoryapi-readprocessmemory)|kernel32/memoryapi.h (include Windows.h)|1.HANDLE hProcess
2.LPCVOID lpBaseAddress
3.LPVOID lpBuffer>
4.SIZE_T nSize
5.SIZE_T \*lpNumberOfBytesRead|Success:non zero
Fail:zero(0)|特定のプロセスの指定したアドレスからメモリの内容を読み取る| -|[CreateRemoteThread](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createremotethread)|kernel32/processthreadsapi.h (include Windows.h)|1.HANDLE hProcess
2.LPSECURITY_ATTRIBUTES lpThreadAttributes
3.SIZE_T dwStackSize
4.LPTHREAD_START_ROUTINE lpStartAddress
5.LPVOID lpParameter
DWORD dwCreationFlags
6.LPDWORD lpThreadId|Success:a handle to the new thread
Fail:Null|別プロセス上に対してスレッドを作成| -|[InitializeCriticalSection](https://docs.microsoft.com/ja-jp/windows/win32/api/synchapi/nf-synchapi-initializecriticalsection)|kernel32/synchapi.h (include Windows.h)|LPCRITICAL_SECTION lpCriticalSection|-|クリティカルセクションを初期化,クリティカルセクションオブジェクトにより1つのプロセスの複数スレッド間で相互排他の同期が行える| -|[CreateMutex](https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createmutexa)|kernel32/synchapi.h (include Windows.h)|1.LPSECURITY_ATTRIBUTES lpMutexAttributes
2.BOOL bInitialOwner
3.LPCSTR lpName|Success:a handle to the newly created mutex object
Fail:Null|Mutexを作成| +|API
dll/header file|arg|return|overview| +|:-|:-|:-|:-| +|[GetModuleHandle](https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-getmodulehandlea)
kernel32/libloaderapi.h (include Windows.h)|PCSTR lpModuleName(モジュール名)|**Success**:a handle to the specified module
**Fail**:NULL|指定したモジュールへのハンドルを取得| +|[ReadProcessMemory](https://docs.microsoft.com/ja-jp/windows/win32/api/memoryapi/nf-memoryapi-readprocessmemory)
kernel32/memoryapi.h (include Windows.h)|1.HANDLE hProcess
2.LPCVOID lpBaseAddress
3.LPVOID lpBuffer>
4.SIZE_T nSize
5.SIZE_T \*lpNumberOfBytesRead|**Success**:non zero
**Fail**:zero(0)|特定のプロセスの指定したアドレスからメモリの内容を読み取る| +|[CreateRemoteThread](https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createremotethread)
kernel32/processthreadsapi.h (include Windows.h)|1.HANDLE hProcess
2.LPSECURITY_ATTRIBUTES lpThreadAttributes
3.SIZE_T dwStackSize
4.LPTHREAD_START_ROUTINE lpStartAddress
5.LPVOID lpParameter
DWORD dwCreationFlags
6.LPDWORD lpThreadId|**Success**:a handle to the new thread
**Fail**:Null|別プロセス上に対してスレッドを作成| +|[InitializeCriticalSection](https://docs.microsoft.com/ja-jp/windows/win32/api/synchapi/nf-synchapi-initializecriticalsection)
kernel32/synchapi.h (include Windows.h)|LPCRITICAL_SECTION lpCriticalSection|-|クリティカルセクションを初期化,クリティカルセクションオブジェクトにより1つのプロセスの複数スレッド間で相互排他の同期が行える| +|[CreateMutex](https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-createmutexa)
kernel32/synchapi.h (include Windows.h)|1.LPSECURITY_ATTRIBUTES lpMutexAttributes
2.BOOL bInitialOwner
3.LPCSTR lpName|**Success**:a handle to the newly created mutex object
**Fail**:Null|Mutexを作成| ### Deobfuscation - バイナリの難読化解除に関するブログ