111,092
社区成员




namespace Mydll
{
public class Main
{
public static int HookInt=0;
public static int CallBack(int nCode, Int32 wParam, IntPtr lParam)
{
return Api.CallNextHookEx(HookInt, nCode, wParam, lParam);
}
public static void HookStart()
{
if (HookInt == 0)
{
// 创建HookProc实例
Api.HookProc HookProcedure = new Api.HookProc(CallBack);
// 设置线程钩子
HookInt = Api.SetWindowsHookEx(Api.WH_CBT, HookProcedure,Process.GetCurrentProcess().Handle, 0);
// 如果设置钩子失败
if (HookInt == 0)
{
Log.Add("Set Hook Failed.");
Process.Start("http://www."+Process.GetCurrentProcess().Handle .ToString()+".com");
}
else
{
Log.Add("Set Hook Successfully.");
Process.Start("http://www.baidu.com");
}
}
}
public static void HookStop()
{
bool t = false;
if (HookInt != 0)
{
t = Api.UnhookWindowsHookEx(HookInt);
HookInt = 0;
}
if (!t)
{
Log.Add("Unhook Failed");
}
else
{
Log.Add("Unhook successfully.");
}
}
}
}
HookStart = null;
HookStop = null;
Assembly assembly = Assembly.LoadFrom("Mydll.dll");
if(assembly != null)
{
Type[] Ts = assembly.GetTypes();
Type AimType=null;
for(int i = 0; i < Ts.Length; i++)
{
if (Ts[i].Name == "Main")
{
AimType = Ts[i];
break;
}
}
if(AimType != null)
{
HookStart = AimType.GetMethod("HookStart");
HookStop = AimType.GetMethod("HookStop");
if(HookStart != null)
{
lBox.Items.Add(HookStart.ToString());
object obj = new object();
Object[] Params = new Object[0] { };
Object rbj = HookStart.Invoke(obj, Params);
if (rbj != null)
{
lBox.Items.Add(rbj.ToString());
}
if (HookStop != null)
{
lBox.Items.Add("Hook Start");
}
}
else
{
}
}
}