草庐IT

CRT_DEBUGGER_HOOK

全部标签

c++ - 用 C 或汇编制作一个简单的 CRT0

我回到了C/C++和ASM,我想玩点火。我发现,当您将代码编译并链接到Windows的可执行文件中时,它会动态链接到某些库,这些库必须存在于预期运行该应用程序的任何计算机上。您可以指定编译器不链接它们并为此创建您自己的库。除此之外(如果我在这里所说的一切都错了,请纠正我)还有一个目标文件,它始终被编译并链接到我们应用程序的主要代码中。它是crt0.o(C运行时)文件,据我所知,它准备堆栈,获取argc和argv并调用main函数(可能还有其他东西)。我也相信这是系统在执行应用程序时调用的第一段代码。因此,我正在尝试创建一个简单的crt0.obj并将其链接到一个简单的C++对象文件int

c++ - 如何使用非托管 EasyHook 从进程中的任何线程 Hook 方法?

我在使方法Hook正常工作时遇到了一些问题。如果“我”调用被Hook的方法,我就可以让Hook工作。但是当它在进程运行期间自然发生时,它不会被钩住。我的问题可能源于这样一个事实,即我实际上是在我自己生成的线程中设置这些Hook。显然LhSetInclusiveACL()方法需要知道您要Hook的线程。好吧,这是我的问题...我真的不在乎哪些线程应用了钩子(Hook),我希望它们都被钩住。例如,假设我希望“gdi32.dll”库中的CreateICW()方法与整个进程“iexplorer.exe”Hook。不仅仅是来自线程ID号48291或其他。了解哪些线程将调用您感兴趣的Hook例程需

c++ - 是否有关于更换 MS CRT 的最新引用资料?

我用过this作为引用,但它似乎并不完整。当我设置/NODEFAULTLIB时,我收到有关缺少__except_list、__load_config_used以及其他一些显然与SEH相关的内容的链接器错误。很容易让_CxxThrowException和friend正确链接,但我不知道__except_list应该是什么,我不知道从哪里开始寻找。我同时使用MSC和IC。使用IC时,链接器报告__except_list丢失,但MSC不是这种情况。对于那些最喜欢回答“为什么?”的人来说:这是因为我想知道它是如何工作的,而且我厌倦了无所事事地测试应用程序,一开始就毫无理由地提交300kb。

C++ Hook 我自己的程序函数

所以我想分析我的应用程序,我特别想记录从程序开始到程序内部调用的每个函数(忽略DLL中的函数)进入和退出的时间,即我想要一个简单的表看起来像这样:THREAD_IDFUNCTION_ADDRESSTIMEEVENT_TYPE55200xFF4353600ENTERED55200xFF435ED325ENTERED55200xFF43355040ENTERED55200xFF43355050EXITED55200xFF43355060ENTERED55200xFF43355070EXITED55200xFF435ED382EXITED55200xFF43536090EXITED对于这样一

c++ - 我如何确定拥有多个 VC++ CRT 状态是否对我的应用程序有问题?

ThisMSDNarticle说如果我的应用程序多次加载VC++运行时,因为它或它所依赖的某些DLL静态链接到VC++运行时,那么应用程序将有多个CRT状态,这可能会导致未定义的行为。p>我该如何确定这对我来说是否是个问题?例如inthisMSDNarticle提供了几个示例,基本上说明由C++运行时维护的对象(例如文件句柄)不应跨DLL边界传递。如果我希望我的项目静态链接到VC++运行时,需要检查的事项列表到底是什么? 最佳答案 只要您不做某些事情,拥有多个CRT拷贝是可以的...:CRT的每个拷贝都将管理自己的堆。如果您在模块A

c++ - 这个 "CRT not initialized"错误是怎么回事?

我在VisualStudio2012Express(当然是桌面版)中创建了一个空的C++项目,并添加了一些随机的基本代码:#include#includetypedefstructexamplestruct{unsignedcharnum1;unsignedshortnum2;unsignedlongnum3;unsignedlonglongnum4;}EXAMPLESTRUCT;voidexamplefunction(unsignedlong*num,intnum2){*num+=num2;return;}intmain(intnArgs,char**pszArgs){EXAMPLE

git hook 自动设置作者

问题背景在日常版本控制操作中,时常会遇到因混淆不同场景下的身份信息而导致的邮件地址误用问题,例如,在提交企业内部项目时意外使用了个人邮箱地址,或是在向GitHub等公共平台提交代码时采用了公司专属邮箱。为解决此类问题,期望实现一种自动化机制,使得Git在执行提交操作时能根据目标远程仓库的域名智能切换相应的邮箱配置,确保与项目及环境相匹配的身份标识得以正确运用。实现方案认识GitHooksGitHook是Git仓库中的一组脚本,它们允许你在特定的Git事件发生时执行自定义操作。这些脚本放置在.git/hooks目录下,并且每个脚本对应一个特定的Git生命周期事件。以下是一些常见的GitHook类

c++ - wxWidgets 的 EVT_CHAR_HOOK 有什么作用?

我正在维护一个wxWidgetsC++应用程序,它使用EVT_CHAR_HOOK来捕获高级窗口中的关键事件。我找不到关于此事件的任何真实文档,但我可以推测它以某种优先于“标准”键事件的方式拦截键事件。我刚刚发现的一件令人不安的事情是,如果此Hook就位,则可能已定义的任何快捷键将不再触发它们的事件,即使事件处理程序在事件上调用Skip()也是如此。我在谷歌上搜索时也看到一些帖子似乎暗示EVT_CHAR_HOOK可能并非在所有平台上都受支持。这是真的吗?我应该使用它吗? 最佳答案 我刚刚查看了src/gtk/window.cpp并找到

c++ - 使用 C++ Hook GetTickCount

我不太擅长C++,更擅长C#和PHP。我被分配了一个项目,要求我使用GetTickCount并挂接到应用程序。我需要一些帮助,因为某些原因它没有按计划工作......这是Hook的代码,我知道它有效,因为我以前在项目中使用过它。我唯一不太确定的是它的GetTickCount部分。我尝试了GetTickCount64,认为这是解决我的问题的方法(它并没有使我注入(inject)的内容崩溃),但发现它根本不起作用,所以它没有崩溃boolAPIENTRYDllMain(HINSTANCEhDll,DWORDdwReason,LPVOIDlpReserved){switch(dwReason)

c++ - Firefox pr_write 钩子(Hook)。 dll 注入(inject),Windows 钩子(Hook)

问题是包含PR_Write()的DLL调用的不是npsr4.dll,而是nss3.dll和Hook无法从不存在的库中找到GetProcAddress()。我正在尝试创建FirefoxHook,它从PR_Write()Firefox方法(它位于nspr4.dll中)收集数据。我在谷歌上搜索了很多,并尝试了很多方法来做到这一点,但不幸的是,当我注入(inject)钩子(Hook)时,Firefox崩溃了。首先,我尝试不使用DLL,使用这个方法http://redkiing.wordpress.com/2012/04/30/firefox-formgrabber-iii-code-injec