软件安全
威化饼的一隅
记录学习历程
展开
-
C语言读取GPT分区信息
最近作业需要读取MBR和GPT磁盘信息,上次读了MRB,这次读GPT文章目录GPT分区结构PMBRGPT HeaderGPT表项源代码结果分析磁盘信息读取PMBR读取GPT Header读取第1个分区表项第2个分区表项第3个分区表项第4个分区表项备份GPT Header备份分区表项GPT分区结构 GPT的分区格式,比MBR的要简明扼要不少。一开始第一扇区是PMBR,格式与MBR相同,但是...原创 2019-03-10 21:57:50 · 4573 阅读 · 5 评论 -
inline hook的实现
思路 对于目标运行中的EXE程序,如notepad.exe,使用inline hook劫持其kernel32.dll中的writefile函数:找到notepad.exe的进程PID,通过进程PID获取进程模块,通过进程模块获取程序加载的imagebase。在获得imagebase后,就可以像类似分析PE文件一样,先找PE头,然后到可选头,里面读取data directory的第2个成员...原创 2019-05-07 21:47:09 · 1129 阅读 · 3 评论 -
利用Shellcode注入PE文件加载计算器
文章目录简介C语言版shellcode汇编版shellcodeshellcode跳转到原入口地址代码编写思路源代码简介采用C语言查看和修改一些PE文件的关键结构,结合shellcode,完成功能:先用C语言编写通过LoadLibrary()和GetProcAddress()调用msvcrt.dll中的system()函数来弹出计算器的代码。在OllyDbg中打开该程序,查看对应的汇编代码和...原创 2019-04-16 21:37:51 · 3131 阅读 · 0 评论 -
修改PE文件引入表实现加载DLL
文章目录内容简介DLL结构DLL的编译链接(VS命令行中)DLL的加载使用的DLL源代码PE文件关键结构MZ头NT映像头可选头部引入表IDT、INT、IAT关系代码实现思路关键数据结构节表IDT项验证结果内容简介编写Func.dll,并编写一个EXE程序,该程序能够加载Func.dll,并调用Func.dll中的导出函数,在加载Func.dll的时候,会弹出计算器calc.exe。使用PE...原创 2019-04-08 09:10:41 · 3178 阅读 · 7 评论 -
C语言读取FAT32分区文件簇链
文章目录FAT32基本结构DBR的结构目录项的结构短目录项的重要字段长目录项重要字段FAT表项解析文件路径(英文路径)源代码验证长文件名/目录名占多个簇后续需要考虑的参考链接FAT32基本结构 FAT32文件系统由4部分构成:DRB和保留扇区,FAT1,FAT2和数据区。其中数据区中有根目录、子目录和数据三部分。DBR的结构 开始的3字节是一个跳转指令,指出引导代码的开始位置,EB...原创 2019-03-25 21:50:26 · 7197 阅读 · 17 评论 -
C语言读取磁盘分区信息(MBR、DPT、EBR)
文章目录简介使用的函数1.CreateFile()函数打开设备2.DeviceIoControl()函数返回磁盘设备信息3.SetFilePointer()函数设置读取磁盘信息位置4.ReadFile()函数读取磁盘内容源代码结果分析MBR部分:第一个EBR的DPT内容为:第2个EBR内容总结简介 在win8以后,磁盘格式一般是GPT格式的,做实验是在winXP虚拟机上完成的,partiti...原创 2019-03-08 13:26:05 · 10735 阅读 · 13 评论 -
ubuntu16.04安装LLVM3.6.0
因为最近需要用到LLVM做DOPDefender,开始第一步需要安装LLVM+clang,论文中做DOP攻击给的github上的DOP-StaticAssist是LLVM3.5的,想着安装一个3.5,但是尝试了很久,特别是3.5.0,一直报错,说找不到“all”,查了以后发现很多人都遇到这个问题,这是一个本身的bug,试了3.5.1和3.5.2都失败了,于是试3.6.0,安装成功了。安装cm...原创 2019-05-10 19:52:05 · 2337 阅读 · 1 评论