取反进阶(130) 发表于 2015-08-04 | 分类于 语言 先看图: unsigned是无符号的,所以是正数。补码存储形式就是它本身。所以取反是那个。 其它的就同理了,用补码去取反。 阅读全文 »
生活认识(129) 发表于 2015-07-04 | 分类于 生活 没有惊险和放纵。 没有**和期望。 更没有《大亨小传》苦涩的悲情,或许连《友情》单纯的被渴望着也不存在。 只是平淡、单调、无聊着。 就算这样,也不想重新来过。 我不想再看到那个懵懂的少年,也不想再体会坎坷的努力。 我害怕,,,害怕自己再走一遍原来的路。 即使是错误的 ... 阅读全文 »
函数命名规则(128) 发表于 2015-07-01 | 分类于 Windows 主要的前缀有:Zw:Zw 和同名的 Nt 函数具有相同的功能,中间是从 Zw 到 Nt 函数的简单跳转。本系列内核函数用于文件和注册表方面的操作,比如文件操作、注册表操作、访问进程、事件操作、令牌操作、进程操作和端口操作等。 Ex:管理层,Ex 是 Executive 的开头两个字母。Ke:核心 ... 阅读全文 »
操作系统内存地址管理 (127) 发表于 2015-06-12 | 分类于 驱动 先看内存的分段机制,了解到这个被linux所“抛弃”,算了先放一放,但是汇编中的cs、ss、ds还是要记住(笔记本上)分页一个32位的机器,线性地址最大可为4G,可以用4KB为一个页来划分,这页,整个线性地址就被划分为一个tatol_page[2^20]的大数组,共有2的20个次方个页。这个大数组我 ... 阅读全文 »
内核dll crt 堆 (126) 发表于 2015-06-09 | 分类于 语言 把这个放语言类。。是因为有个内核代码见居然没反应过来,惭愧! 先说堆,默认堆、额外堆,我就不说了,它们必须要依次访问的,所以多线程注意下就好。 new ->heapalloc,这段中用静态变量记录new类的个数。 看下dll,首先dll先看隐式的:它会在程序加载的时候(**.dll 地址 ... 阅读全文 »
汇编指令(125) 发表于 2015-05-21 | 分类于 驱动 说个不是汇编的: C语言调用约定(__cdecl) 标准调用约定(__stdcall) 这俩个不同的约定函数,翻译成的汇编是不同的。然而驱动的是寻的_DriverEntry入口,所以注意要用标准的调用约定。 在函数的末尾ret指令是为了平衡esp指针在开始的参数入栈。所以看参数情况pop ip ... 阅读全文 »
windows内存管理(124) 发表于 2015-05-19 | 分类于 驱动 一个进程是4gb虚拟内存(win32),存在分区,一般用户分区为2gb。 虚拟内存,也只是个内存对应表而已。实际内存,物理内存地址 vitrualalloc先向这么多虚拟内存预定一块内存,再分配物理存储器,再使用。 原话:最好把物理存储器看成是保存在磁盘(通常是硬盘)上页交换文件中的数据。 .exe ... 阅读全文 »
release和debug详细(121) 发表于 2015-05-18 | 分类于 学习 这几天翻了下笔记本,有好多知识没同步上来,写起! 它们无本质区别,只是在编译的时候多添加了一些编译选项。 DEBUG Are /mdd,mtd c语言运行库(不讲了) /od 关闭优化开关 /D 给_DEBUG宏 /ZI 创建edit continue数据库(就是修改源 ... 阅读全文 »
编译后各个文件(123) 发表于 2015-05-18 | 分类于 学习 pdb这个是二进制代码和源代码映射文件。有了这个才能调试定位代码位置 dump是进程内存镜像文件。用windbg打开。程序崩溃时用windbg生成下dmp文件,然后分析内存的错,而定位代码 obj文件是目标文件,一般是程序编译后的二进制文件,在通过链接器和资源文件链接就成exe文件了。 ... 阅读全文 »
证书格式(122) 发表于 2015-05-18 | 分类于 第三方库 X509 通用证书格式,国际标准 pem 一般用来当做数字认证机构(CA)BASE64编码的ASCII码的文件 DER 二进制文件(网上说java适用),但windows上我也看到有,呵呵 CSR 证书请求文件 PKCS7 是个标准,存储认证证书,证书路径,证书链。实际编程中我发现 ... 阅读全文 »