x86_64汇编学习记述一

x86_64汇编学习记述一

数据部分 数据部分用于声明常量。 该数据在运行时不会改变。 代码部分 文本部分用于代码。 该部分必须以声明 global _start 开始,它告诉内核程序执行的开始位置。 注释 hello,world 前面两行定义了数据,并在其中放置了具有hello, world值的msg常量...

x86_64汇编学习记述二

x86_64汇编学习记述二 2

大小端 可以将内存想象为一个大数组。它包含字节。 每个地址存储内存“数组”的一个元素。每个元素都是一个字节。 例如我们有 4 个字节:AA 56 AB FF 小端字节序 低地址存低位字节 大段字节序 高地址存低位字节 汇编程序组成 data 用于声明初始化数据或常量 bss 用于...

Windows线程同步相关

Windows线程同步相关

bingliaolong Windows 1年前 21 0

用户模式同步 Interlocked 系列函数 原理 通过 CPU 原子指令(如 LOCK XCHG)直接操作内存,无需进入内核态 场景 简单计数器(如引用计数) 无锁数据结构(如无锁队列) 特点 性能极高(无内核切换) 仅支持单个变量的原子操作,无法实现复杂同步 临界区(Cri...

Windows Dll自卸载相关

Windows Dll自卸载相关

bingliaolong Windows 2年前 21 0

简述 在Windows中,DLL(动态链接库)可以请求操作系统卸载自己,但这样做是有风险的 要确保在DLL被卸载后不再访问任何DLL内部的资源或函数 FreeLibrary 如果在test.dll的某个函数里面,获取到test.dll的句柄后,调用FreeLibrary释放了te...

Windows 核心编程 _ 内核对象一

Windows 核心编程 _ 内核对象一

bingliaolong Windows 5年前 19 0

内核对象 系统会创建和处理的几种内核对象 访问令牌对象(access token) 事件对象 文件对象 文件映射对象 I/O完成端口对象 作业对象 邮件槽对象(mailslot) 互斥量对象 管道对象 进程对象 信号量对象 线程对象 可等待的计时器对象 线程池工厂对象 每个内核对...

Windows 核心编程 _ 内核对象:线程同步三

Windows 核心编程 _ 内核对象:线程同步三

bingliaolong Windows 4年前 19 0

遗弃问题 互斥量概述 互斥量与所有其他内核对象有所不同,这是因为它们具有“线程所有权”的概念。 换句话说,互斥量会记住自己是哪个线程等待成功的。 互斥量的这种特殊性,使得它即使在未触发的状态下,也能为线程所获得。 什么是遗弃问题 当线程调用ReleaseMutex的时候,函数会检...

Bkwin一

Bkwin一 8

bingliaolong Bkwin 4年前 19 0

源码实现 模板类函数指针 命名空间宏定义 与或判断选项开关 判断Windows安装某款字体 这里的实现是通过判断注册表来判断是否安装了某款字体。 应用 lbtoast_menu.h lbtoast_menu.cpp 弹出窗口 关于定时器 监听不到想监听的消息 需要在对应的消息映射...

Windows调试相关简记

Windows调试相关简记 6

bingliaolong Windows 4年前 18 0

Sysinternals工具包 下载地址 VS VS远程调试 在VS安装的目录下,从Remote Debugger这个文件夹中,拿到x86或x64 在待调试环境中,管理员权限打开msvsmon.exe 无身份验证,允许任何用户进行调试 在调试环境中: 附加到进程 远程 选择连接模...

Windows核心编程_必备知识

Windows核心编程_必备知识

bingliaolong Windows 5年前 18 0

错误处理 调用windows函数时,它会先验证我们传给它的参数,然后再开始执行任务。如果传入的参数无效,或者由于其他原因导致操作无法执行,则函数的返回值将指出函数因为某些原因失败了。 在内部,windows函数检测到错误了,它会使用一种名为"线程本地存储区"的...

扫一扫二维码分享