cpp notes for class CPP notes for class 这个文档主要记录在使用CPP进行面向对象开发时所使用到的CPP中类与继承的相关概念,主要是为了理清几个CPP类与继承中几个比较常见的概念,比如成员初始化列表,访问权限尤其是派生类和基类之间的访问关系,抽象基类和虚函数。 这里也会放上一些项目实战中的代码。 场景描述 因为这个文档主要是记录在我实际的项目开发中的遇到的问题,所以这里有必要对项目开发的场景进行一个 2022-11-13 notes #quantitative analysis
overview of linux kernel Overview of linux kernel ref. linux kernel labs 操作系统基本概念 这里先简单回顾一些操作系统中的基本概念,这些内容只是对Linux系统结构的一个提纲挈领的概述,如果想要了解更多的细节,还需要查阅别的资料。 User & Kernel 首先是用户(User)和内核(Kernel)的概念,内核是操作系统的一部分,以较高的权限运行,而用户则是应用的 2022-10-27 notes #binary analysis
gnu hash notes GNU Hash notes Linux系统中,在ELF文件的全局偏移表(Global Offset Table, GOT)中的第1个条目用于存放该文件动态段(DT_DYNAMIC)的地址,第2个条目用于存放link_map的地址,第3个条目用于存放链接器(ld.so)的地址,准确的说应该是动态链接器_dl_runtime_resolve()函数的地址。 在进行动态库注入实验时,要使用dlopen 2022-10-17 experiment log #binary analysis
DynamoRIO Tutorial DynamoRIO Tutorial 这个文档是一个DynamoRIO的使用教程。DynamoRIO是一个动态二进制插桩平台(Dynamic Binary Instrumentation Platform),可以向用户提供一些API以实现一些用户自定义的插桩工具。虽然在DynamoRIO的官网上Available Tools目录下有一些现成的插桩工具,但是在有些场景下需要使用自定义的插桩,而这个文 2022-10-14 notes #quantitative analysis
simpleperf_notes SimplePerf Notes 这个博客是在学习使用SimplePerf来监视测试机在运行测试程序时的访存请求总数以及缓存缺失数时所记录的笔记。 SimplePerf是一种CPU分析器(Profiler),可以用于监测测试程序运行时的性能数据,而本人需要使用测试机的实测缓存访问结果来验证缓存仿真器的仿真结果。这个博客将会记录SimplePerf的基本用法以及一些底层的原理。 在将SimplePe 2022-10-14 notes #quantitative analysis
syscall_notes Syscall Notes 在计算机中,系统调用是一种编程方式,计算机程序通过该方式向操作系统的内核请求服务。系统调用是一种计算机程序与操作系统互动的方式:计算机程序通过系统调用向操作系统内核请求服务,而系统调用则会通过API(Application Program Interface)向用户程序提供操作系统的服务。 系统调用提供了进程和操作系统之间的接口,以允许用户级进程请求操作系统的服务。系统 2022-10-13 notes #binary analysis
gdb_usage GDB basic usage ref. GDB User Manual GDB是一个功能十分强大的调试工具,对于二进制分析工作非常有用。这里记录GDB的一些常见用法,如果想要了解关于GDB使用的详细信息,可以参考GDB用户手册。 Get in and out of GDB 这里先介绍如何启动GDB,可以直接在命令行中输入gdb即可启动gdb。一旦启动gdb,gdb将会从命令行中读取命令直到退出。 2022-10-12 notes #binary analysis
Hexo basic usage Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick 2022-10-12