自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (5)
  • 收藏
  • 关注

原创 微软detours代码借鉴点备注

得到主程序的入口,方法获取module的基地址,此处是PIMAGE_DOS_HEADER,根据这个信息查找PIMAGE_NT_HEADERS,从里面获取entrypoint的地址,一个例外是如果存在PDETOUR_CLR_HEADER,则获取模块MSCOREE.DLL,返回该dll的函数_CorExeMain。根据给出的指令地址,找出一个可以放置detours tramplines的位置,该函数解析了目标函数的第一个指令,如果是相对跳转,则根据相对跳转的指令的位置,重新计算tramplines的位置。

2024-04-05 21:46:32 1159

原创 sandoxie获取系统服务调用地址

函数Hook_Find_ZwRoutine从ZwWaitForSingleObject API开始找到ZwUnloadKey + 0x140的二进制位置,根据指令查找服务号等于ServiceNum的地址,以下都是根据代码规律硬编码查找服务号。//从函数开头开始分析,直到找到INST_SYSCALL指令,或者找到jmp,call等则递归调用Hook_FindSyscall2。虽然不使用用nt函数地址,但是需要根据nt函数地址是否正确来决定是否获取ZwSerivce的地址。//索引处,得到相对位置。

2024-03-23 12:22:40 750 1

原创 VS2019工程设置WindowsKernelModeDriver10.0工程指向的路径错误,指向VS2015的问题

即使vs2019卸载重新安装也解决不了该问题,可能是windows kits没有跟随卸载?猜测原因可能是vs2019开始安装的时候会安装windows kits,安装windows kits的时候会自动运行WDK.vsix,之后vs2019卸载重装不会重新安装kits,所以不会自动帮助安装这个功能。VS2019工程设置WindowsKernelModeDriver10.0,工程include指向的路径错误,不是指向VS2019,而是指向了VS2015的include路径。

2023-09-08 14:52:31 856

原创 程序异常的堆栈查看

原先的上下文被保存,直接切换成了异常的上下文。可以看到最后调用了0地址,导致崩溃,查看实际代码,是加载dll,并后去地址func,结果func是空导致崩溃。这里看到的是异常发生后的堆栈,异常的处理,是一个异常处理的上下文。当程序异常时,使用vs查看可能会看不到正确的堆栈,例如。

2023-04-18 10:40:11 498

原创 windbg脚本编写和调试

3.CreateFileW时如何查找a.txt并停下,同时未命中时输出全部文件名的脚本,64位。写一个脚本,例如写一个脚本1.txt,放在c:\tmp下。假设第一个指针是0x0a4db828。4.如何遍历指针->指针->指针。直接在windbg命令行里运行。2.如何下断点的时候执行脚本。

2023-04-11 19:39:38 596

原创 centos 模拟路由器功能实现内网和外网的联通

centos 路由设置和windows增加路由

2022-12-07 14:52:15 575

原创 error MSB3073 报错原因

1>*** PARSE FAILURE ***1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(279,5): error MSB3073: The command "@echo off1>C:\Program Files (x86)\Microsoft Visual Studio\2019\P.

2022-04-25 20:59:38 2723

原创 COM connect point server建立步骤

VS2019,新建ATL project.名字ATLFindServer在解决方案资源管理器里右键ATLFindServer工程,添加新项目选择ATL 简单对象ATLFindObject,创建在启动里面,勾选“连接点”在类视图里,接口IATLFindObject右键添加方法FindObject,参数BSTR name,如下图:在ATLFindServer.idl中IATLFIndObjectEvents中添加NotifyFindObject函数然后再_IATL

2021-09-30 16:39:18 120

原创 微软ATL样例指导

按照微软的例子,发现com的dll无法再ie中显示Adding a Control (ATL Tutorial, Part 2) | Microsoft Docsy可以自己做一个dlg程序,再dlg中insert activex,选择web browser然后打开rc文件,可以看到IDD_TESTPOLYCTL_DIALOG DIALOGEX 0, 0, 320, 200STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_

2021-09-30 10:15:05 147

原创 强制加载一个不匹配的pdb

