Exemplo n.º 1
0
        /// <summary>
        /// 杀死函数,让函数不执行任何动作
        /// </summary>
        /// <param name="moduleName">模块名</param>
        /// <param name="apiName">函数名</param>
        /// <returns></returns>
        public static bool Kill(string moduleName, string apiName)
        {
            if (string.IsNullOrEmpty(moduleName) || string.IsNullOrEmpty(apiName))
            {
                throw new ArgumentNullException();
            }

            return(Kill(Module32.GetProcAddressInternal(moduleName, apiName)));
        }
Exemplo n.º 2
0
        private void RefreshFunctionList()
        {
            ListViewItem listViewItem;

            lvwFunctions.Items.Clear();
            Module32.EnumFunctions(_processId, _moduleHandle, (IntPtr pFunction, string functionName, short ordinal) => {
                listViewItem = new ListViewItem(functionName);
                listViewItem.SubItems.Add("0x" + pFunction.ToString(Cache.Is64BitProcess ? "X16" : "X8"));
                listViewItem.SubItems.Add(ordinal.ToString());
                lvwFunctions.Items.Add(listViewItem);
                return(true);
            });
            lvwFunctions.AutoResizeColumns(false);
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            var list = (new int[0]).Select(dummy => new { moduleHandle = default(IntPtr), moduleName = default(string), pFunction = default(IntPtr), functionName = default(string), ordinal = default(short) }).ToList();

            Module32.EnumModules(Process32.GetCurrentProcessId(), (IntPtr moduleHandle, string moduleName, string filePath) =>
            {
                list.Clear();
                Module32.EnumFunctions(Process32.GetCurrentProcessId(), moduleHandle, (IntPtr pFunction, string functionName, short ordinal) =>
                {
                    list.Add(new { moduleHandle, moduleName, pFunction, functionName, ordinal });
                    return(true);
                });
                list = list.OrderBy(item => item.moduleName).ToList();
                list.ForEach(item => Console.WriteLine($"MH:{item.moduleHandle.ToString("X16")} MN:{item.moduleName} PF:{item.pFunction.ToString("X16")} FN:{item.functionName} OD:{item.ordinal.ToString()}"));
                return(true);
            });
            Console.ReadKey();
        }