Browse Source

DongDong注入

qianyi
shanji 2 years ago
parent
commit
4a14d4ffb3
  1. 63
      BBWY.sln
  2. 245
      DongDongInJection/InDll/CSharpAPIs.cs
  3. BIN
      DongDongInJection/InDll/DllInLine.dll
  4. 35
      DongDongInJection/InDll/HookHelper.cs
  5. 20
      DongDongInJection/InDll/InDll.csproj
  6. 32
      DongDongInJection/InDll/Program.cs
  7. BIN
      DongDongInJection/InDll/sendPhone.dll
  8. BIN
      dll注入器.rar

63
BBWY.sln

@ -36,62 +36,122 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BBWY.Test", "BBWY.Test\BBWY
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JD.API", "JD.API\JD.API.csproj", "{3D37A8D3-0364-4539-B3E9-A6610F4659A8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PJZS", "PJZS\PJZS.csproj", "{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PJZS", "PJZS\PJZS.csproj", "{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InDll", "DongDongInJection\InDll\InDll.csproj", "{1F19E500-3B6A-40F9-9814-C941097B93D9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{04DAF636-2630-45BB-BEFA-264EC273E920}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04DAF636-2630-45BB-BEFA-264EC273E920}.Debug|Any CPU.Build.0 = Debug|Any CPU
{04DAF636-2630-45BB-BEFA-264EC273E920}.Debug|x86.ActiveCfg = Debug|Any CPU
{04DAF636-2630-45BB-BEFA-264EC273E920}.Debug|x86.Build.0 = Debug|Any CPU
{04DAF636-2630-45BB-BEFA-264EC273E920}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04DAF636-2630-45BB-BEFA-264EC273E920}.Release|Any CPU.Build.0 = Release|Any CPU
{04DAF636-2630-45BB-BEFA-264EC273E920}.Release|x86.ActiveCfg = Release|Any CPU
{04DAF636-2630-45BB-BEFA-264EC273E920}.Release|x86.Build.0 = Release|Any CPU
{68F7CDB6-BE89-400D-B6F3-B7BCC826E5E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68F7CDB6-BE89-400D-B6F3-B7BCC826E5E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68F7CDB6-BE89-400D-B6F3-B7BCC826E5E9}.Debug|x86.ActiveCfg = Debug|Any CPU
{68F7CDB6-BE89-400D-B6F3-B7BCC826E5E9}.Debug|x86.Build.0 = Debug|Any CPU
{68F7CDB6-BE89-400D-B6F3-B7BCC826E5E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68F7CDB6-BE89-400D-B6F3-B7BCC826E5E9}.Release|Any CPU.Build.0 = Release|Any CPU
{68F7CDB6-BE89-400D-B6F3-B7BCC826E5E9}.Release|x86.ActiveCfg = Release|Any CPU
{68F7CDB6-BE89-400D-B6F3-B7BCC826E5E9}.Release|x86.Build.0 = Release|Any CPU
{4D58B231-3299-44EE-B579-5DE885383AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D58B231-3299-44EE-B579-5DE885383AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D58B231-3299-44EE-B579-5DE885383AF2}.Debug|x86.ActiveCfg = Debug|Any CPU
{4D58B231-3299-44EE-B579-5DE885383AF2}.Debug|x86.Build.0 = Debug|Any CPU
{4D58B231-3299-44EE-B579-5DE885383AF2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D58B231-3299-44EE-B579-5DE885383AF2}.Release|Any CPU.Build.0 = Release|Any CPU
{4D58B231-3299-44EE-B579-5DE885383AF2}.Release|x86.ActiveCfg = Release|Any CPU
{4D58B231-3299-44EE-B579-5DE885383AF2}.Release|x86.Build.0 = Release|Any CPU
{47E64D1C-6997-4919-9897-FC5DF09327B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{47E64D1C-6997-4919-9897-FC5DF09327B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{47E64D1C-6997-4919-9897-FC5DF09327B3}.Debug|x86.ActiveCfg = Debug|Any CPU
{47E64D1C-6997-4919-9897-FC5DF09327B3}.Debug|x86.Build.0 = Debug|Any CPU
{47E64D1C-6997-4919-9897-FC5DF09327B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{47E64D1C-6997-4919-9897-FC5DF09327B3}.Release|Any CPU.Build.0 = Release|Any CPU
{47E64D1C-6997-4919-9897-FC5DF09327B3}.Release|x86.ActiveCfg = Release|Any CPU
{47E64D1C-6997-4919-9897-FC5DF09327B3}.Release|x86.Build.0 = Release|Any CPU
{10F2C0E3-D756-47F8-AEFD-98A800DBFCEB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{10F2C0E3-D756-47F8-AEFD-98A800DBFCEB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{10F2C0E3-D756-47F8-AEFD-98A800DBFCEB}.Debug|x86.ActiveCfg = Debug|Any CPU
{10F2C0E3-D756-47F8-AEFD-98A800DBFCEB}.Debug|x86.Build.0 = Debug|Any CPU
{10F2C0E3-D756-47F8-AEFD-98A800DBFCEB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{10F2C0E3-D756-47F8-AEFD-98A800DBFCEB}.Release|Any CPU.Build.0 = Release|Any CPU
{10F2C0E3-D756-47F8-AEFD-98A800DBFCEB}.Release|x86.ActiveCfg = Release|Any CPU
{10F2C0E3-D756-47F8-AEFD-98A800DBFCEB}.Release|x86.Build.0 = Release|Any CPU
{5FC60547-0934-4AAD-921B-F4DA03C9F47D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5FC60547-0934-4AAD-921B-F4DA03C9F47D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5FC60547-0934-4AAD-921B-F4DA03C9F47D}.Debug|x86.ActiveCfg = Debug|Any CPU
{5FC60547-0934-4AAD-921B-F4DA03C9F47D}.Debug|x86.Build.0 = Debug|Any CPU
{5FC60547-0934-4AAD-921B-F4DA03C9F47D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5FC60547-0934-4AAD-921B-F4DA03C9F47D}.Release|Any CPU.Build.0 = Release|Any CPU
{5FC60547-0934-4AAD-921B-F4DA03C9F47D}.Release|x86.ActiveCfg = Release|Any CPU
{5FC60547-0934-4AAD-921B-F4DA03C9F47D}.Release|x86.Build.0 = Release|Any CPU
{E38A95F5-05E6-4856-811C-30D7A1B77C68}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E38A95F5-05E6-4856-811C-30D7A1B77C68}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E38A95F5-05E6-4856-811C-30D7A1B77C68}.Debug|x86.ActiveCfg = Debug|Any CPU
{E38A95F5-05E6-4856-811C-30D7A1B77C68}.Debug|x86.Build.0 = Debug|Any CPU
{E38A95F5-05E6-4856-811C-30D7A1B77C68}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E38A95F5-05E6-4856-811C-30D7A1B77C68}.Release|Any CPU.Build.0 = Release|Any CPU
{E38A95F5-05E6-4856-811C-30D7A1B77C68}.Release|x86.ActiveCfg = Release|Any CPU
{E38A95F5-05E6-4856-811C-30D7A1B77C68}.Release|x86.Build.0 = Release|Any CPU
{2DC24A1B-EFE0-4F9D-8A9A-A6B530696E17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2DC24A1B-EFE0-4F9D-8A9A-A6B530696E17}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2DC24A1B-EFE0-4F9D-8A9A-A6B530696E17}.Debug|x86.ActiveCfg = Debug|Any CPU
{2DC24A1B-EFE0-4F9D-8A9A-A6B530696E17}.Debug|x86.Build.0 = Debug|Any CPU
{2DC24A1B-EFE0-4F9D-8A9A-A6B530696E17}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2DC24A1B-EFE0-4F9D-8A9A-A6B530696E17}.Release|Any CPU.Build.0 = Release|Any CPU
{2DC24A1B-EFE0-4F9D-8A9A-A6B530696E17}.Release|x86.ActiveCfg = Release|Any CPU
{2DC24A1B-EFE0-4F9D-8A9A-A6B530696E17}.Release|x86.Build.0 = Release|Any CPU
{1A7EB438-5DEF-4940-8CB2-C58141C75524}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1A7EB438-5DEF-4940-8CB2-C58141C75524}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1A7EB438-5DEF-4940-8CB2-C58141C75524}.Debug|x86.ActiveCfg = Debug|Any CPU
{1A7EB438-5DEF-4940-8CB2-C58141C75524}.Debug|x86.Build.0 = Debug|Any CPU
{1A7EB438-5DEF-4940-8CB2-C58141C75524}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1A7EB438-5DEF-4940-8CB2-C58141C75524}.Release|Any CPU.Build.0 = Release|Any CPU
{1A7EB438-5DEF-4940-8CB2-C58141C75524}.Release|x86.ActiveCfg = Release|Any CPU
{1A7EB438-5DEF-4940-8CB2-C58141C75524}.Release|x86.Build.0 = Release|Any CPU
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB}.Debug|x86.ActiveCfg = Debug|Any CPU
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB}.Debug|x86.Build.0 = Debug|Any CPU
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB}.Release|Any CPU.Build.0 = Release|Any CPU
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB}.Release|x86.ActiveCfg = Release|Any CPU
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB}.Release|x86.Build.0 = Release|Any CPU
{3D37A8D3-0364-4539-B3E9-A6610F4659A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3D37A8D3-0364-4539-B3E9-A6610F4659A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3D37A8D3-0364-4539-B3E9-A6610F4659A8}.Debug|x86.ActiveCfg = Debug|Any CPU
{3D37A8D3-0364-4539-B3E9-A6610F4659A8}.Debug|x86.Build.0 = Debug|Any CPU
{3D37A8D3-0364-4539-B3E9-A6610F4659A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3D37A8D3-0364-4539-B3E9-A6610F4659A8}.Release|Any CPU.Build.0 = Release|Any CPU
{3D37A8D3-0364-4539-B3E9-A6610F4659A8}.Release|x86.ActiveCfg = Release|Any CPU
{3D37A8D3-0364-4539-B3E9-A6610F4659A8}.Release|x86.Build.0 = Release|Any CPU
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}.Debug|x86.ActiveCfg = Debug|Any CPU
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}.Debug|x86.Build.0 = Debug|Any CPU
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}.Release|Any CPU.Build.0 = Release|Any CPU
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}.Release|x86.ActiveCfg = Release|Any CPU
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8}.Release|x86.Build.0 = Release|Any CPU
{1F19E500-3B6A-40F9-9814-C941097B93D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1F19E500-3B6A-40F9-9814-C941097B93D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1F19E500-3B6A-40F9-9814-C941097B93D9}.Debug|x86.ActiveCfg = Debug|x86
{1F19E500-3B6A-40F9-9814-C941097B93D9}.Debug|x86.Build.0 = Debug|x86
{1F19E500-3B6A-40F9-9814-C941097B93D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1F19E500-3B6A-40F9-9814-C941097B93D9}.Release|Any CPU.Build.0 = Release|Any CPU
{1F19E500-3B6A-40F9-9814-C941097B93D9}.Release|x86.ActiveCfg = Release|x86
{1F19E500-3B6A-40F9-9814-C941097B93D9}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@ -108,6 +168,7 @@ Global
{FCD5E03E-DA48-406B-9AA8-F72F21F62BDB} = {B545F3FA-E6A7-4CB1-B92D-801C66357CF5}
{3D37A8D3-0364-4539-B3E9-A6610F4659A8} = {B545F3FA-E6A7-4CB1-B92D-801C66357CF5}
{FB4BF1A9-DA81-446F-903C-89D3F905B7B8} = {D097AEA5-A7B1-414D-B82D-F70F177D0D8D}
{1F19E500-3B6A-40F9-9814-C941097B93D9} = {D097AEA5-A7B1-414D-B82D-F70F177D0D8D}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CC045257-4D86-45FD-A1F0-2715C024F1B5}

245
DongDongInJection/InDll/CSharpAPIs.cs

@ -0,0 +1,245 @@

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace QYDongDongTool
{
public class CSharpAPIs
{
private delegate bool WNDENUMPROC(IntPtr hWnd, int lParam);
[DllImport("user32.dll")]
private static extern bool EnumWindows(WNDENUMPROC lpEnumFunc, int lParam);
//[DllImport("user32.dll")]
//private static extern IntPtr FindWindowW(string lpClassName, string lpWindowName);
[DllImport("user32.dll")]
private static extern int GetWindowTextW(IntPtr hWnd, [MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpString, int nMaxCount);
[DllImport("user32.dll")]
private static extern int GetClassNameW(IntPtr hWnd, [MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpString, int nMaxCount);
[DllImport("User32.dll", CharSet = CharSet.Auto)]
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
[DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]
public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
[DllImport("user32.dll")]
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndlnsertAfter, int X, int Y, int cx, int cy, uint Flags);
[DllImport("user32.dll", EntryPoint = "SetParent")]
public static extern int SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int MoveWindow(IntPtr hWnd, int x, int y, int nWidth, int nHeight, bool BRePaint);
[DllImport("user32.dll")]
public static extern IntPtr GetTopWindow(IntPtr hWnd);
[DllImport("user32.dll", CharSet = CharSet.Auto, EntryPoint = "GetWindow", SetLastError = true)]
public static extern IntPtr GetNextWindow(IntPtr hwnd, [MarshalAs(UnmanagedType.U4)] int wFlag);
[DllImport("user32.dll", EntryPoint = "GetDesktopWindow", CharSet = CharSet.Auto, SetLastError = true)]
public static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll", EntryPoint = "GetWindowLong")]
private static extern IntPtr GetWindowLongPtr32(IntPtr hWnd, int nIndex);
[DllImport("user32.dll", EntryPoint = "GetWindowLongPtr")]
private static extern IntPtr GetWindowLongPtr64(IntPtr hWnd, int nIndex);
// This static method is required because Win32 does not support
// GetWindowLongPtr directly
public static IntPtr GetWindowLong(IntPtr hWnd, int nIndex)
{
if (IntPtr.Size == 8)
return GetWindowLongPtr64(hWnd, nIndex);
else
return GetWindowLongPtr32(hWnd, nIndex);
}
public static IntPtr SetWindowLong(IntPtr hWnd, int nIndex, IntPtr dwNewLong)
{
if (IntPtr.Size == 8)
return SetWindowLongPtr64(hWnd, nIndex, dwNewLong);
else
return new IntPtr(SetWindowLong32(hWnd, nIndex, dwNewLong.ToInt32()));
}
[DllImport("user32.dll", EntryPoint = "SetWindowLong")]
private static extern int SetWindowLong32(IntPtr hWnd, int nIndex, int dwNewLong);
[DllImport("user32.dll", EntryPoint = "SetWindowLongPtr")]
private static extern IntPtr SetWindowLongPtr64(IntPtr hWnd, int nIndex, IntPtr dwNewLong);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern nint GetForegroundWindow();
[DllImport("user32.dll")]
public static extern bool SetForegroundWindow(nint hWnd);
//根据窗口来获取进程ID,
public static int GetCurrentProcessID(IntPtr handle)
{
GetWindowThreadProcessId(handle, out int oo);
return oo;
}
public struct WindowInfo
{
public IntPtr hWnd;
public string szWindowName;
public string szClassName;
public int ProcessId { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public int X { get; set; }
public int Y { get; set; }
}
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetWindowRect(IntPtr hWnd, ref RECT lpRect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int Left; //最左坐标
public int Top; //最上坐标
public int Right; //最右坐标
public int Bottom; //最下坐标
}
public static (int width, int height, int x, int y) GetWindowSize(IntPtr hwnd)
{
RECT rc = new RECT();
GetWindowRect(hwnd, ref rc);
int width = rc.Right - rc.Left; //窗口的宽度
int height = rc.Bottom - rc.Top; //窗口的高度
int x = rc.Left;
int y = rc.Top;
return (width, height, x, y);
}
/*
SetWindowLong(ChildWindowHandle, GWL_EXSTYLE, (GetWindowLong(ChildWindowHandle, GWL_EXSTYLE) | WS_EX_NOPARENTNOTIFY));
*/
public enum GWL
{
GWL_WNDPROC = (-4),
GWL_HINSTANCE = (-6),
GWL_HWNDPARENT = (-8),
GWL_STYLE = (-16),
GWL_EXSTYLE = (-20),
GWL_USERDATA = (-21),
GWL_ID = (-12)
}
public static nint SetWindowStyle(IntPtr hwnd)
{
return SetWindowLong(hwnd, (int)GWL.GWL_EXSTYLE, (GetWindowLong(hwnd, (int)GWL.GWL_EXSTYLE) | 0x00000004));
}
public static bool ReSetParent(IntPtr hWnd)
{
int row= SetParent(hWnd, GetDesktopWindow());
MoveWindow(hWnd, 0, 0, 0, 0, true);
return row > 0;
}
public static WindowInfo GetWindowInfo(nint hWnd)
{
WindowInfo wnd = new WindowInfo();
StringBuilder sb = new StringBuilder(256);
//get hwnd
wnd.hWnd = hWnd;
//get window name
GetWindowTextW(hWnd, sb, sb.Capacity);
wnd.szWindowName = sb.ToString();
//get window class
GetClassNameW(hWnd, sb, sb.Capacity);
wnd.szClassName = sb.ToString();
wnd.ProcessId = GetCurrentProcessID(hWnd);
var size= GetWindowSize(hWnd);
wnd.Width = size.width;
wnd.Height = size.height;
wnd.X = size.x;
wnd.Y = size.y;
return wnd;
}
public List<WindowInfo> GetAllDesktopWindows()
{
List<WindowInfo> wndList = new List<WindowInfo>();
//enum all desktop windows
EnumWindows(delegate (IntPtr hWnd, int lParam)
{
WindowInfo wnd = new WindowInfo();
StringBuilder sb = new StringBuilder(256);
//get hwnd
wnd.hWnd = hWnd;
//get window name
GetWindowTextW(hWnd, sb, sb.Capacity);
wnd.szWindowName = sb.ToString();
//get window class
GetClassNameW(hWnd, sb, sb.Capacity);
wnd.szClassName = sb.ToString();
wnd.ProcessId = GetCurrentProcessID(hWnd);
var (width, height, x, y) = GetWindowSize(hWnd);
wnd.Width = width;
wnd.Height = height;
wnd.X = x;
wnd.Y = y;
//add it into list
wndList.Add(wnd);
return true;
}, 0);
return wndList;
}
//获取窗体位置 最小化 最大化 隐藏 api
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl);
}
}
public struct WINDOWPLACEMENT
{
public int length;
public int flags;
public int showCmd;
public System.Drawing.Point ptMinPosition;
public System.Drawing.Point ptMaxPosition;
public System.Drawing.Rectangle rcNormalPosition;
}

BIN
DongDongInJection/InDll/DllInLine.dll

Binary file not shown.

35
DongDongInJection/InDll/HookHelper.cs

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Xml.Linq;
namespace QYDongDongTool.Unitls
{
public class MP
{
[DllImport("DllInLine.dll", EntryPoint = "Hook", CallingConvention = CallingConvention.Cdecl)]
public static extern int DllHook(int pid, string dLLPath);
[DllImport("DllInLine.dll", EntryPoint = "UnHook", CallingConvention = CallingConvention.Cdecl)]
public static extern int UnHookDll(int pid);
public static bool Hook(int pid)
{
string sDllPath = System.Environment.CurrentDirectory+ "\\sendPhone.dll";
return DllHook(pid, sDllPath) ==0;
}
public static bool UnHook(int pid)
{
int val= UnHookDll(pid);
return val==0;
}
}
}

20
DongDongInJection/InDll/InDll.csproj

@ -0,0 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Platforms>AnyCPU;x86</Platforms>
</PropertyGroup>
<ItemGroup>
<None Update="DllInLine.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="sendPhone.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

32
DongDongInJection/InDll/Program.cs

@ -0,0 +1,32 @@
// See https://aka.ms/new-console-template for more information
using QYDongDongTool;
using QYDongDongTool.Unitls;
using System.Diagnostics;
public class Program
{
public static void Main()
{
var list = new CSharpAPIs().GetAllDesktopWindows();
var windows = list.Where(c => c.szClassName == "DD_JM_Workbench_DLG").ToList();
windows.ForEach(info =>
{
foreach (ProcessModule module in Process.GetProcessById(info.ProcessId).Modules)
{
//检测是否已经注入
if (module.ModuleName.Contains("sendPhone.dll"))
{
return;
}
}
//注入dll
MP.Hook((int)info.ProcessId);
});
}
}

BIN
DongDongInJection/InDll/sendPhone.dll

Binary file not shown.

BIN
dll注入器.rar

Binary file not shown.
Loading…
Cancel
Save