摘要: 写了一年多的C代码,最近又重拾C++,打算看看cpp17~cpp20新增的特性,安装了VS2022 Community版本(终于支持x64) 1.variant variant on cppreference 在Windows平台接触过COM编程的都知道,ATL提供了CComVariant实现了类似 阅读全文
posted @ 2022-09-14 23:27 宛若青空sakura 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 1.关闭强制驱动程序签名 bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS 2.开启系统测试模式 bcdedit /set testsigning on 3.安装驱动 sc create TestDriver binpath= "c:\window 阅读全文
posted @ 2020-10-05 00:44 宛若青空sakura 阅读(1844) 评论(0) 推荐(0) 编辑
摘要: x64调用约定下,不再使用stack frame pointer(如ebp) ,并且unwind info,seh table都是编译期生成。 对于动态生成的代码,如执行shellcode等,异常表中没有RUMTIME_FUNCTION,编译器无法正常展开调用栈。 因此需要手动构造动态代码的RUNT 阅读全文
posted @ 2020-09-17 00:34 宛若青空sakura 阅读(1764) 评论(0) 推荐(0) 编辑
摘要: 如果需要配合PDB符号展示栈信息,可以参考github stackwalker项目,写的很详细了 调用的windows api,直接上代码如下: 1 #include <iostream> 2 #include <vector> 3 #include <stdio.h> 4 #include <st 阅读全文
posted @ 2020-09-13 23:53 宛若青空sakura 阅读(997) 评论(0) 推荐(0) 编辑
摘要: ? ?@@masm(...) 使用MASM表达式?? ?@@c++(...) 使用c++表达式 C++表达式支持运算符:+ - * / % mod & and ^ xor l or >> << >>> == <=...hi lowby wodwo pwopoi取地址&,引用指针*,->,.,::, 阅读全文
posted @ 2020-08-14 16:09 宛若青空sakura 阅读(403) 评论(0) 推荐(0) 编辑
摘要: (内容摘选至《加密与解密第四版》) 一、通过干预导入表处理过程加载DLL1.静态修改EXE的导入表目录,新增或修改(微软进程Bound import table需要清空,)2.进程创建初期修改导入表目录(CreateProcess with suspend)3.DLL劫持,除了注册表KnownDLL 阅读全文
posted @ 2020-06-24 00:32 宛若青空sakura 阅读(791) 评论(0) 推荐(1) 编辑
摘要: windows平台支持多样化的调试功能,记录下一些常用的方法: 设置JIT调试器(程序运行崩溃后配置调试器自动接管):[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/AeDebug]"Auto"=1"Debugger" 阅读全文
posted @ 2019-03-17 16:37 宛若青空sakura 阅读(133) 评论(0) 推荐(0) 编辑
摘要: Windbg 远程调试支持 NamePipe, TCP, COM, Secure Pipe, SSL 传输模式。 使用Windbg配置远程调试时,远程机器可以运行windbg.exe 或 dbgsrv.exe作为远程调试服务器。不同的地方在于dbgsrv.exe的符号文件在本机,而windbg.ex 阅读全文
posted @ 2019-03-17 16:26 宛若青空sakura 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 1.VS Remote Dbugger VS自带的远程调试器,源码级调试,功能强大,随VS一起安装。以VS2008为例,安装目录 " C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger" 可以找 阅读全文
posted @ 2019-02-21 18:44 宛若青空sakura 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 1.cd当前执行的bat文件路径 :cd /d %~dp0 2.vs生成后事件拷贝生成的文件到指定路径:@echo offset MyOutputDll=D:\Project\Test\test.dllecho "%MyOutputDll%"if exist "%MyOutputDll%" (del 阅读全文
posted @ 2019-01-14 09:46 宛若青空sakura 阅读(310) 评论(0) 推荐(0) 编辑