- 博客(14)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 多屏幕显示
获取屏幕个数EnumDisplayDevicessGetSystemMetrics读取显示器参数及其他参数windows 系统提供了多屏显示的功能,首先第一步是获取屏幕个数获取屏幕个数EnumDisplayDevicess函数原型:BOOL EnumDisplayDevices( _In_ LPCTSTR lpDevice, _In_ DWORD
2016-05-31 09:33:05 6010 2
原创 基于arm的C++反汇编 结构体和类
在C++中,结构体和类都具有构造函数、析构函数和成员函数,两者只有一个区別:结构体的访问控制默认为public,而类的默认访问控制是private。对于C++中的结构体而言, public, private、protected的访问控制都是在编译期进行检査,当越权访问时,编译过程中会检査出此类错误并给予提示。编译成功后,程序在执行的过程中不会在访问控制方面做任 何检査和限制。因此,在反汇编中,C++
2016-05-25 21:26:01 1907
原创 基于arm的C++反汇编 数组和指针的寻址
数组在函数内数组作为参数数组作为返回值下标寻址和指针寻址下标值为整型常量的寻址下标值为整型变量的寻址下标值为整型表达式的寻址数组越界多维数组存放指针类型数据的数组指向数组的指针变量 虽然数组和指针都是针对地址操作,但它们有许多不同之处。数组是相同数据类型的数 据集合,以线性方式连续存储在内存中;而指针只是一个保存地址值的4字节变量。在使用中,数组名是一个地址常量值,保存数组首元
2016-05-24 10:37:22 6351
原创 基于arm的C++反汇编 函数的工作原理
栈帧的形成和关闭各种调用方式的考擦使用 fp或sp寻址函数的参数 与返回值arm指令中立即数存放位置gdbserver 调试环境栈帧的形成和关闭栈在内存中是一块特殊的存储空同, 它的存储原则是“先进后出”, 即最先被存储的数据最后被释放, 汇编过程通常使用 push 指令与 POP指令对栈空间执行数据压入和数据弹出操作。栈结构在内存中占用一段连续的存储空间, 通过sp与 fp这两个栈指针寄
2016-05-23 19:04:14 7472
原创 基于arm的C++反汇编 基本数据类型
基本数据类型Cpp中的引用常量常量的定义基本数据类型 反汇编一个基本的知识点就是掌握数据类型,包括整形和浮点类型在内存中是如何存放的,这里要知道原码,反码,补码,以及IEEE浮点标准,这部分与处理器架构无关,《C++反汇编与逆向分析技术揭秘》 第二章已经有详细讲解,这里略过。 在此推荐下我曾经写过的一个进制转换的工具 来学习数据类型 。 Cpp中的引用
2016-05-20 17:42:22 2218 1
原创 基于arm的C++反汇编 qemu-arm环境搭建
看雪高手写了在windows 上基于x86架构的 C++ 反汇编分析,但是没有人弄过在linux下基于arm架构的C++反汇编教程,这里尝试分析下,可以看到不管在win下还是linux下,不管基于x86还是基于arm 都遵循同样的C++标准,内存布局都是一样的。 首先第一步搭建环境,为了方便这里不再从头编译而是使用网络上现成的二进制工具,参考Architectures/ARM/HowToQemu1
2016-05-20 13:35:55 2079
原创 gh0st错误修改
SetPaneText 的崩溃问题WSAIoctl 参数类型导致栈异常CIniFile 构造函数导致异常栈上对象多线程析构函数导致程序崩溃 开始看 gh0st 源码,找来了一份比较纯净的官方代码来读,有点抓狂,听说使用很老的VC6.0写的,现在需要用 VS2010 重新创建工程,并拷贝代码过去,编译,分析整个执行流程,调试每一个遇到的bug,在这过程中学到了很多,记录下来,供后来参考:Set
2016-05-17 18:45:29 2899
转载 MFC不能多线程操作控件的原因
表现错误示例网友hewwatt大致原因解释如下原因分析窗口类MFC状态模块本地数据进程本地数据线程本地数据模块线程状态包装类对象和句柄映射解决办法注意事项 对于大多数mfc对象,请不要在线程间传递它们,不管是栈上的还是堆上的!原因如下: mfc的大多数类不是线程安全的,调用传入对象的成员函数可能不会报错,但是未必能达到程序预定的功能! mfc与界面有关的类,其大多数成员方
2016-05-17 15:55:35 5355
原创 gh0st的IOCP模型分析
在分析了那么多IOCP相关api之后想把IOCP模型分析下,本人菜鸟一个,高手勿笑。gh0st是单文档类型的程序框架。 文档类型的都是从theApp开始的。theApp是一个全局变量。 那我们就先看一下CGh0stApp这个类的初始化函数 BOOL CGh0stApp::InitInstance() 下面很大一部分是生成的框架。我给大家指出来,就没必要再看这些了 直到 if (!Pr
2016-05-14 22:00:40 3110 1
转载 IOCP 系列函数讲解
CreateIoCompletionPort详解GetQueuedCompletionStatusPostQueuedCompletionStatusWSASocketSocket与WSASocket的区别WSAEventSelectWSARecvCreateIoCompletionPort()详解函数原型:HANDLE WINAPI CreateIoCompletionPort(
2016-05-14 16:42:26 2563
转载 IOCP 完成端口
什么是IOCP实现方法实现代码什么是IOCP先让我们看看对IOCP的评价I/O完成端口可能是Win32提供的最复杂的内核对象。[Advanced Windows 3rd] Jeffrey RichterIOCP实现高容量网络服务器的最佳方法。[Windows Sockets2.0:Write Scalable Winsock Apps Using Completion Ports] 完成端口模
2016-05-14 15:24:17 1239
原创 win下一些小工具
md5计算工具sha1工具进制转换工具MS IDE 工程清理 整理的一些小工具,需要的拿走:md5计算工具 把MD5.exe 可执行文件,拷贝到系统环境: A:\Windows\System32 里面—A是系统盘。如果想计算某个文件的MD5值可以先回到某个文件的父目录,然后按住shift ,右击出现一行菜单:在此处打开命令行窗口(W)。 打开后输入 MD5 文件名(文件名还可以t
2016-05-14 11:02:34 1406
原创 编译和使用zlib
由于要弄一个项目,在windows下用到zlib库,现成的库都是release版本的,如果项目是debug的就会导致一大堆符号错误,无奈只得自己重新编译zlib库。首先下载 源码和工程文件解压到某个目录开启VS2010 的命令行 32bit进入到zlib-1.2.5\contrib\masmx86目录执行bld_ml32.bat打开工程项目zlib-1.2.5\contrib\vstudio\vc1
2016-05-14 10:24:50 6308
原创 WaitForSingleObject -- setevent 讲解与编程示例
函数一直等待,直到指明的 Handle 处于signed 状态,或者超过规定的时间才返回。 函数原型:DWORD WINAPI WaitForSingleObject( _In_ HANDLE hHandle, _In_ DWORD dwMilliseconds); hHandle[in]对象句柄。可以指定一系列的对象,如Event、Job、Memory resource noti
2016-05-13 22:01:26 3955
编译好的程序和源码.rar
2020-08-20
c++ stl list 是否需要互斥保护
2016-07-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人