|
如果要显示窗口什么的再加一个多线程初始化模块即可,为了简单这里用个messagebox代替
在编译的时候需要用到dll编译插件 并且需要导出函数(压缩包里面的导出函数表.txt )
可以使用本人的多功能编译插件编译
http://www.vbgood.com/thread-107527-1-1.html
代码如下- Option Explicit
- Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
- Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
- Public Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
- Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
- Private Declare Function CreateIExprSrvObj Lib "msvbvm60.dll" (ByVal p1_0 As Long, ByVal p2_4 As Long, ByVal p3_0 As Long) As Long
- Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long
- Public Function WahCloseApcHelper() As Long
- MsgBox "hello"
- End Function
- Public Function WahCloseHandleHelper() As Long
- MsgBox "hello"
- End Function
- Public Function WahCloseNotificationHandleHelper() As Long
- MsgBox "hello"
- End Function
- Public Function WahCloseSocketHandle() As Long
- MsgBox "hello"
- End Function
- Public Function WahCloseThread() As Long
- MsgBox "hello"
- End Function
- Public Function WahCompleteRequest() As Long
- MsgBox "hello"
- End Function
- Public Function WahCreateHandleContextTable() As Long
- MsgBox "hello"
- End Function
- Public Function WahCreateNotificationHandle() As Long
- MsgBox "hello"
- End Function
- Public Function WahCreateSocketHandle() As Long
- MsgBox "hello"
- End Function
- Public Function WahDestroyHandleContextTable() As Long
- MsgBox "hello"
- End Function
- Public Function WahDisableNonIFSHandleSupport() As Long
- MsgBox "hello"
- End Function
- Public Function WahEnableNonIFSHandleSupport() As Long
- MsgBox "hello"
- End Function
- Public Function WahEnumerateHandleContexts() As Long
- MsgBox "hello"
- End Function
- Public Function WahInsertHandleContext() As Long
- MsgBox "hello"
- End Function
- Public Function WahNotifyAllProcesses() As Long
- MsgBox "hello"
- End Function
- Public Function WahOpenApcHelper() As Long
- MsgBox "hello"
- End Function
- Public Function WahOpenCurrentThread() As Long
- MsgBox "hello"
- End Function
- Public Function WahOpenHandleHelper() As Long
- MsgBox "hello"
- End Function
- Public Function WahOpenNotificationHandleHelper() As Long
- MsgBox "hello"
- End Function
- Public Function WahQueueUserApc() As Long
- MsgBox "hello"
- End Function
- Public Function WahReferenceContextByHandle() As Long
- MsgBox "hello"
- End Function
- Public Function WahRemoveHandleContext() As Long
- MsgBox "hello"
- End Function
- Public Function WahWaitForNotification() As Long
- MsgBox "hello"
- End Function
- Sub Main()
- End Sub
- Public Function DllMain(ByVal hinstdll As Long, ByVal fdwReason As Long, ByVal lpvReserved As Long) As Long ' "VB标准DLL入口函数
- Const DLL_PROCESS_ATTACH As Long = 1
- Const DLL_THREAD_ATTACH As Long = 2
- Const DLL_PROCESS_DETACH As Long = 0
- Const DLL_THREAD_DETACH As Long = 3
-
- Dim nRet As Long
- nRet = 1
- Select Case fdwReason
- Case DLL_PROCESS_ATTACH
- CreateIExprSrvObj 0, 4, 0
- If LoadOldDll() = False Then
- nRet = 0
- Else
- MessageBox 0, "劫持Dll 成功", "提示", 16
- End If
- Case DLL_THREAD_ATTACH
- Case DLL_PROCESS_DETACH
- Case DLL_THREAD_DETACH
- End Select
- DllMain = nRet
- End Function
- Public Function WriteJmpCode(ByVal addr As Long, ByVal jmpAddr As Long) As Long
- Dim bin As Byte
- Dim Jmpcode As Integer
- '00401208 > B8 01000000 mov eax, 1
- '0040120D FFE0 jmp eax
-
- bin = &HB8
- Jmpcode = &HE0FF
- WriteProcessMemory -1, addr, bin, 1, ByVal 0
- WriteProcessMemory -1, addr + 1, jmpAddr, 4, ByVal 0
- WriteProcessMemory -1, addr + 5, Jmpcode, 2, ByVal 0
- End Function
- Public Function LoadOldDll() As Boolean
- Dim ModHandle As Long
-
- ModHandle = LoadLibrary("C:\windows\system32\ws2help.dll")
- If ModHandle > 0 Then
-
-
- WriteJmpCode AddressOf WahCloseApcHelper, GetProcAddress(ModHandle, "WahCloseApcHelper")
-
- WriteJmpCode AddressOf WahCloseHandleHelper, GetProcAddress(ModHandle, "WahCloseHandleHelper")
-
- WriteJmpCode AddressOf WahCloseNotificationHandleHelper, GetProcAddress(ModHandle, "WahCloseNotificationHandleHelper")
-
- WriteJmpCode AddressOf WahCloseSocketHandle, GetProcAddress(ModHandle, "WahCloseSocketHandle")
-
- WriteJmpCode AddressOf WahCloseThread, GetProcAddress(ModHandle, "WahCloseThread")
-
- WriteJmpCode AddressOf WahCompleteRequest, GetProcAddress(ModHandle, "WahCompleteRequest")
-
- WriteJmpCode AddressOf WahCreateHandleContextTable, GetProcAddress(ModHandle, "WahCreateHandleContextTable")
-
- WriteJmpCode AddressOf WahCreateNotificationHandle, GetProcAddress(ModHandle, "WahCreateNotificationHandle")
-
- WriteJmpCode AddressOf WahCreateSocketHandle, GetProcAddress(ModHandle, "WahCreateSocketHandle")
-
- WriteJmpCode AddressOf WahDestroyHandleContextTable, GetProcAddress(ModHandle, "WahDestroyHandleContextTable")
-
- WriteJmpCode AddressOf WahDisableNonIFSHandleSupport, GetProcAddress(ModHandle, "WahDisableNonIFSHandleSupport")
-
- WriteJmpCode AddressOf WahEnableNonIFSHandleSupport, GetProcAddress(ModHandle, "WahEnableNonIFSHandleSupport")
-
- WriteJmpCode AddressOf WahEnumerateHandleContexts, GetProcAddress(ModHandle, "WahEnumerateHandleContexts")
-
- WriteJmpCode AddressOf WahInsertHandleContext, GetProcAddress(ModHandle, "WahInsertHandleContext")
- WriteJmpCode AddressOf WahNotifyAllProcesses, GetProcAddress(ModHandle, "WahNotifyAllProcesses")
-
- WriteJmpCode AddressOf WahOpenApcHelper, GetProcAddress(ModHandle, "WahOpenApcHelper")
-
- WriteJmpCode AddressOf WahOpenCurrentThread, GetProcAddress(ModHandle, "WahOpenCurrentThread")
-
- WriteJmpCode AddressOf WahOpenHandleHelper, GetProcAddress(ModHandle, "WahOpenHandleHelper")
-
- WriteJmpCode AddressOf WahOpenNotificationHandleHelper, GetProcAddress(ModHandle, "WahOpenNotificationHandleHelper")
-
- WriteJmpCode AddressOf WahQueueUserApc, GetProcAddress(ModHandle, "WahQueueUserApc")
-
- WriteJmpCode AddressOf WahReferenceContextByHandle, GetProcAddress(ModHandle, "WahReferenceContextByHandle")
-
- WriteJmpCode AddressOf WahRemoveHandleContext, GetProcAddress(ModHandle, "WahRemoveHandleContext")
-
- WriteJmpCode AddressOf WahWaitForNotification, GetProcAddress(ModHandle, "WahWaitForNotification")
-
- LoadOldDll = True
-
- Else
- LoadOldDll = False
- End If
- End Function
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
评分
-
查看全部评分
本帖被以下淘专辑推荐:
- · 俺的精品贴|主题: 413, 订阅: 12
- · IDE|主题: 3, 订阅: 0
- · 精品帖|主题: 12, 订阅: 0
- · 精品帖|主题: 13, 订阅: 0
|