摘要:
https://www.cnblogs.com/theseventhson/p/13194646.html 分享了shellcode 的基本原理,核心思路是动态获取GetProcAddress和LoadLibrary函数地址,再通过这两个函数获取其他windows dll提供的函数地址;需要注意的是 阅读全文
摘要:
shellcode,一段短小精干的代码,放在任何地方都能执行,不依赖当前所处环境,那么就有这么几点要求: 不能有全局变量:函数里的局部变量在栈空间,地址是执行的时候动态分配的;但全局变量在编译时,会由编译器分配好固定的存储空间。编写shellcode的程序肯定会为这个全局变量预留空间,但执行shel 阅读全文
摘要:
外挂、木马、病毒等可能需要读取其他进程的数据,windows提供了OpenProcess、ReadProcessMemory等函数。但越是大型的软件,防护做的越好,大概率会做驱动保护,比如hook SSDT表等,这些系统调用都会先被过滤一次,导致返回的数据不是想要的;为了确保能读到目标进程数据,最好 阅读全文
摘要:
站在用户角度考虑,一个合格的操作系统即使在单核下也能 "同时" 执行多个任务,这就要求CPU以非常快的频率在不同任务之间切换,让普通人根本感觉不到任务的切换。windwos和linux都有线程切换的方法,今天介绍cpu硬件自带的任务切换方案: 时钟中断 + TSS; 1、关于时钟中断,这里 http 阅读全文
摘要:
分页是现在CPU核心的管理内存方式,网上介绍材料很多,这里不赘述,简单介绍一下分页的背景和原理 1、先说说为什么要分段 实模式下程序之间不隔离,互相能直接读写对方内存,或跳转到其他进程的代码运行,导致泄密、出错,通过分段隔离不同程序代码对不同内存单元的读写权限; 用户程序在内存种加载的地址不确定,通 阅读全文
摘要:
https://www.cnblogs.com/Philip-Tell-Truth/p/5317983.html 这里有详细的过程说明。文字很多,为了方便阅读和理解,提炼了一些要点后归纳、整理了如下导图: 这次主要介绍实模式下的中断原理和demo示例;按照中断来源,分外部硬件中断、CPU内部中断和软 阅读全文
摘要:
本章的代码分3个模块: MBR 引导:加载内核core程序 core:包含内核代码段(从磁盘加载用户程序并重定位)、内核数据段(存放api名称、临时缓冲、字符串等)、API段(供用户程序调用) 用户程序:调用内核API打印字符串、读写磁盘 内核程序、用户程序:这里的重定位,本质上是根据在内存中的实际 阅读全文
摘要:
一、先聊聊保护模式的基本概念:为什么叫保护模式?到底保护了啥?是怎么保护的? 1、保护模式:要搞定出保护模式的意义,需要理解另一个概念:实模式;实模式下,存在以下重大的安全隐患: (1)内存没权限区别:用户程序可以访问任意内存,包括操作系统运行的内存、其他程序运行的内存(个人观点:这是万恶之源。病毒 阅读全文
摘要:
用户按下开机键,几秒的时间,都经历了啥? 1、cpu各个寄存器赋初始值,cs.base=0xffff0000, eip=0xfff0,其他寄存器都是0,这时cs:ip得到的物理地址:0xfffffff0; cpu上电后为啥会把cs:ip赋成这种初始值了? 可能是希望把BIOS-ROM放在可寻址4GB 阅读全文
摘要:
windows平台中,某些进程做了各种保护,比如hook了terminateProcess,又或者注册了进程终止函数的回调。当调用这些API或任务管理器终止该进程时,会被绕过,典型如某些杀毒软件,怎么才能终止这些进程了? 进程是由线程组成的,如果该进程名下所有线程都终止,此进程也会被windows回 阅读全文