精华内容
下载资源
问答
  • DWORD

    2013-10-30 10:30:45
    typedef unsigned long DWORD;

    typedef unsigned long DWORD;

    在这里记录一下DWORD的真实定义的原因是我发现很多WIN32线程函数的返回值是DWORD类型,但是程序中却使用了int型变量存储返回值,有点小疑惑。

    实际上各种基本数据类型的占位情况如下:


    现在一般都是32位机,所以int和unsigned long实际占位数相同,只是说int表示的数据有符号,而unsigned long没有符号。

    但是在存储返回值的时候,由于只是记录这个返回值,不需要对其进行计算,只要占位数相同,不会发生存储截断,应该就可以。所以好多程序使用int型变量来接收返回值应该是没问题的。

    但是最好还是使用DWORD类型,第一个原因是出于处女座的严谨性,感觉对于返回值的记录最好和函数原型一致;第二个原因是使用DWORD类型便于在不用位数的机器上做移植。

    展开全文
  • 关于DWORD

    2019-10-23 19:18:32
    关于DWORD DWORD是由4字节长表示的数据。 关于DWORD使用最重要的一点: DWORD表示32bit无符号整数,无论是32位还是64位,DWORD仍然是32bit无符号整数。因此对于那些和位数有关的整数,最好不用int,long,short之类的...

    关于DWORD

    DWORD是由4字节长表示的数据。
    关于DWORD使用最重要的一点:
    DWORD表示32bit无符号整数,无论是32位还是64位,DWORD仍然是32bit无符号整数。因此对于那些和位数有关的整数,最好不用int,long,short之类的类型。

    展开全文
  • DWORD 关键字

    2017-12-19 11:22:27
    DWORD值(REG_DWORD) 由 4 字节长(32 位整数)的数字表示的数据。设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。REG文件中一般表现为“a”=“dword:00000001...
    DWORD值(REG_DWORD)
    由 4 字节长(32 位整数)的数字表示的数据。设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。REG文件中一般表现为“a”=“dword:00000001”。1个二进制位称为1个bit(位),8个二进制位称为1个Byte(字节),8 bit = 1 byte。2个字节就是1个Word(1个字,16位),DWORD(Double Word)就是双字的意思,两个字(32位)。
    typedef unsigned long DWORD;
    关于DWORD使用中重要的一点。DWORD 现在表示 32bit 无符号整数,即使以后 Windows 升级到64位,DWORD 仍然是 32bit 无符号整数(也许以后的 long 不是32bit了,只需要重新定义一下 DWORD 就可以了)。对于那些直接和位数有关的整数,最好不用 int, long, short 之类的类型,因为这些类型的位数可能不确定(比如,在16位程序里,int 是16位的,在32位程序里,int 是32位的,谁知道在以后的64位程序里,int 是多少位,long 又是多少位)。用重新定义的类型就没有这方面的问题了,最多到时候修改一下定义就可以了,而不需要在程序里一行一行的查找

    展开全文
  • Dword shoot

    千次阅读 2018-05-14 11:05:36
    Dword shoot,一种很简单的漏洞溢出技巧,所以就简单的说明一下吧。dword shoot漏洞是出现在双向链表表删除的时候出现的一种漏洞类型。(双向链表是什么不用我解释吧)在进行双向链表的操作过程中如果因为处置不当,...

    简介

    Dword shoot,一种很简单的漏洞溢出技巧,所以就简单的说明一下吧。dword shoot漏洞是出现在双向链表表删除的时候出现的一种漏洞类型。(双向链表是什么不用我解释吧)在进行双向链表的操作过程中如果因为处置不当,比如溢出等等的情况下,构成双向链表的指向前一个和后一个节点的两个指针被恶意的改写的话,就会在链表删除的时候发生的漏洞。

    漏洞原理与利用

    这里我们先定义一个结构体作为双向链表的节点

    struct node
    {
        char data[32];
        struct node *fd;            //指向前一个节点
        struct node *bk;            //指向前一个节点
    };

    一个简单的节点。现在我们写一个双向链表删除的函数

    void delete(struct node *p)
    {
        struct node *FD;
        struct node *BK;
    
        /*获得前一个和后一个节点*/
        FD = p->fd;
        BK = p->bk;
    
        /*从链表中解绑定*/
        FD->bk = BK;
        BK->fd = FD;
    
        /*装的像一点*/
        free(p);
    }

    很正常的链表删除的工作,如果没有人恶意的修改fd和bk这两个指针的话。但是,如果一个粗心的程序猿在操作的data的时候使用了比如gets这样的函数,那么我们就可以改写这两个指针了。现在我们将待删除的节点的两个指针改改写了。

    fd = addr_shellcode
    bk = free@got - 0x20

    现在我们把fd改成了一个地址,shellcode的地址,然后将bk改成了指向了free@got - 0x20也就是got表中的free在减0x20的地址。(不要问我想干什么,你懂的)然后我们调用一下这个delete函数。

    void delete(struct node *p)
    {
        struct node *FD;
        struct node *BK;
    
        FD = p->fd;         //FD = addr_shellcode   也就是FD现在指向了shellcode
        BK = p->bk;         //BK = free@got - 0x20  现在的BK指向了free@got - 0x20的地方
    
        FD->bk = BK;        //FD->bk 也就是addr_shellcode+0x24 = free@got  写shellcode的时候记得跳过这里
        BK->fd = FD;        //BK->fd 也就是(free@got-0x20)+0x20.其实就是free@got = addr_shellcode
    
        free(p);            //嘿嘿,现在调用free的话,会跳到shellcode哦
    }

    然后,就没有然后了。随你搞了233333

    补充

    当然,其实如果双向链表中的2个指针被改写的话,会发生很多有趣的事情。有的时候也许不能使用shellcode,或者是无法让程序删除节点。但是总有方法去达到目的的,具体的方法就要看脑洞了。

    总之,c语言和汇编语言才基础才是王道。

    展开全文
  • C++中DWORD

    2020-04-16 12:57:14
    C++中使用DWORD不用声明,但是要加头文件Windows.h。 DWORD 就是 Double Word, 每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位。 DWORD的宏定义如下: #define DWORD unsigned long ...
  • VC++字符串IP地址转DWORD地址

    千次阅读 多人点赞 2020-11-25 10:37:34
    实现功能:把字符串IP地址转DWORD地址 ,如转换成CIPAddressCtrl 添加的DWORD变量 DWORD m_dwIpaddress; string strIPAddress = "192.168.10.10"; m_dwIpaddress = IP_str2int(strIPAddress.c_str...
  • C++ char[] 转 DWORDDWORD - string 互转

    千次阅读 2019-10-21 16:44:43
    char[] 转 DWORD // keyValue 为 char[] DWORD dw_keyValue = keyValue[0] | keyValue[1] << 8 | keyValue[2] << 16 | keyValue[3] << 24; DWORD - string 互转 // string 转 dword DWORD ...
  • 注册表:DWORD

    2018-12-27 15:54:00
    DWORD全称Double Word,是指注册表的键值,每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位。 在键值项窗口空白处单击右键,选择“新建”菜单项,可以看到这些键值被细分为:字符串值、二...
  • DWORD WINAPI

    万次阅读 2014-11-27 14:23:18
    DWORD WINAPI Zhaa(LPVOID PP) 查看WINAPI的定义,它是这样定义的 #define WINAPI _stdcall 可以发现CALLBACK也是这样定义的 _stdcall规定了编译时的一些选项WINAPI是一个宏,所代表的符号是__stdcall, 函数名前...
  • C++ Dword,String类型相互转换

    千次阅读 2019-06-01 14:08:24
    首先是Dword转string string DwordToString(DWORD val) { string cur_str = to_string(long long (val)); return cur_str; } string转dword DWORD StringToDword(string val) { DWORD cur_dword; sscanf...
  • C++中关于DWORD

    万次阅读 多人点赞 2017-07-06 19:22:31
    C++中使用DWORD不用声明,但是要加头文件Windows.h。 具体描述如下: DWORD 就是 Double Word, 每个word为2个字节的长度,DWORD 双字即为4个字节,每个字节是8位,共32位...DWORD的宏定义如下: #define DWORD u
  • WORD 和DWORD

    万次阅读 2016-11-04 21:36:11
    WORD与DWORD  在看C/C++的书或者试题时,有时会见到利用word或dword定义的变量,第一次看到的时候并不知其是什么,更不用说word或dword占几个字节了。幸好在VC安装文件夹下有相关的定义。如C:\Program Files\...
  • C++ 中的DWORD

    千次阅读 2019-01-17 20:51:08
    Windows下经常用来保存地址(或者存放指针).DWORD是因定为四个字节的,所以在定义双字类型的时候使用DWORDDWORD是无符号的,相当于unsigned long ,它是MFC的数据类型。DWORD一般用于返回值不会出现负值情况。 ...
  • word或dword区别

    2019-10-09 03:16:13
    word或dword区别 在看C/C++的书或者试题时,有时会见到利用word或dword定义的变量,第一次看到的时候并不知其是什么,更不用说word或dword占几个字节了。幸好在VC安装文件夹下有相关的定义。如C:\Program...
  • dword LPTSTR

    2010-08-26 10:36:00
    dword 1个二进制位称为1个bit(位),8个二进制位称为1个Byte(字节),8 bit = 1 byte。2个字节就是1个Word(1个字,16位),DWORD(Double Word)就是双字的意思,两个字(32位)。 typedef unsigned long DWORD; ...
  • DWORD SHOOT

    千次阅读 2013-08-29 00:40:21
    我知道原理了: 当 int remove() { node->blink->flink = node->flink; ...//这个是flink \x88\x06\x36\x00 这个是blink //\x20...//将系统RtlEnterCritucalSection 的 flink指向 我们的shellcode起始地址 造成DWORD S
  • DWORD 代表 unsigned long

    2020-09-01 15:26:34
    DWORD 代表 unsigned long int会随着机器位数的不同而发生变化,比如在16位机上为16为,在32位机上为32位,在64位机上为64位。看看最原始的定义就知道了。 DWORD是无符号的,相当于unsigned long ,它是MFC的数据类型...
  • DWORD与int

    千次阅读 2016-03-25 15:28:16
    有的程序中用DWORD,其实它表示的是无符号整形,占用4个字节,宏定义如下: typedef unsigned int DWORD; int 是有符号的整形,在有些情况下,需要使用无符号整数。
  • 关于dword ptr 指令

    千次阅读 2019-10-04 04:45:05
    dword 双字 就是四个字节ptr pointer缩写 即指针[]里的数据是一个地址值,这个地址指向一个双字型数据比如mov eax, dword ptr [12345678] 把内存地址12345678中的双字型(32位)数据赋给eax 8086CPU的指令,可以...
  • 汇编word,dword

    2018-08-06 22:16:07
    word 2字节 16位dword 4字节 32位
  • dword CString

    2009-08-28 14:34:00
    CString strTest; DWORD dwTest=111; strTest.Format("%d",dwTest); CString str = _T("0.01"); DWORD dw; dw = (DWORD)atof(str); 结果dw还是变成整数了: 0 怎么把0.01存到
  • BOOL ModifyStyleEx( DWORD dwRemove, DWORD dwAdd, UINT nFlags = 0 );
  • 关于float转DWORDDWORD转float

    千次阅读 2012-06-20 09:32:29
    c++代码如下,可以直接复制运行 DWORD dw = 0; float f1 = 0.25; cout; dw = *((DWORD*)&f1); cout*((DWORD*)&f1): "; f1 = 0.0; cout; f1 = *
  • DWORD转CString

    千次阅读 2015-08-20 14:19:36
    CString str; DWORD dwValue = 121212; str.Format("%d",dwValue);
  • windows下WORD 和DWORD

    千次阅读 2019-09-04 10:01:12
    WORD与DWORD 在看C/C++的书或者试题时,有时会见到利用word或dword定义的变量,第一次看到的时候并不知其是什么,更不用说word或dword占几个字节了。幸好在VC安装文件夹下有相关的定义。如C:\Program Files\...
  • DWORD WINAPI 函数名

    千次阅读 2017-07-05 09:29:00
    这个是Windows编程中要了解的,首先DWORD是数据类型,在这里是返回值,WINAPI是函数的调用形式,最终就是_stdcall形式,就被调用函数来清理栈中的参数,这种形式是不能实现可变参数的。 windows api = windows ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,054
精华内容 10,021
关键字:

dword