windbg加载符号表,有时候遇到符号表不对应的情况。有时候你是因为重新编译了一下,代码并没有修改。此时由于pdb变化,而之前的调试的pdb没有保留,可能不得不重新替换文件进行重新调试。大可不必。可以使用如下的命令为模块加载一个符号不对应的模块:/iIgnores a mismatch in the .pdb file versions. (If you do not include this parameter, the debugger does not load mismatched sym

2021-09-04 19:15:06 2565

原创 在dump中查找lowlevel中的数据

在dump中,查找entry.asm的二进制字节_RtlFindActivationContextSectionString的二进制:0:000> s 0012ff40 L2000000 8B 46 20 8A 56 2C00000000`00500cd8 8b 46 20 8a 56 2c 88 10-8b 56 2d 89 50 01 b9 10 .F .V,...V-.P...0:000> u 00500cd8 00000000`00500cd8 8b4620 ...

2021-08-18 18:20:15 217

原创 Sandboxie注入notepad.exe进程空间中的变化

m_LdrInitializeThunk = 0x000000007775c320正常的代码000000007775C320 push rbx 000000007775C322 sub rsp,20h 000000007775C326 mov rbx,rcx 000000007775C329 call 000000007775C350 000000007775C32E mov dl,1 000000...

2021-08-12 17:01:20 182

原创 Sandboxie注入过程

沙箱进程启动后驱动获取了进程启动信息,通知到svc进程。svc进程执行Inject_low。首先在目标进程中申请一个空间,地址remote_addr,长度lowdata的长度,将LowData放进去。这个数据是一个dll,工程是LowLevel,作为资源放在svc中,在注入前已经释放出来。申请的空间中的数据如图entry.asm。申请数据分成两部分,一部分是.text执行代码,一部分是.zzzz。其中.zzzz包含两个指针,一个是_Start,指向了运行代码的位置,这个很关键,这是程..

2021-08-12 16:57:23 694

原创 USB3.0双机调试常见问题

具体配置方式请参考:https://blog.csdn.net/angelxf/article/details/101520362常见问题:1.host 主机无法连接,提示设备无法正常使用。如下图,会出现usb debug connection device不正常的情况。可以将该设备删除再刷新一下,通常可以好使。卸载后再刷新:2.驱动无法正常安装。不知道为什么,host主机的驱动不是正常签名的,所以无法安装。可以使用 “强制禁止驱动签名”的方法启动host主机,然后.

2021-08-12 16:56:53 562

原创 Sandboxie shellcode lowlevel加载pdb进行调试

首先查看LdrInitializeThunk的指令,查看之前的文章(),看到如下的信息:001>u 0x000000007775c320ntdll!LdrInitializeThunk:00000000`7775c320 e90b47a088 jmp 00000000`00160a30这个是跳转到entry.asm001>u00000000`00160a3000000000`00160a30 4883ec28 sub rsp,28h...

2021-08-12 16:56:09 235

原创 Sandboxie按需HOOK

很多hook,为了挂载一些函数会直接load相关的dll,然后加载。或者因为依赖关系的原因相应的dll会被加载,这有时候会导致有些进程加载一些不必要的dll。我们看Sandboxie的处理。Sandboxie对在初始化的时候挂载了LdrQueryImageFileExecutionOptions进程加载dll完成后会调用该函数,此时可根据当前加载的dll的信息,对该dll相关的函数进行hook。_FX void Ldr_MyDllCallbackA(const CHAR *ImageN

2021-02-11 11:17:02 365

原创 Sandboxie注入库对进程外资源的安全访问

有些情况下需要让注入的库和外部进程或驱动通信,很多情况下可以直接让动态库通过rpc或打开设备进行通信,但是这也就意味着其他的任何程序只要符合该接口标准都可以通过这些接口进行通信。为了让注入的动态库和外部进程和驱动安全通信,Sandboxie在服务进程中打开设设备,并复制句柄,将句柄赋权给注入进程。这样其他的进程就可以访问设备了。打开设备: RtlInitUnicodeString(&uni, API_DEVICE_NAME); InitializeObjectAttrib...

2021-02-08 09:22:15 464

原创 VS2019支持xp

安装的时候选择如下,注意第一个框C++桌面程序的 “MSVC141 windows xp支持”不要选择,要选择下面的,单个组件的

2020-12-18 16:31:48 3489 2

原创 编译错误 Error: The operation could not be completed. 未指定的错误

服务器上后台命令行编译VC sln解决方案,一个工程报“Error: The operation could not be completed. 未指定的错误 ”。再服务器上打开sln,把出错的工程卸载,然后重新加载,然后再编译问题消失。再次记录,希望对遇到这种问题的同行有用。...

2020-12-15 17:01:30 989 1

原创 使用Visual studio 2015检查内存泄露

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计

2020-10-22 15:11:47 1416

原创 计算机中丢失VComp140.dll

计算机中丢失VComp140.dll安装TIM前安装TIM后,多了vcomp100.dll、vcomp140.dll、vcruntime140.dll。如果有其他软件安装时也安装了这几个文件,但是卸载的时候,却把这个文件给删除了,就会导致如上的问题。解决方法很简单,把TIM重新安装一下。...

2020-07-26 11:55:41 4479

原创 如何知道程序是否被挂钩

当程序被挂钩,可以通过对比二进制和加载空间的数据进行对比,可以得知哪些地方被修改了。使用工具检查上图程序下了5个断点,可以看到断点的地方的字节变为了CC。

2020-07-25 16:29:37 508

原创 如何检查dll,exe,sys等二进制的编译时间、子系统版本、CPU类型

原先还在网上搜索PE查看工具,后来仔细看了下depends,已经带了这些信息,之前一直用来看依赖关系,导出等,原来还有这些附属的信息可以查看。

2020-07-25 16:29:09 900

原创 为所有用户,添加系统启动时高权限启动的进程

第一部分,添加高权限启动的进程 // Set up principal information: hr = pPrincipal->put_Id(_bstr_t(L"Principal1")); //if (FAILED(hr)) //DebugPrint(L"\nCannot put the principal ID: %x", hr); hr = pPrincipal->put_LogonType(TASK_LOGON_INTERACTI...

2020-07-18 20:24:05 386

原创 各种加密算法的速度对比

cpu: Intel Core i7-4712MQ CPU 2.3GHz memory:8GBos:win7 64命令:cryptotest bAlgorithmMiB/SecondMicroseconds toSetup Key and IVAES/GCM3111.706AES/CCM1421.094

2015-11-09 10:32:00 17685 5

原创 编译链接正常,但是应用程序未运行到自己的代码就莫名奇妙崩溃!

经查发现是如下的代码引起Util.h#pragma onceclass CUtil{    static CString m_appPath;public:    CUtil(void);    ~CUtil(void);    static CString GetAppPath

2011-07-25 15:06:39 460

转载 linux 多线程中定时器的使用

<br />在开发linux mjpg-streamer程序的时候,使用signal,奇怪的是程序竟然退出了。后来读了曹老师的文章,才解决了这个问题。<br />所以收录到自己的博客里。呵呵多线程中定时器的使用418651006192010-10-14 19:47:29                                                             ——曹忠明 华清远见嵌入式学院讲师<br />         <br />        不管是在进程还是线程,很多时

2011-01-08 15:29:00 3220

原创 总结一点IDispatch error 的原因

<br />如果表名字错误:<br /> "Database Query err:IDispatch error #3127,[Microsoft][ODBC SQL Server Driver][SQL Server]对象名 'logfileop2201012' 无效。"<br /><br />插入字段超过表字段的最大长度:<br />"Database Query err:IDispatch error #3159,[Microsoft][ODBC SQL Server Driver][SQL

2010-12-23 10:01:00 6247

原创 X64移植编译常见问题

X64常见问题: 1.编译exe文件,libcmt.lib(wincrt0.obj) : error LNK2019:无法解析的外部符号WinMain,该符号在函数__tmainCRTStartup中被引用通常是因为链接的库不对,在项目配置中,找到常规配置,其中有关于MFC的使用,选择“在共享DLL中使用MFC”或者“在静态库中使用MFC” 2.无法链接…__cde

2010-05-06 18:23:00 1300

IsCallerInLocalsystem.txt

确保驱动合法的方法之一,确保向驱动发号施令的进程是localsystem进程,是一个比较好的方法。本资源提供了一个方法判断调用进程是否是localsystem进程,通过进程所在位置保证合法的进程访问驱动。

2020-06-05

可以安全摘除钩子的minhook源代码

对minhook进行改进,可以对同一函数进行多次挂钩,可以按任意顺序摘除钩子,而不影响其他钩子的运行,不影响被挂钩程序的稳定性。

2015-11-24

safely unhook,minhook

Support unhooking safely.

2015-01-21

编写个人日志的程序源代码-增加查找功能和声音提示

编写个人日志的小工具。 带有日期选择,查找和声音提示。 个人版,使用很方便

2010-03-26

编写个人日志的程序源代码

一个用来编写个人日志的程序源代码,希望大家喜欢。MFC编写。

2009-07-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除