人工精选SQLite数据库逆向分析
大家好,欢迎来到本期关于 SQLite 数据库逆向分析的深度导读。在当前的软件安全研究与漏洞挖掘领域,数据库文件的完整性与隐私性往往是被忽视的薄弱环节。尤其是像 SQLite 这样轻量级、广泛嵌入于各类桌面及移动应用中的关系型数据库,其数据结构清晰、无服务器依赖的特性,既方便了开发者,也为逆向工程师
会员 · 按档位
游客按标价购买,不享受上表折扣。
支付成功后自动发放网盘链接,链接失效可找客服免费补
大家好,欢迎来到本期关于 SQLite 数据库逆向分析的深度导读。在当前的软件安全研究与漏洞挖掘领域,数据库文件的完整性与隐私性往往是被忽视的薄弱环节。尤其是像 SQLite 这样轻量级、广泛嵌入于各类桌面及移动应用中的关系型数据库,其数据结构清晰、无服务器依赖的特性,既方便了开发者,也为逆向工程师提供了天然的突破口。本课程正是基于这一背景,系统性地拆解了从环境搭建到核心函数拦截的全套逆向流程。
课程伊始,我们并未直接陷入枯燥的理论,而是通过“课前预习”环节夯实基础。从最简单的 Main 函数结构入手,逐步深入至外部调用、内部调用以及数据截获的技术细节。这一部分至关重要,它帮助学员建立起对程序执行流的直观认知,特别是关于“软件补丁制作”与“为现有软件开发控制界面”的内容,旨在让读者明白,逆向不仅仅是分析,更是一种主动干预与控制的能力。同时,Visual Studio 2019 的安装配置也为后续的实战编码扫清了环境障碍。
进入核心的 SQLite 逆向模块后,课程首先对 SQLite 源码架构进行了梳理,并指导如何使用命令行编译源码,这有助于理解库的内部逻辑。随后,通过编写一个简单的数据库操作程序,我们将抽象的概念具象化。真正的重头戏在于如何获取并定位软件访问 SQLite 数据库的关键句柄。课程详细演示了从内存中读出 sqlite3 句柄的过程,这是实现后续数据读取或注入的前提条件。在此基础上,我们进一步深入,利用 IDA Pro 等静态分析工具,精准定位到软件中调用的 `sqlite3_exec` 函数。通过对该函数的识别与验证,我们掌握了通过分析 API 调用点来追踪数据流向的核心技巧。
此外,课程特别设置了一个针对易语言开发软件的插播专题。鉴于国内大量中小软件使用易语言编写,其在参数传递、命名约定以及stdcall 函数调用转换上存在特殊性,导致常规的逆向注入手段往往失效。课程针对性地解决了“含窗口 DLL 注入”难题,并深入剖析了易语言中回调函数的样板特征。这一部分极具实战价值,填补了通用逆向教程在特定语言生态上的空白。
总体而言,本课程不仅涵盖了通用的逆向分析方法,更结合具体案例,提供了从理论到代码实现的完整闭环。无论你是希望提升二进制安全分析能力的开发者,还是对软件数据保护机制感兴趣的-security 研究员,这门课都能为你构建起一套扎实的 SQLite 逆向知识体系,帮助你在面对复杂的数据库型软件时,能够从容地进行数据提取、逻辑篡改及安全审计。让我们一起揭开 SQLite 数据库的神秘面纱,掌握底层数据的控制权。
课程目录
课程目录40 集
- 1-1 [课程总览] 课程总览 (05:11).mp4
- 2-1 [课前预习] 最简单的Main函数 (02:49).mp4
- 2-2 [课前预习] 从软件外部调用函数 (03:13).mp4
- 2-3 [课前预习] 从软件内部调用函数 (06:52).mp4
- 2-4 [课前预习] 截获函数中的数据 (07:04).mp4
- 2-5 [课前预习] 软件补丁的制作 (03:08).mp4
- 2-6 [课前预习] 为现有的软件开发一个控制界面 (12:06).mp4
- 2-7 [课前预习] Visual Studio 2019安装 (02:36).mp4
- 3-1 [SQLite数据库逆向分析] SQLite数据库源码介绍 (04:00).mp4
- 3-2 [SQLite数据库逆向分析] SQLite命令行编译 (09:58).mp4
- 3-3 [SQLite数据库逆向分析] 使用VS编写一个简单的数据库操作程序 (07:03).mp4
- 3-4 [SQLite数据库逆向分析] 获取软件访问SQLite数据库的句柄 (16:48).mp4
- 3-5 [SQLite数据库逆向分析] 从软件中读出SQLite数据库句柄 (07:49).mp4
- 3-6 [SQLite数据库逆向分析] 从软件中找到sqlite3_exec函数 (10:10).mp4
- 3-7 [SQLite数据库逆向分析] 验证从软件中找到sqlite3_exec函数 (07:36).mp4
- 3-8 [SQLite数据库逆向分析] 使用IDA进一步分析软件中的函数 (08:15).mp4
- 4-1 [插播:易语言] 解决注入含窗口的易语言DLL的问题 (09:49).mp4
- 4-2 [插播:易语言] 易语言中的参数传递和命名约定分析(1) (17:52).mp4
- 4-3 [插播:易语言] 易语言中的参数传递和命名约定分析(2) (06:17).mp4
- 4-4 [插播:易语言] 寻找SQLite数据库中回调函数的样板 (12:19).mp4
- 4-5 [插播:易语言] 如何将stdcall函数调用转换为cdecl函数调用 (10:30).mp4
- 4-6 [插播:易语言] 如何使用易语言构造cdecl类型函数(1) (13:31).mp4
- 4-7 [插播:易语言] 如何使用易语言构造cdecl类型函数(2) (13:22).mp4
- 4-8 [插播:易语言] 如何使用易语言构造cdecl类型函数(3) (08:54).mp4
- 4-9 [插播:易语言] 如何使用易语言构造cdecl类型函数(4) (11:21).mp4
- 4-10 [插播:易语言] 使用易语言调用软件中的sqlite3_exec函数(1) (11:31).mp4
- 4-11 [插播:易语言] 使用易语言调用软件中的sqlite3_exec函数(2) (16:27).mp4
- 5-1 [逆向分析&正向实现] 使用C语言调用软件中的sqlite3_exec函数 (13:49).mp4
- 5-2 [逆向分析&正向实现] 补充:将易语言函数“改造”成cdecl类型函数 (15:15).mp4
- 5-3 [逆向分析&正向实现] SQLite数据库在线备份 (09:51).mp4
- 5-4 [逆向分析&正向实现] 用函数指针调用SQLite数据库函数 (10:07).mp4
- 5-5 [逆向分析&正向实现] 如何在内存中构造一个函数(1) (16:57).mp4
- 5-6 [逆向分析&正向实现] 如何在内存中构造一个函数(2) (20:58).mp4
- 5-7 [逆向分析&正向实现] 如何判断软件中的SQLite数据库版本 (09:12).mp4
- 5-8 [逆向分析&正向实现] 如何组装老版本SQLite数据库源码 (05:59).mp4
- 5-9 [逆向分析&正向实现] 准备从正在运行的软件中备份SQLite数据库(1) (08:08).mp4
- 5-10 [逆向分析&正向实现] 准备从正在运行的软件中备份SQLite数据库(2) (13:41).mp4
- 5-11 [逆向分析&正向实现] 如何在软件中定位SQLite数据库中的函数(1) (11:37).mp4
- 5-12 [逆向分析&正向实现] 如何在软件中定位SQLite数据库中的函数(2) (18:41).mp4
- 5-13 [逆向分析&正向实现] 如何在软件中定位SQLite数据库中的函数(3) (11:31).mp4





