HaCky的安全备忘录


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 日程表

  • 站点地图

  • 公益404

windbg学习笔记 (4)

发表于 2018-07-22 | 分类于 windows 内核

第一部分 调试目标程序的函数

.call命令的原理

         我们使用.call调试被调试程序的函数。利用.call元命令可以不需要使函数运行到函数调用处,而是类似于进行一次虚拟调用。具体原理如下:

  • windbg在栈上创建一小段代码,这段代码用于被调用函数的父函数,函数返回到这段代码,然后中断。
  • 在栈上创建一个新的关于被调用函数的栈帧,用于模拟被调用函数
  • 修改寄存器,使程序指向模拟被调用的函数的起始地址,保证恢复程序运行就能执行这个函数
    阅读全文 »

windbg学习笔记(3)

发表于 2018-07-19 | 分类于 windows内核

第一部分 事件处理

调试事件与异常

         windows定义了九种调试事件,其中异常是其中的一种调试事件(EXCEPTION_DEBUG_EVENT)。异常也存在包括win32异常,调试器异常,编译器异常(VC异常),托管异常(.net异常),其他异常(主动调用RaiseException抛出异常)。

阅读全文 »

windbg学习笔记(2)

发表于 2018-07-17 | 分类于 windows内核

第一部分 windbg命令

         windbg命令一共有三大类:标准命令(命令特别短,容易记忆),元命令(也是windbg内置命令,一般用”.”表示,也成点命令),拓展命令(利用windbg目录中的dll文件实现的,使用的时候需要加载需要使用的模块)。

阅读全文 »

常见的脱壳思路

发表于 2018-07-15 | 分类于 windows PE

前言

         去年暑假,学习了如何脱壳,但是没有深入的了解这一块的知识,现在花费差不多三天的时间总结一下。

阅读全文 »

《Windows Internals》第四章_注册表

发表于 2018-06-04 | 分类于 windows系统

注册表用法

         注册表的配置数据主要在四个时间点被修改。

  • 由于引导配置数据库(BCD)存在于注册表储巢中,所以在初始化引导过程中,引导加载器需要读入配置信息和引导设备驱动程序的列表。
  • 在内核引导的过程中,内核要读取系统的相关设置信息(存放在注册表中),这些信息包含了加载的驱动程序,系统组件,已经系统行为的配置。
  • 在windows登录过程中,Explorer和windows组件读取用户配置信息。
  • 应用程序启动过程中,读取系统全局配置信息。
  • 其他时间:在调用API修改注册表的时候,注册表也提供异步回调机制,这是优先接收注册表变化的方法。系统不建议使用轮询的方法检测注册表的修改。
    阅读全文 »

《windows PE》延迟加载导入表

发表于 2018-05-14 | 分类于 windows PE

预备知识

1.延迟加载导入的概念及作用

         延迟加载导入表和导入表示相互分离的,延迟加载导入表是特殊的导入表,和导入表不同的是,延迟加载导入表所记录的dll不会被操作系统加载,只有在函数被应用程序调用的时候,PE中注册的延迟加载函数才会根据延迟加载导入表的记录,动态加载dll,以及修正导入函数的VA。

阅读全文 »

《windows PE》重定位表

发表于 2018-05-14 | 分类于 windows PE

预备知识:代码重定位

重定位的提出

         代码重定位是把可执行代码从内存的一块区域移动到另外一块地方。但是如果指令中某些操作数没有随着地址的改变而改变,这样势必导致运行出错。如下代码:我们发现全局变量的地址包含在机器码中,而局部变量没有包含绝对地址。

1
2
3
4
5
6
push ebp
mov ebp,esp
add esp,ffffffc
mov eax,dword ptr [00400FFC] //全局变量
mov eax,dword ptr [ebp-04] //局部变量
mov eax,dword ptr [evp+08] //局部变量

         重定位信息是在编译时期由编译器生成,并且保存在应用程序中,在程序执行的时候由操作系统予以修正。如果在装载时该位置已经被别的应用程序使用,操作系统会重新选择一个新的基地址。此时,就需要对所有重定位信息进行纠正,纠正的依据就是PE中的重定位表。

阅读全文 »

《windows PE》导出表

发表于 2018-05-11 | 分类于 windows PE

第一部分 预备知识

         导入表主要存在于动态链接库文件中,用于将dll文件中的函数导入到外部,给其他的exe或者dll文件调用。我们在导入表一章中知道了程序在装载过程中,通过在INT获得的函数地址覆盖到IAT中,此时,导出表起到了参照和指引的作用。

阅读全文 »

《windows PE》导入表

发表于 2018-05-09 | 分类于 windows PE

第一部分 预备知识

1.函数导入流程

         程序在引用dll库函数的时候,需要从dll里面对所需要的函数进行导入,该导入过程如下:

阅读全文 »

《windows PE》PE文件头

发表于 2018-05-07 | 分类于 windows PE

第一部分 预备知识

四类地址

  • 虚拟地址(VA)
  • 相对虚拟内存地址(RVA)
  • 文件偏移地址(FOA)
  • 特殊地址
    阅读全文 »
1…789

HaCky

我是最菜的HaCky呀

88 日志
21 分类
RSS
© 2025 HaCky
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.3