iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 24
0
Software Development

闖入DLL的世界 DLL我要進來了哦系列 第 24

第二十四天:常用函數類型

  • 分享至 

  • xImage
  •  

嗨大家好我是Andy,今天來到了第二十四天,我們繼續帶一些常用的函數類型,以及昨天有介紹VirtualAlloc但我發完之後才發現他是有Ex的,所以今天我們也來講一下有Ex和沒有Ex的差別,廢話不說我們直接進入主題。

VirtualAlloc 和 VirtualAllocEx

VirtualAlloc

這是Windows所提供的函數,通常用來分配比較大快的記憶體。

PVOID VirtualAlloc(
PVOID pvAddress, 
SIZE_T dwSize, 
DWORD fdwAllocationType, 
DWORD fdwProtect)

這個是他的函數那我們看一下VirtalAllocEx的

VirtualAllocEx

LPVOID VirtualAllocEx(
HANDLE hProcess,
LPVOID lpAddress,
SIZE_T dwSize,
DWORD flAllocationType,
DWORD flProtect
);

看一下兩個函數的差別應該是Ex多出一個hProcess,這個可以讓使得分配的空間指定在一個進程中的內存地址裡面。

CreateRemoteThread

創建一個進程中的線程

HANDLE CreateRemoteThread(
  HANDLE                 hProcess,
  LPSECURITY_ATTRIBUTES  lpThreadAttributes,
  SIZE_T                 dwStackSize,
  LPTHREAD_START_ROUTINE lpStartAddress,
  LPVOID                 lpParameter,
  DWORD                  dwCreationFlags,
  LPDWORD                lpThreadId
);

HANDLE hProcess,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
這邊除了這三個其他都是參考值

hProcess

這個就是句柄

lpStartAddress

這個如果是注入的話那就是VirtualAlloc申請的一個地址
如果是卸載的話就是要卸載DLL的地址
淺顯易懂吧~

lpParameter

這個假設是LoadLibrary的話就是要去找win32.dll底下的LoadLibrary在把他key進去以此類推

結語

今天還是一樣複習一下之前調用的函數和了解他,雙十連假終於到了,可以好好耍費了?!好啦今天就先這樣了剛上完班回來好累,我們明天見。


上一篇
第二十三天:繼續整理目前以來有使用的函數
下一篇
第二十五天:常用函數類型(2)
系列文
闖入DLL的世界 DLL我要進來了哦30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言