Skip to content
hkx3upper edited this page May 27, 2022 · 25 revisions

Welcome to the FOKS-TROT wiki!

项目里的开发文档有些错误,所以在wiki里写一下重要的项目方法。
wiki将分为七部分写吧

  • 本文使用双缓冲,授权进程和非授权进程分别使用明文和密文缓冲,授权进程允许修改明文缓冲,非授权进程不允许修改密文缓冲;
  • 本文使用StreamContext存放驱动运行时的文件信息,使用文件标识尾的方式,在文件的尾部4KB储存文件所需的解密信息;
  • 加密算法使用AES-128 ECB模式,并且使用密文挪用(Ciphertext stealing)的方法,处理块大小不对齐的明文需要填充(padding)的问题;
  • 本文的Write(写操作)和Read(读操作)使用SwapBuffers的方式进行透明加密解密;
  • 对文件的特权加密和特权解密使用重入(Reentry)的方式,让minifilter重新进入自己的加密或解密代码中,使驱动加密解密文件;
  • 为了适配office文件,本文在文件FileRenameInformationEx和FileRenameInformation时做特殊处理,因此可以自动加密解密docx,doc,pptx,ppt,xlsx,xls等使用tmp文件重命名方式读写的文件;
  • 关于进程的控制与保护,本文使用双向链表存储进程策略,并注册相关进程回调函数,同时定时扫描授权进程代码段(.text段)的完整性,实现进程的控制与保护。

有些bug或者目前不太确定的部分,我会标注出来。

Clone this wiki locally