- 博客(185)
- 收藏
- 关注
原创 [KCTF2025]第十题-涅槃,亦是新生WP
跟据以上逻辑,输入特殊字符串123456789012345678901234567890123456789012,调试得到异或后的数据,反推异或Key,再用unk_1400C89D0的值与异或key进行异或运算,得到flag。一个状态机,分析代码,发现代码的执行流程是0->1->2->3->5->6->8->7->9->3->5->6->8->7->9->3->5->6->8->7->9->3->4->10。调试的时候发现这个值会变,具体在哪里改的没有去找,纯靠猜,确定是异或固定值。
2025-09-09 09:11:01
1283
原创 某起名软件逆向分析
9-4-2、逐字节对9-4-1的字符串进行转换,如果当前字符是数字,则与8进行异或运算。9-4-4、9-4-3的计算结果第11、12、7、8、5、6、3、4位拼接为计算结果。9-4-1、将MD5的4、5、13、14、8、9、11、12、1、2、6、7拼接。3、第5位如果是6、7、B、b则第5位为1、如果是8、9、C、c时为2.5、第7位如果是4、5、A、a则第7位为0、如果是6、7、B、b时为1。4、第6位如果为A、B、C、D、E、F、G、H、J、K分别对应0-9。这个程序是.net的,无壳,32位。
2025-04-15 15:04:08
1910
原创 SI ObjectBrowser 注册破解
6、license第13-16字节按1、2、3、4字节顺序从KeyTable2中查表并分别减去license第9-12字节按2、3、4、1的顺序从KeyTable中查表得到的位置做差,如果差<1则加上36,得到的位置从KeyTable中获取字符。9、license第25-28字节按1、2、3、4字节顺序从KeyTable2中查表并分别减去license第5-8字节按2、3、4、1的顺序从KeyTable中查表得到的位置做差,如果差<1则加上36,得到的位置从KeyTable中获取字符。
2025-04-09 17:22:37
938
原创 动静态库快速编译为鸿蒙版本
熟悉IDE的会说,去build目录里复制出来就行了。没错,可以这样,但个人很不喜欢,so文件在build目录里真的太深了,不只目录深,隐藏的也深。可以看到,cmake编译时的命令就在这个文件里,这样就好办了,自己写一个批处理,已有动态库编译成鸿蒙版本就可以和其它CPU架构一样了。仔细观察编译生成的路径,在.cxx目录下,有一个metadata_generation_command.txt文件,打开文件,内容如图。至于Cmakelist.txt的编写,这里就不详细介绍了,其实并不难,而且大多数人也是会的。
2024-09-26 09:36:10
706
原创 详解ELF文件(十八).dynamic节
dynamic节是ELF(Executable and Linkable Format)文件格式中最重要的节之一,它包含了动态链接器在运行时所需的关键信息。该节是动态链接机制的核心组成部分。.dynamic节是ELF文件中用于存储动态链接相关信息的节,它包含了动态链接器在程序加载和运行时解析外部符号所需的所有元数据。该节通常与PT_DYNAMIC类型的程序头段对应。.dynamic节作为ELF文件动态链接机制的核心,为程序在运行时正确加载和链接共享库提供了必要的元数据信息,是现代动态链接系统的重要基础。
2025-12-12 09:07:55
919
原创 详解ELF文件(十七).got节
got节(Global Offset Table,全局偏移表)是ELF(Executable and Linkable Format)文件格式中的一个重要组成部分,用于支持动态链接和位置无关代码(PIC)。.got节作为ELF文件动态链接机制的重要组成部分,为程序提供了访问外部符号的间接方式,是实现动态链接和位置无关代码的关键技术之一。.got节本身没有特定的结构体,它是一个地址表,每个表项通常为指针大小(32位系统为4字节,64位系统为8字节)。
2025-12-12 09:07:32
726
原创 详解ELF文件(十六).dynstr节
dynsym节是ELF文件中的动态符号表(Dynamic Symbol Table),专门用于动态链接过程中的符号导入和导出。.dynsym节是ELF(Executable and Linkable Format)文件格式中的动态符号表,用于存储动态链接过程中需要的符号信息。它是动态链接机制的核心组成部分之一。.dynsym节作为ELF文件动态链接机制的核心组成部分,确保了程序在运行时能够正确解析和链接所需的外部符号,是现代动态链接系统的重要基础。
2025-12-11 09:06:25
540
原创 详解ELF文件(十五).dynsym节
dynsym节是ELF文件中的动态符号表(Dynamic Symbol Table),专门用于动态链接过程中的符号导入和导出。.dynsym节是ELF(Executable and Linkable Format)文件格式中的动态符号表,用于存储动态链接过程中需要的符号信息。它是动态链接机制的核心组成部分之一。.dynsym节作为ELF文件动态链接机制的核心组成部分,确保了程序在运行时能够正确解析和链接所需的外部符号,是现代动态链接系统的重要基础。
2025-12-11 09:05:58
991
原创 详解ELF文件(十四).rela.dyn节
rela.dyn节是动态链接重定位表的一部分,用于存储数据引用的重定位信息。"rela"表示它使用的是RELA类型的重定位条目,与.rel.dyn节使用的REL类型不同,RELA类型包含了显式的加数(addend)字段。.rela.dyn节作为现代ELF文件动态链接机制的重要组成部分,特别是在64位系统中被广泛使用,确保了程序能够正确引用其他模块中的数据符号,是实现位置无关代码(PIC)和动态链接的关键技术之一。它在动态链接过程中发挥着关键作用。
2025-12-10 09:07:50
949
原创 详解ELF文件(十三).rel.dyn节
rel.dyn节是动态链接重定位表的一部分,包含了需要在程序运行时进行重定位的数据信息。与.rel.plt节不同,.rel.dyn主要用于除函数调用以外的数据重定位。.rel.dyn节是ELF(Executable and Linkable Format)文件格式中一个重要的重定位节,主要用于动态链接时的数据重定位。.rel.dyn节作为动态链接的重要组成部分,确保了程序能够正确引用其他模块中的数据符号,是现代动态链接机制的核心之一。
2025-12-10 09:07:29
253
原创 详解ELF文件(十二).rela.data节
rela.data节是ELF(Executable and Linkable Format)文件格式中的一个重要组成部分,属于重定位表的一种。.rela.data节包含对.data节中数据的重定位信息。.rela.data节作为链接过程中的重要组成部分,确保了程序中全局变量和静态变量能够正确地引用其他模块中的符号,是构建复杂程序不可或缺的一部分。在这个例子中,ptr_to_external的初始化需要在链接时进行重定位,因为external_var的地址只有在链接时才能确定。
2025-12-09 09:03:41
256
原创 详解ELF文件(十一).rel.data节
rel.data节是ELF文件中用于处理数据段重定位的重要节区。它记录了.data节中需要在链接时修正的地址引用,帮助链接器生成正确的可执行文件。理解.rel.data节的结构和作用对于程序链接、调试和安全分析都具有重要意义。通过重定位机制,多个目标文件可以正确地链接在一起,形成完整的可执行程序。这是现代链接器和加载器工作的基础,也是程序模块化设计的关键支撑技术。
2025-12-09 09:03:03
854
原创 详解ELF文件(十).shstrtab节
shstrtab节是ELF文件中存储节区名称字符串的关键节区,它通过索引机制与节区头表紧密关联。通过.shstrtab节,各种工具能够将节区索引转换为可读的节区名称,大大提高了ELF文件的可读性和可分析性。理解.shstrtab节的结构和作用对于程序分析、调试和安全研究都具有重要意义。它是连接机器可读的索引和人类可读的名称的重要桥梁,使得ELF文件的结构更加清晰和易于理解。
2025-12-08 09:12:25
519
原创 详解ELF文件(九).symtab节
symtab节是ELF文件中存储符号信息的关键节区,它为链接器、调试器和分析工具提供了程序符号的详细信息。通过符号表,各种工具能够理解程序的结构,进行符号解析、地址重定位和调试等工作。理解.symtab节的结构和作用对于程序开发、调试和安全分析都具有重要意义。它是连接高级语言代码和机器代码的重要桥梁,使得程序的构建、执行和维护成为可能。
2025-12-08 09:10:49
1215
原创 详解ELF文件(八).bss节
bss节是ELF文件中一个重要的优化机制,专门用于存储未初始化的全局变量和静态变量。它通过不占用实际文件空间的方式显著减小了可执行文件的大小,并通过操作系统自动清零的机制确保了数据的安全性和可预测性。理解.bss节的工作原理对于程序优化、内存管理和系统编程都具有重要意义。它是现代操作系统内存管理机制的重要组成部分,与.text节、.data节和.rodata节共同构成了程序的完整内存映像。
2025-12-05 09:25:31
970
原创 详解ELF文件(七).data节
data节是ELF文件中用于存储已初始化全局变量和静态变量的重要节区。它与.text节、.rodata节和.bss节共同构成了程序的内存映像。理解.data节的结构和作用对于程序分析、调试和优化都具有重要意义。通过将已初始化的数据存储在.data节中,程序能够在启动时获得正确的初始值,并在运行过程中修改这些数据。这种设计既保证了程序的正确性,又提供了运行时的灵活性。
2025-12-05 09:24:24
565
原创 详解ELF文件(六).rotdata节
rodata节是ELF文件中用于存储只读数据的重要节区。它保护程序中的常量数据不被意外修改,提高程序的安全性和稳定性。通过将只读数据与可读写数据分离,操作系统可以为不同的数据设置适当的内存保护属性,这是现代程序安全机制的重要组成部分。理解.rodata节的结构和作用对于程序分析、调试和安全研究都具有重要意义。它是程序数据组织的重要组成部分,与.text、.data、.bss等节区共同构成了完整的程序内存映像。
2025-12-04 09:29:00
586
原创 详解ELF文件(五).text节
text节是ELF文件的核心组成部分,它存储了程序的可执行机器代码。其只读可执行的属性不仅保证了程序的正确执行,还提供了重要的安全保护机制。理解.text节的结构和特性对于程序分析、调试、优化和安全研究都具有重要意义。通过.text节,我们可以深入了解程序的内部工作原理,进行逆向工程分析,或者检测潜在的安全漏洞。它是连接高级编程语言和底层机器指令的重要桥梁。
2025-12-04 09:28:02
783
原创 详解ELF文件(四)节区
节区是ELF文件组织数据的基本单位,不同类型的节区承载着程序的不同信息。理解节区的结构和作用对于程序分析、调试和优化具有重要意义。通过节区头表,工具可以准确地解析ELF文件的内部结构,为链接、调试和执行提供必要的信息。
2025-12-03 09:53:21
505
原创 详解ELF文件(三)程序头表
程序头表是ELF文件执行视图的核心组成部分,它描述了如何将文件中的段加载到内存中。通过程序头表,操作系统加载器能够正确地将程序映射到进程的地址空间中,为程序的执行做好准备。理解程序头表的结构和作用对于深入理解程序加载机制和系统底层工作原理非常重要。
2025-12-03 09:52:38
1263
原创 详解ELF文件(二)ELF文件头部
ELF 文件头是整个 ELF 文件的"身份证"和"目录",它定义了文件的基本属性、目标架构、入口地址以及指向其他重要数据结构的指针。通过读取 ELF 文件头,系统可以确定如何正确地处理这个文件。文件身份验证- 通过魔数确认这是一个 ELF 文件架构兼容性- 确定目标平台和字节序处理指引- 提供程序入口点和关键数据结构位置结构信息- 描述程序头表和节头表的数量和大小通过这些信息,操作系统可以正确加载和执行程序,链接器可以正确链接目标文件,调试器可以正确解析符号信息。
2025-12-02 09:51:24
650
原创 详解ELF文件(一)ELF文件基础
平台无关性 - 可以适配不同的处理器架构可扩展性 - 支持添加新的段类型和节区类型双重视图 - 同时满足链接和执行的需求广泛应用 - 成为Linux和其他类Unix系统的标准可执行文件格式通过深入了解ELF文件格式,开发者可以更好地理解程序的编译、链接和执行过程,有助于进行程序调试、性能优化和安全分析等工作。
2025-12-02 09:50:44
742
原创 详解PE文件(二十五):节数据
节数据是PE(Portable Executable)文件中真正存储内容的部分,包括代码、数据、资源等。每个节数据块对应节表中的一个节表项,包含了具有相同属性的数据。节数据是PE文件中真正存储程序内容的部分,不同节根据其属性存储不同类型的数据。理解节数据的组织方式、对齐规则和访问方法对于分析和操作PE文件至关重要。通过节表可以定位到各个节的数据,而节的属性决定了这些数据在内存中的访问权限。
2025-12-01 09:21:31
739
原创 详解PE文件(二十四):节表
节表(Section Table)是PE(Portable Executable)文件中的一个重要组成部分,它紧跟在可选头(Optional Header)之后。节表是一个由IMAGE_SECTION_HEADER结构组成的数组,每个结构描述PE文件中的一个节(Section)。节的数量由文件头(IMAGE_FILE_HEADER中的NumberOfSections字段指定。节表是PE文件中描述各节信息的重要数据结构,它定义了每个节在文件和内存中的位置、大小和属性。
2025-12-01 09:21:04
861
原创 详解PE文件(二十三):保留
PE文件中的"保留"字段是数据目录数组中的最后一个条目,它被保留供将来使用。根据规范,这个字段应该被设置为零,并且当前没有被任何已知的Windows技术使用。它的存在主要是为了保持PE文件格式的标准化和未来扩展性。在处理PE文件时,这个字段通常被忽略,但验证它是否为零是一个好的实践,以确保文件符合规范。
2025-11-28 09:29:05
517
原创 详解PE文件(二十二):CLR运行时头
CLR运行时头(也称为CLI头或COM+运行时头)是PE文件中Data Directory的第15个条目(索引为14),它指向一个名为IMAGE_COR20_HEADER的结构体。这个结构体包含了运行.NET程序所需的所有元数据和相关信息。DWORD cb;// 结构体大小// 主版本号// 次版本号// 元数据目录// 标志位union {// 入口点的元数据token// 入口点的相对虚拟地址(RVA)// 资源目录// 强名称签名// 代码管理器表// 虚函数表修复。
2025-11-28 09:28:39
411
原创 详解PE文件(二十一):延迟导入表
延迟导入表(Delay Import Table)是Windows PE文件格式中的一种特殊导入机制。它允许程序在运行时按需加载DLL,而不是在程序启动时加载所有依赖的DLL。这种机制可以提高程序启动速度,因为只有在实际调用DLL中的函数时,才会加载该DLL。
2025-11-27 09:09:26
362
原创 详解PE文件(二十):导入地址表
导入地址表(IAT)是PE文件中用于支持动态链接的关键数据结构,位于Optional Header数据目录的第13个条目。它由IMAGE_THUNK_DATA数组组成,每个元素对应一个导入函数。结构简单:使用联合体表示不同类型的导入信息动态填充:加载时由加载器填写实际函数地址双重用途:加载前存储函数信息,加载后存储函数地址支持两种导入方式:按名称导入和按序号导入理解IAT的结构和工作原理对于逆向工程、恶意软件分析、程序调试等任务非常重要。
2025-11-27 09:08:57
1246
原创 详解PE文件(十九):绑定配置表
绑定导入表是PE文件中用于优化模块加载性能的数据结构,位于Optional Header数据目录的第12个条目。它通过预计算导入模块的地址来加速程序启动过程。性能优化:提高程序启动速度结构简单:由描述符和模块名称组成时间戳验证:确保绑定的有效性兼容性考虑:在绑定失效时回退到正常流程虽然绑定导入表在早期Windows系统中发挥了重要作用,但在现代Windows系统中,由于ASLR等安全机制的普及,其使用已经减少。了解绑定导入表有助于深入理解PE文件结构和Windows加载机制。
2025-11-26 09:09:48
771
原创 详解PE文件(十八):加载配置表
加载配置表是PE文件中重要的数据结构,主要用于提供加载和运行时的安全保护机制。它位于Optional Header数据目录的第11个条目,包含大量与安全、内存管理相关的字段。安全保护: 提供缓冲区溢出保护、SEH保护、控制流保护等内存管理: 优化内存分配和释放行为兼容性支持: 通过版本控制支持不同版本的Windows系统随着Windows系统的演进,加载配置表不断扩展以支持新的安全特性,成为现代Windows程序安全机制的重要组成部分。
2025-11-26 09:09:13
992
原创 详解PE文件(十七):TLS表
/ TLS回调函数示例printf("新线程创建\n");break;printf("线程即将退出\n");break;// 在PE文件中注册TLS回调#pragmadata_seg// TLS回调函数示例 void NTAPI TlsCallback(PVOID DllHandle , DWORD Reason , PVOID Reserved) {case DLL_THREAD_ATTACH : printf("新线程创建\n");break;
2025-11-25 10:02:37
719
原创 详解PE文件(十六):全局指针
全局指针是PE文件Optional Header中数据目录的一个条目,主要用于RISC架构(如Alpha AXP)中优化全局数据访问。它通过专用寄存器提供了一种高效的全局变量访问机制。在现代x86/x64架构中很少使用,但在处理特定架构的程序时仍需了解其作用。全局指针位于数据目录的第9个条目(索引8),包含RVA和大小字段,其中RVA指向全局指针寄存器的初始化值。虽然在现代架构中使用较少,但了解全局指针对于深入理解PE文件格式和跨平台开发仍然很有价值。
2025-11-25 10:02:06
754
原创 详解PE文件(十五):版权信息
PE文件中的版权信息是版本资源的一部分,存储在资源节的[StringFileInfo]结构中,以字段表示。它在软件法律保护、来源识别和品牌展示方面发挥重要作用。通过Windows API或专用工具可以访问和修改这些信息,但修改时需注意法律合规性。
2025-11-24 09:29:50
621
原创 详解PE文件(十四):调试数据
调试数据是PE文件格式中用于支持程序调试的信息集合。它包含了程序的符号信息、源代码行号、变量类型等,使得调试器能够将机器代码与源代码关联起来,方便开发者进行调试。调试数据是PE文件格式中用于支持程序调试的重要信息。通过IMAGE_DEBUG_DIRECTORY结构数组,PE文件可以包含多种类型的调试信息,如COFF、CodeView等。调试数据使得调试器能够将机器代码与源代码关联,提供符号信息、行号信息等,极大地提高了程序调试的效率。理解调试数据的结构和工作原理对于程序开发、调试和逆向工程具有重要意义。
2025-11-24 09:29:22
761
原创 详解PE文件(十三):基址重定位表
基址重定位表是PE文件格式中用于支持动态基址重定位的数据结构。当Windows加载器无法将PE文件加载到其首选基地址(ImageBase)时,就需要进行基址重定位。重定位表记录了所有需要修正的地址偏移量,使得程序能够在不同的内存地址正确运行。基址重定位表是PE文件格式中用于支持动态基址重定位的重要数据结构。当PE文件无法加载到其首选基地址时,重定位表提供了需要修正的地址信息。
2025-11-21 11:16:37
479
原创 详解PE文件(十二):证书表
证书表,也称为安全目录(Security Directory),是PE文件格式中用于存储Authenticode数字签名的数据结构。它使得Windows能够验证可执行文件的完整性和来源,确保文件未被篡改并且来自可信的发布者。证书表是PE文件格式中用于存储数字签名信息的重要结构。它通过WIN_CERTIFICATE结构存储PKCS#7签名数据,使得Windows能够验证可执行文件的完整性和来源。理解证书表的结构和工作原理对于软件安全、恶意软件分析和数字签名验证等工作具有重要意义。
2025-11-21 11:16:10
331
原创 详解PE文件(十一):异常表
异常表是PE文件格式中用于支持表基异常处理(table-based exception handling)的数据结构。与x86架构使用基于堆栈的动态异常处理不同,x64和IA-64架构使用静态的表基异常处理机制。异常表包含了程序中所有可能引发异常的函数信息,以及如何处理这些异常的详细描述。异常表是64位PE文件中用于支持表基异常处理的重要数据结构。它通过IMAGE_RUNTIME_FUNCTION_ENTRY结构描述每个函数的边界和展开信息,通过UNWIND_INFO结构描述如何正确展开函数调用栈。
2025-11-20 09:12:29
637
原创 详解PE文件(十):资源表
资源表是PE文件格式中用于存储固定不变数据的结构,这些数据包括图标、位图、对话框、字符串、菜单、光标、版本信息等。资源表采用树形结构组织,使得程序可以按需加载和使用这些资源。资源表是PE文件格式中用于存储和管理各种资源的重要结构。它采用三层树形结构组织,使得程序能够在运行时方便地查找和使用图标、位图、对话框、字符串等资源。理解资源表的结构和工作原理对于程序分析、逆向工程、资源编辑等工作具有重要意义。通过资源表,Windows程序实现了界面元素与代码的分离,支持多语言本地化,并提供了灵活的资源管理机制。
2025-11-20 09:12:10
661
原创 详解PE文件(九):导出表
导出表是PE文件格式中用于记录模块(通常是DLL)导出的函数、变量和其他符号的数据结构。它允许其他模块访问当前模块公开的符号,实现模块间的接口调用。导出表通常位于DLL文件中,记录了可供外部调用的函数名称、序号及其对应的地址。导出表是PE文件格式中一个关键的组成部分,它使得DLL能够向外部程序提供功能接口。通过导出表,程序可以按名称或序号调用DLL中的函数,实现模块化设计和代码重用。理解导出表的结构和工作原理对于程序分析、逆向工程和系统编程等工作具有重要意义。
2025-11-19 09:15:27
1838
原创 详解PE文件(八):导入表
导入表是PE文件格式中用于记录程序依赖外部函数的信息的数据结构。当程序需要调用外部DLL中的函数时,这些函数的名称和所在DLL的信息就存储在导入表中。Windows加载器在加载程序时会根据导入表中的信息加载相应的DLL,并将函数的实际地址填入程序的导入地址表中。导入表是PE文件格式中一个关键的组成部分,它使得Windows程序能够使用外部DLL提供的功能。通过导入表,程序可以动态链接到所需的库函数,实现模块化设计和代码重用。理解导入表的结构和工作原理对于程序分析、逆向工程和恶意软件分析等工作具有重要意义。
2025-11-19 09:14:46
513
CMake Cookbook中文版-自动化编译系统的全面指南及应用
2025-01-15
银河麒麟高级服务器操作系统中的RPM包构建流程和技术详解
2025-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