随笔分类 - C/C++
摘要:简介 有时候我们拿到了函数的调用地址,但是需要在call之前做一些判断或者预处理,这时我们就需要封装一个自定义的函数call模板。 代码 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstdint> #incl
阅读全文
摘要:代码 #!/usr/bin/env python # encoding: utf-8 import os import binascii from datetime import datetime, timezone colnum_per_row = 16 file_path = 'demo.sys
阅读全文
摘要:前言 Boost 版本: boost_1_70_0 编译器选择: MSVC 14.41(对应 VS2022) 主要参考文章: https://blog.csdn.net/ljjjjjjjjjjj/article/details/122312270 详细步骤 1. 确认 MSVC 编译器版本与路径 使
阅读全文
摘要:代码 // 单精度转半精度 unsigned short cpu_float2half(float f) { unsigned short ret; unsigned x = *((int*)(void*)(&f)); unsigned u = (x & 0x7fffffff), remainder
阅读全文
摘要:通用工程模板 1. 输出目录:$(ProjectDir)..\output\$(ProjectName)\$(Platform)_$(Configuration)\ 2. 中间目录:$(ProjectDir)..\output\$(ProjectName)\$(Platform)_$(Configu
阅读全文
摘要:正文 将字符串转换成等效int数组 std::vector<uint32_t> convert_wstring_to_int_array(const wchar_t* str) { std::vector<uint32_t> vec; for (size_t i = 0; i < wcslen(st
阅读全文
摘要:前言 本文旨在记录在较新版本的 Visual Studio(2019)中编译 Luabind 这个较为陈旧的 C++/Lua 绑定库时,所需进行的代码兼容性修改与完整流程。由于该库已停止维护,网上参考资料大多基于旧版开发环境,因此将实际可行的步骤整理如下,供参考。 请注意: Luabind 依赖大量
阅读全文
摘要:前言 本文记录在 Windows 平台下,使用 Visual Studio 2019 编译 Google V8 JavaScript 引擎的完整流程。由于项目需要兼容 Windows 7 系统,因此选择了较早的稳定分支 chromium-5414 (10.9-lkgr) 进行编译。 说明 除参考本文
阅读全文
摘要:Visual Studio 2010 授权修改
阅读全文
摘要:下列提出两种获取对象名的方式 通过_OBJECT_TYPE::Name获取对象名称,通过_OBJECT_TYPE::Index获取对象索引; 通过NtQueryObject的方式获取,r0与r3通用,代码如下: #include <cstdio> #include <cstdlib> #includ
阅读全文
摘要:多核处理器同步函数KiIpiGenericCall函数在XP SP3下的寻址方式
阅读全文
摘要:Clang-Format 常用命令 @echo off set CLANG_FORMAT_PATH=..\tools\clang-format\ %CLANG_FORMAT_PATH%clang-format.exe --assume-filename=.clang-format -i src/cl
阅读全文
摘要:简介 此文转载自:https://www.cnblogs.com/gwsbhqt/p/5092390.html 代码
阅读全文
摘要:简介 很多人喜欢在自己写的命令行工具开头加上软件名字的Ascii插画LOGO,这在Python下利用多行字符串还是很容易实现的,但是在C语言下会有很多的复杂转义的问题,而且格式不容易控制,所以笔者写了一个简单的Python脚本来将Python下的多行字符串转换成C语言可用的字符数组,亲测有效~ 代码
阅读全文
摘要:简介 在之前的文章中曾说过利用 CreateRemoteThread 函数进行远线程注入是最经典的一种方式。但是这种方式却无法成功注入系统进程,因为系统进程是处在SESSION0高权限级别的会话层,用户进程在执行CreateRemoteThread函数时会失败。所以经过前辈们的研究发现,Create
阅读全文
摘要:简介 在之前的文章中笔者曾经为大家介绍过使用 CreateRemoteThread 函数来实现远程线程注入( "链接" ),毫无疑问最经典的注入方式,但也因为如此,这种方式到今天已经几乎被所有安全软件所防御。所以今天笔者要介绍的是一种相对比较“另类”的方式,被称作 “APC注入” 。APC(Asyn
阅读全文
摘要:简介 我们经常看见有一些程序开始执行时会释放一些文件,以便于后续操作。例如一些病毒为了便于传播和隐藏,经常把一些需要用的动态库或是驱动文件打包进一个可执行文件中,再由需要使用的时候,再临时释放和加载。接下来笔者就将演示如何将DLL打包进文件,并实现动态释放和加载。 实现流程 开发工具:Visual
阅读全文
摘要:简介 信号量是维护0到指定最大值之间的同步对象。信号量状态在其计数大于0时是有信号的,而其计数是0时是无信号的。信号量对象在控制上可以支持有限数量共享资源的访问,可以用于线程同步,预防死锁等领域。 信号量的特点和用途可用下列几句话定义: (1)如果当前资源的数量大于0,则信号量有效; (2)如果当前
阅读全文
摘要:简介 Windows互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问,在线程同步与保证程序单体运行上都有相当大的用处。 代码样例 //////////////////////////////// // // FileName
阅读全文
摘要:简介 在我们编写程序的时候,经常会注意到的一个问题就是如何能够让程序只运行一个实例,确保不会让同一个程序多次运行,从而产生诸多相同进程,给我们的带来不便呢?那么常用的有以下四种方法,第一种方法是通过 扫描进程列表比对进程名 来检测,第二种方法是通过 枚举程序窗口 的方式,第三种方法是采用 共享全局变
阅读全文

浙公网安备 33010602011771号