Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace DragDrop_DLL
- {
- public class Main : EasyHook.IEntryPoint
- {
- DragDrop_Console.RemoteMon Interface;
- public LocalHook dragDropHook;
- public Main(RemoteHooking.IContext InContext, String InChannelName)
- {
- try
- {
- Interface = RemoteHooking.IpcConnectClient<DragDrop_Console.RemoteMon>(InChannelName);
- File.AppendAllText(@"F:DragDropLog.txt", "Main : Channel Name passed" + Environment.NewLine);
- }
- catch (Exception ex)
- {
- Interface.ErrorHandle(ex);
- File.AppendAllText(@"F:DragDropLog.txt", "Main Exception :" + ex.ToString() + Environment.NewLine);
- }
- }
- public void Run(RemoteHooking.IContext InContext, String InChannelName)
- {
- try
- {
- dragDropHook = LocalHook.Create(LocalHook.GetProcAddress("Ole32.dll", "DoDragDrop"), new DragDropDelegate(DoDragDropHook), null);
- dragDropHook.ThreadACL.SetInclusiveACL(new Int32[] { 0 });
- //Also tried with setExclusiveACL
- //dragDropHook.ThreadACL.SetExclusiveACL(new Int32[] { 0 });
- File.AppendAllText(@"F:DragDropLog.txt", "Run : LocalHook Created" + Environment.NewLine);
- }
- catch (Exception ex)
- {
- Interface.ErrorHandle(ex);
- File.AppendAllText(@"F:DragDropLog.txt", "Run Exception :" + ex.ToString() + Environment.NewLine);
- return;
- }
- Interface.IsInstalled(RemoteHooking.GetCurrentProcessId());
- RemoteHooking.WakeUpProcess();
- while (true)
- {
- Thread.Sleep(1000);
- }
- }
- [DllImport("Ole32.dll", CharSet = CharSet.Unicode, SetLastError = true, CallingConvention = CallingConvention.StdCall)]
- static extern int DoDragDrop(
- IDataObject pDataObj,
- IDropSource pDropSource,
- UInt32 dwOKEffects,
- UInt32[] pdwEffect);
- [UnmanagedFunctionPointer(CallingConvention.StdCall, CharSet = CharSet.Ansi, SetLastError = true)]
- [return: MarshalAs(UnmanagedType.I4)]
- delegate int DragDropDelegate(
- IDataObject pDataObj,
- IDropSource pDropSource,
- UInt32 dwOKEffects,
- UInt32[] pdwEffect);
- static int DoDragDropHook(
- IDataObject pDataObj,
- IDropSource pDropSource,
- UInt32 dwOKEffects,
- UInt32[] pdwEffect)
- {
- try
- {
- ((Main)HookRuntimeInfo.Callback).Interface.GotDragFileObject(pDataObj);
- File.AppendAllText(@"F:DragDropLog.txt", "DoDragDrop Hit :" + pDataObj.ToString() + Environment.NewLine);
- }
- catch (Exception ex)
- {
- File.AppendAllText(@"F:DragDropLog.txt", "DoDragDropHook Exception :" + ex.ToString() + Environment.NewLine);
- }
- return DoDragDrop(pDataObj, pDropSource, dwOKEffects, pdwEffect);
- }
- }
- internal interface IDropSource
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement