- 博客(30)
- 资源 (5)
- 收藏
- 关注
原创 逆向-下字符串查找的条件断点
注意由于下脚本断点速度影响较大,文件访问很多,导致系统很慢,可以在console程序访问该文件前,使用 system("pause");暂停,然后再下断点。或者下了断点先禁用,等运行console程序停下来,再使能断点。为了跟踪console程序在访问某个文件时失败的问题,在内核中下了断点,但是内核中文件部分调用太频繁了,无法等到自己的文件。想要在FileName是指定文件时停下来,例如FileName是c:\temp\file.txt的时候。下断点在这里,断点到了之后,查看汇编。
2024-10-01 19:19:37
482
原创 微软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
1559
原创 sandoxie获取系统服务调用地址
函数Hook_Find_ZwRoutine从ZwWaitForSingleObject API开始找到ZwUnloadKey + 0x140的二进制位置,根据指令查找服务号等于ServiceNum的地址,以下都是根据代码规律硬编码查找服务号。//从函数开头开始分析,直到找到INST_SYSCALL指令,或者找到jmp,call等则递归调用Hook_FindSyscall2。虽然不使用用nt函数地址,但是需要根据nt函数地址是否正确来决定是否获取ZwSerivce的地址。//索引处,得到相对位置。
2024-03-23 12:22:40
857
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
1735
原创 程序异常的堆栈查看
原先的上下文被保存,直接切换成了异常的上下文。可以看到最后调用了0地址,导致崩溃,查看实际代码,是加载dll,并后去地址func,结果func是空导致崩溃。这里看到的是异常发生后的堆栈,异常的处理,是一个异常处理的上下文。当程序异常时,使用vs查看可能会看不到正确的堆栈,例如。
2023-04-18 10:40:11
772
原创 windbg脚本编写和调试
3.CreateFileW时如何查找a.txt并停下,同时未命中时输出全部文件名的脚本,64位。写一个脚本,例如写一个脚本1.txt,放在c:\tmp下。假设第一个指针是0x0a4db828。4.如何遍历指针->指针->指针。直接在windbg命令行里运行。2.如何下断点的时候执行脚本。
2023-04-11 19:39:38
816
原创 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
3026
原创 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
173
原创 微软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
182
原创 强制加载一个不匹配的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
3484
原创 在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
260
原创 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
238
原创 Sandboxie注入过程
沙箱进程启动后驱动获取了进程启动信息,通知到svc进程。svc进程执行Inject_low。首先在目标进程中申请一个空间,地址remote_addr,长度lowdata的长度,将LowData放进去。这个数据是一个dll,工程是LowLevel,作为资源放在svc中,在注入前已经释放出来。申请的空间中的数据如图entry.asm。申请数据分成两部分,一部分是.text执行代码,一部分是.zzzz。其中.zzzz包含两个指针,一个是_Start,指向了运行代码的位置,这个很关键,这是程..
2021-08-12 16:57:23
889
原创 USB3.0双机调试常见问题
具体配置方式请参考:https://blog.youkuaiyun.com/angelxf/article/details/101520362常见问题:1.host 主机无法连接,提示设备无法正常使用。如下图,会出现usb debug connection device不正常的情况。可以将该设备删除再刷新一下,通常可以好使。卸载后再刷新:2.驱动无法正常安装。不知道为什么,host主机的驱动不是正常签名的,所以无法安装。可以使用 “强制禁止驱动签名”的方法启动host主机,然后.
2021-08-12 16:56:53
697
原创 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
307
原创 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
458
原创 Sandboxie注入库对进程外资源的安全访问
有些情况下需要让注入的库和外部进程或驱动通信,很多情况下可以直接让动态库通过rpc或打开设备进行通信,但是这也就意味着其他的任何程序只要符合该接口标准都可以通过这些接口进行通信。为了让注入的动态库和外部进程和驱动安全通信,Sandboxie在服务进程中打开设设备,并复制句柄,将句柄赋权给注入进程。这样其他的进程就可以访问设备了。打开设备: RtlInitUnicodeString(&uni, API_DEVICE_NAME); InitializeObjectAttrib...
2021-02-08 09:22:15
596
原创 VS2019支持xp
安装的时候选择如下,注意第一个框C++桌面程序的 “MSVC141 windows xp支持”不要选择,要选择下面的,单个组件的
2020-12-18 16:31:48
3848
2
原创 编译错误 Error: The operation could not be completed. 未指定的错误
服务器上后台命令行编译VC sln解决方案,一个工程报“Error: The operation could not be completed. 未指定的错误 ”。再服务器上打开sln,把出错的工程卸载,然后重新加载,然后再编译问题消失。再次记录,希望对遇到这种问题的同行有用。...
2020-12-15 17:01:30
1387
1
原创 使用Visual studio 2015检查内存泄露
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计
2020-10-22 15:11:47
1784
原创 计算机中丢失VComp140.dll
计算机中丢失VComp140.dll安装TIM前安装TIM后,多了vcomp100.dll、vcomp140.dll、vcruntime140.dll。如果有其他软件安装时也安装了这几个文件,但是卸载的时候,却把这个文件给删除了,就会导致如上的问题。解决方法很简单,把TIM重新安装一下。...
2020-07-26 11:55:41
4543
原创 如何知道程序是否被挂钩
当程序被挂钩,可以通过对比二进制和加载空间的数据进行对比,可以得知哪些地方被修改了。使用工具检查上图程序下了5个断点,可以看到断点的地方的字节变为了CC。
2020-07-25 16:29:37
587
原创 如何检查dll,exe,sys等二进制的编译时间、子系统版本、CPU类型
原先还在网上搜索PE查看工具,后来仔细看了下depends,已经带了这些信息,之前一直用来看依赖关系,导出等,原来还有这些附属的信息可以查看。
2020-07-25 16:29:09
1118
原创 为所有用户,添加系统启动时高权限启动的进程
第一部分,添加高权限启动的进程 // 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
449
原创 各种加密算法的速度对比
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
19464
5
原创 编译链接正常,但是应用程序未运行到自己的代码就莫名奇妙崩溃!
经查发现是如下的代码引起Util.h#pragma onceclass CUtil{ static CString m_appPath;public: CUtil(void); ~CUtil(void); static CString GetAppPath
2011-07-25 15:06:39
497
转载 linux 多线程中定时器的使用
<br />在开发linux mjpg-streamer程序的时候,使用signal,奇怪的是程序竟然退出了。后来读了曹老师的文章,才解决了这个问题。<br />所以收录到自己的博客里。呵呵多线程中定时器的使用418651006192010-10-14 19:47:29 ——曹忠明 华清远见嵌入式学院讲师<br /> <br /> 不管是在进程还是线程,很多时
2011-01-08 15:29:00
3291
原创 总结一点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
6598
原创 X64移植编译常见问题
X64常见问题: 1.编译exe文件,libcmt.lib(wincrt0.obj) : error LNK2019:无法解析的外部符号WinMain,该符号在函数__tmainCRTStartup中被引用通常是因为链接的库不对,在项目配置中,找到常规配置,其中有关于MFC的使用,选择“在共享DLL中使用MFC”或者“在静态库中使用MFC” 2.无法链接…__cde
2010-05-06 18:23:00
1352
IsCallerInLocalsystem.txt
2020-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人