
操作系统
guyue35
这个作者很懒,什么都没留下…
展开
-
【Windows核心编程学习笔记】远程注入DLL
远程注入DLL一、概述为了隐藏自身的进程信息,我们希望将进程作为一个合法进程的线程运行。由于系统进程间不允许直接操作资源,因而我们需要在合法进程内部创建一个线程,为其指定要执行的代码。一种简单的方式是令远程线程载入一个我们编写的DLL,通过DllMain()函数执行我们需要的代码。基本思路是将LoadLibrary()函数作为一个线程函数来调用:CreateRemoteThread()转载 2015-05-08 09:41:45 · 952 阅读 · 0 评论 -
不同运行时库/MT、/MD等编译选项,以及可能引起在不同堆中申请、释放内存的问题
1, 工程中引用lib时, 工程和lib的运行时库都要一致. 2, 工程中引用dll时(Loadlibrary()), 工程和dll的运行时库可以不同, 猜测是系统进行了转换. 我测试遇到的情况是, Load A.dll, 而A.DLL依赖B.dll, 结果win10_VS2015中提示找不到指定模块(开始还以为是路径填写错误咧), win7则提示缺少B.DLL, 看来win10和7对这方面的提示还是很不同的3, 所以最好在工程里面都是同一种运行库, 并且是同一种调试或者非调试版本, 混用的话, 容易出原创 2016-04-20 11:02:32 · 1619 阅读 · 0 评论 -
线程、线程句柄、线程ID
什么是句柄: 句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应用程序的内存需要。对象被移动意味着它的地址变化了。如果地址总是如此变化,我们该到哪里去找该对象呢?转载 2016-03-24 15:54:30 · 1456 阅读 · 1 评论 -
程序检测系统是bios引导还是uefi引导
程序检测系统是bios引导还是uefi引导百度很多资料都没有找到, 终于在谷歌上找到很多有用的资料了, 最后在微软的网站找到最有用的资料了.判断流程可以这样:1, 支持efi引导的只有win7及以上, 所以xp, 03系统就只能够bios引导2, win7,8,8.1,10等系统, 可以用下面的代码, 本质上就是GetFirmwareEnvironmentVariableA, 或者GetFirmwareType这两个api的调用原创 2015-08-24 16:29:47 · 4153 阅读 · 1 评论 -
(经典)详解WINDOWS映像劫持技术
windows映像劫持技术(IFEO)介绍以及常用解决方案_电脑软硬件应用网_国内最受关注的计算机应用解决中心 http://www.45it.com/Article/pcedu/Safety/200705/16098.htm(经典)详解WINDOWS映像劫持技术 - yxyhack's blog - 博客频道 - youkuaiyun.com http://blog.csdn.n转载 2015-11-27 18:13:46 · 5542 阅读 · 0 评论 -
重定向控制台程序的输入输出
重定向控制台程序的输入输出利用了管道, 和 createprocess这个api#include #include #include using namespace std;BOOL WriteToPipe();// 读出stdout BOOL ReadFromPipe();//定义句柄: 构成stdin管道的两端句柄 HANDLE hStdInRead;原创 2015-08-01 15:29:00 · 4727 阅读 · 2 评论 -
神州数码802.1x认证协议简析
神州数码802.1x认证协议简析一. 前言本次神州数码802.1x认证协议的分析有这么几个前提:1. 使用神州数码客户端进行上网认证。2. 协议选择的是神州数码私有报文。3. 使用的静态IP地址而不是DHCP分配。4. 不涉及计时计费。5. 分析的版本基于3.3/3.4转载 2015-07-07 19:14:56 · 1742 阅读 · 0 评论 -
多线程编程--5种方法实现线程同步
多线程编程--5种方法实现线程同步 - 啊汉 - 博客园http://www.cnblogs.com/hlxs/archive/2013/03/31/2991752.html多线程编程--5种方法实现线程同步1:用Interlocked系列函数实现线程同步;2:用CRITICAL_SECTION及其系列函数实现线程同步;3:用RTL_SRWLOCK及其系转载 2015-07-07 12:51:13 · 617 阅读 · 0 评论 -
api注册表操作函数
注册表的操作,API为我们提供了大约25个函数。他提供了对注册表的读取、写入、删除,以及打开注册表及键值时所有函数,并且可以达到对注册表的备份,连接和对远端注册表进行查看等等。注册表对整个系统十分重要,你在进行操作时,一定要先考虑清楚。这些函数有: RegCloseKeyRegConnectRegistryRegCreateKeyRegCreateKeyEx RegDelet翻译 2015-05-31 20:09:24 · 773 阅读 · 0 评论 -
使用Win32 API做个系统托盘图标
系统托盘在我们使用的程序中很普遍,下面我们来看一个很不错的例子,使用Win32 API实现,对理解系统托盘有些帮助。转载随意,但请带上本文地址:http://www.nowamagic.net/librarys/veda/detail/227#include #define IDR_PAUSE 12#define IDR_S转载 2015-05-31 21:13:30 · 893 阅读 · 0 评论 -
利用.pbk来实现ADSL开机自动拨号
利用.pbk来实现ADSL开机自动拨号 当你新建拨号连接或者VPN连接之后在你的电脑里会创建一个.pbk的文件这个.pbk的文件可以说是一个集合,将你电脑的所有连接都保存在一起。同时你还可以将此连接复制起来传给其他人。系统默认的.pbk的路径为:%appdata%\Microsoft\Network\Connections\Pbk\ras转载 2015-05-17 20:39:45 · 1593 阅读 · 0 评论 -
从int 3探索Windows应用程序调试原理
【系统篇】从int 3探索Windows应用程序调试原理探索调试器下断点的原理 在Windows上做开发的程序猿们都知道,x86架构处理器有一条特殊的指令——int 3,也就是机器码0xCC,用于调试所用,当程序执行到int 3的时候会中断到调试器,如果程序不处于调试状态则会弹出一个错误信息,之后程序就结束。使用VC开发程序时,在Debug版本的程序中,编译器会向函数栈帧中填充大量的转载 2015-05-14 09:45:55 · 2236 阅读 · 0 评论 -
Windows内存管理API的体系结构
Windows内存管理API的体系结构首先上两张图,分别阐述:1.WindowsAPI与CRT(C运行时)及C++标准库的关系2.Windows内存管理API的体系结构 图1:WindowsAPI、CRT及标准C++库之间的关系(转自:http://www.codeproject.com/Articles/22642/What-Every-Computer-Progra转载 2015-05-13 11:00:53 · 762 阅读 · 0 评论 -
线程的终止_beginthread和_endthread或者CloseHandle()
线程的终止_beginthread和_endthread或者CloseHandle() (2014-03-27 19:07:07)转载▼线程内部细节1.CreateThread 和 _beginthreadex 区别: CreateThread是系统API,_beginthreadex是CRT(C Run Time Libr转载 2015-05-12 10:23:43 · 4325 阅读 · 0 评论 -
线程安全使用相关注意事项
线程安全使用相关注意事项线程创建遵循下面规律! 1、如果线程函数中只调用Win32 API,就放心用CreateThread; 2、如果要用到C Runtime库,那么就要使用_beginthreadex,并且需要在编译环境中选择UseMultiThread Lib/DLL; 3、MFC程序中使用AfxBeginThread。坚决不要使用_beg原创 2015-05-12 18:10:32 · 631 阅读 · 0 评论 -
创建线程后马上CloseHandle(threadhandle)起什么作用
创建线程后马上CloseHandle(threadhandle)起什么作用 HANDLE threadhandle = CreateThread(NULL, 0, RecvThreadProc, NULL, NULL, NULL); CloseHandle(threadhandle); 不明白为什么创建线程后,要马上把线程的句柄关闭,这样做的目转载 2015-05-12 10:09:10 · 708 阅读 · 0 评论 -
net use命令详解
net use命令详解net use命令详解 - 陀陀爸爸 - 博客园 http://www.cnblogs.com/chinahbzm/articles/1423875.html1)建立空连接: net use \\IP\ipc$ "" /user:"" (一定要注意:这一行命令中包含了3个空格) 2)建立非空连接: net use \\IP转载 2017-06-22 17:24:45 · 1060 阅读 · 0 评论