自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(0)
  • 资源 (139)
  • 收藏
  • 关注

空空如也

逆向工程核心原理图书-示例样本(无病毒)

逆向工程核心原理图书作者-李承远先生为了大家能学好反调试,给读者们提供了示例样本(无病毒)-鉴于其他杀软的误报,在调试示例样本时建议最好把Anti-Virus等其他杀毒软件”实时监控”功能暂时关闭,在调试学习结束后,再开启“实时监控”。

2019-07-25

《加密与解密(第4版)》PDF

《加密与解密(第4版)》以加密与解密为切入点,讲述了软件安全领域的基础知识和技能,如调试技能、逆向分析、加密保护、外壳开发、虚拟机设计等。这些知识彼此联系,读者在掌握这些内容之后,很容易就能在漏洞分析、安全编程、病毒分析、软件保护等领域进行扩展。从就业的角度来说,掌握加密与解密的相关技术,可以提高自身的竞争能力;从个人成长的角度来说,研究软件安全技术有助于掌握一些系统底层知识,是提升职业技能的重要途径。作为一名合格的程序员,除了掌握需求分析、设计模式等外,如果能掌握一些系统底层知识、熟悉整个系统的底层结构,在工作中必将获益良多。 《加密与解密(第4版)》适合安全研究人员、软件调试人员、程序开发人员阅读,也可以作为高校信息安全相关专业的辅助教材。

2019-04-15

rtl230-jdk7-akptool2.3.4

AndroidKiller编译卡死 AndroidKiller出现编译失败,无法进行下一步签名 1.更换AndroidKiller的rtl230.bpl文件 2.安装JDK7,并配置AndroidKiller使用JDK7 3.安装最新的apkTool(Current Version: 2.3.4)按要求安装完后,进行配置到AndroidKiller

2018-12-25

逆向工程核心原理(PDF)与配套源码及工具

逆向工程核心原理(PDF)完整目录版与配套源码及工具 第一部分 代码逆向技术基础 第1章 关于逆向工程 2 1.1 逆向工程 2 1.2 代码逆向工程 2 1.2.1 逆向分析法 2 1.2.2 源代码、十六进制代码、汇编代码 4 1.2.3 “打补丁”与“破解” 5 1.3 代码逆向准备 5 1.3.1 目标 5 1.3.2 激情 6 1.3.3 谷歌 6 1.4 学习逆向分析技术的禁忌 6 1.4.1 贪心 6 1.4.2 急躁 7 1.5 逆向分析技术的乐趣 7 第2章 逆向分析Hello World!程序 8 2.1 Hello World!程序 8 2.2 调试HelloWorld.exe程序 9 2.2.1 调试目标 9 2.2.2 开始调试 9 2.2.3 入口点 10 2.2.4 跟踪40270C函数 10 2.2.5 跟踪40104F跳转语句 12 2.2.6 查找main()函数 12 2.3 进一步熟悉调试器 14 2.3.1 调试器指令 14 2.3.2 “大本营” 15 2.3.3 设置“大本营”的四种方法 15 2.4 快速查找指定代码的四种方法 17 2.4.1 代码执行法 18 2.4.2 字符串检索法 19 2.4.3 API检索法(1):在调用代码中设置断点 20 2.4.4 API检索法(2):在API代码中设置断点 21 2.5 使用“打补丁”方式修改“Hello World!”字符串 23 2.5.1 “打补丁” 23 2.5.2 修改字符串的两种方法 24 2.6 小结 28 第3章 小端序标记法 31 3.1 字节序 31 3.1.1 大端序与小端序 32 3.1.2 在OllyDbg中查看小端序 32 第4章 IA-32寄存器基本讲解 34 4.1 什么是CPU寄存器 34 4.2 IA-32寄存器 34 4.3 小结 40 第5章 栈 41 5.1 栈 41 5.1.1 栈的特征 41 5.1.2 栈操作示例 41 第6章 分析abex’ crackme#1 44 6.1 abex’ crackme #1 44 6.1.1 开始调试 45 6.1.2 分析代码 45 6.2 破解 47 6.3 将参数压入栈 47 6.4 小结 48 第7章 栈帧 49 7.1 栈帧 49 7.2 调试示例:stackframe.exe 49 7.2.1 StackFrame.cpp 50 7.2.2 开始执行main()函数&生成栈帧 51 7.2.3 设置局部变量 52 7.2.4 add()函数参数传递与调用 53 7.2.5 开始执行add()函数&生成栈帧 54 7.2.6 设置add()函数的局部变量(x, y) 55 7.2.7 ADD运算 55 7.2.8 删除函数add()的栈帧&函数执行完毕(返回) 56 7.2.9 从栈中删除函数add()的参数(整理栈) 57 7.2.10 调用printf()函数 58 7.2.11 设置返回值 58 7.2.12 删除栈帧&main;()函数终止 58 7.3 设置OllyDbg选项 59 7.3.1 Disasm选项 59 7.3.2 Analysis1选项 60 7.4 小结 61 第8章 abex’ crackme #2 62 8.1 运行abex’ crackme #2 62 8.2 Visual Basic文件的特征 63 8.2.1 VB专用引擎 63 8.2.2 本地代码和伪代码 63 8.2.3 事件处理程序 63 8.2.4 未文档化的结构体 63 8.3 开始调试 63 8.3.1 间接调用 64 8.3.2 RT_MainStruct结构体 64 8.3.3 ThunRTMain()函数 65 8.4 分析crackme 65 8.4.1 检索字符串 65 8.4.2 查找字符串地址 66 8.4.3 生成Serial的算法 68 8.4.4 预测代码 69 8.4.5 读取Name字符串的代码 69 8.4.6 加密循环 70 8.4.7 加密方法 70 8.5 小结 72 第9章 Process Explorer—— 最优秀的进程管理工具 74 9.1 Process Explorer 74 9.2 具体有哪些优点呢 75 9.3 sysinternals 75 第10章 函数调用约定 76 10.1 函数调用约定 76 10.1.1 cdecl 76 10.1.2 stdcall 77 10.1.3 fastcall 78 第11章 视频讲座 79 11.1 运行 79 11.2 分析 79 11.2.1 目标(1):去除消息框 79 11.2.2 打补丁(1):去除消息框 81 11.2.3 目标(2):查找注册码 83 11.3 小结 85 第12章 究竟应当如何学习代码逆向分析 86 12.1 逆向工程 86 12.1.1 任何学习都应当有目标 86 12.1.2 拥有积极心态 86 12.1.3 要感受其中的乐趣 86 12.1.4 让检索成为日常生活的一部分 87 12.1.5 最重要的是实践 87 12.1.6 请保持平和的心态 87 第二部分 PE文件格式 第13章 PE文件格式 90 13.1 介绍 90 13.2 PE文件格式 90 13.2.1 基本结构 91 13.2.2 VA&RVA; 92 13.3 PE头 92 13.3.1 DOS头 93 13.3.2 DOS存根 94 13.3.3 NT头 94 13.3.4 NT头:文件头 95 13.3.5 NT头:可选头 97 13.3.6 节区头 101 13.4 RVA to RAW 104 13.5 IAT 105 13.5.1 DLL 105 13.5.2 IMAGE_IMPORT_DESCRIPTOR 107 13.5.3 使用notepad.exe练习 108 13.6 EAT 112 13.6.1 IMAGE_EXPORT_DIRECTORY 113 13.6.2 使用kernel32.dll练习 114 13.7 高级PE 116 13.7.1 PEView.exe 116 13.7.2 Patched PE 117 13.8 小结 118 第14章 运行时压缩 121 14.1 数据压缩 121 14.1.1 无损压缩 121 14.1.2 有损压缩 121 14.2 运行时压缩器 122 14.2.1 压缩器 122 14.2.2 保护器 123 14.3 运行时压缩测试 123 第15章 调试UPX压缩的notepad程序 127 15.1 notepad.exe的EP代码 127 15.2 notepad_upx.exe的EP代码 127 15.3 跟踪UPX文件 129 15.3.1 OllyDbg的跟踪命令 129 15.3.2 循环 #1 129 15.3.3 循环 #2 130 15.3.4 循环 #3 131 15.3.5 循环 #4 131 15.4 快速查找UPX OEP的方法 132 15.4.1 在POPAD指令后的JMP指令处设置断点 132 15.4.2 在栈中设置硬件断点 133 15.5 小结 133 第16章 基址重定位表 135 16.1 PE重定位 135 16.1.1 DLL/SYS 135 16.1.2 EXE 136 16.2 PE重定位时执行的操作 136 16.3 PE重定位操作原理 138 16.3.1 基址重定位表 138 16.3.2 IMAGE_BASE_RELOCATION结构体 139 16.3.3 基址重定位表的分析方法 139 16.3.4 练习 141 第17章 从可执行文件中删除.reloc节区 142 17.1 .reloc节区 142 17.2 reloc.exe 142 17.2.1 删除.reloc节区头 142 17.2.2 删除.reloc节区 143 17.2.3 修改IMAGE_FILE_HEADER 143 17.2.4 修改IMAGE_OPTIONAL_HEADER 144 17.3 小结 145 第18章 UPack PE文件头详细分析 146 18.1 UPack说明 146 18.2 使用UPack压缩notepad.exe 146 18.3 使用Stud_PE工具 148 18.4 比较PE文件头 148 18.4.1 原notepad.exe的PE文件头 149 18.4.2 notepad_upack.exe运行时压缩的PE文件头 149 18.5 分析UPack的PE文件头 150 18.5.1 重叠文件头 150 18.5.2 IMAGE_FILE_HEADER.SizeOfOptionalHeader 150 18.5.3 IMAGE_OPTIONAL_HEADER.NumberOf-RvaAndSizes 152 18.5.4 IMAGE_SECTION_HEADER 153 18.5.5 重叠节区 155 18.5.6 RVA to RAW 156 18.5.7 导入表(IMAGE_IMPORT_DESCRIPTOR array) 158 18.5.8 导入地址表 160 18.6 小结 161 第19章 UPack调试 ? 查找OEP 162 19.1 OllyDbg运行错误 162 19.2 解码循环 163 19.3 设置IAT 165 19.4 小结 166 第20章 “内嵌补丁”练习 167 20.1 内嵌补丁 167 20.2 练习:Patchme 168 20.3 调试:查看代码流 168 20.4 代码结构 172 20.5 “内嵌补丁”练习 173 20.5.1 补丁代码要设置在何处呢 173 20.5.2 制作补丁代码 175 20.5.3 执行补丁代码 176 20.5.4 结果确认 177 第三部分 DLL注入 第21章 Windows消息钩取 180 21.1 钩子 180 21.2 消息钩子 180 21.3 SetWindowsHookEx() 181 21.4 键盘消息钩取练习 182 21.4.1 练习示例HookMain.exe 182 21.4.2 分析源代码 185 21.5 调试练习 187 21.5.1 调试HookMain.exe 188 21.5.2 调试Notepad.exe进程内的KeyHook.dll 190 21.6 小结 192 第22章 恶意键盘记录器 194 22.1 恶意键盘记录器的目标 194 22.1.1 在线游戏 194 22.1.2 网上银行 194 22.1.3 商业机密泄露 194 22.2 键盘记录器的种类与发展趋势 195 22.3 防范恶意键盘记录器 195 22.4 个人信息 195 第23章 DLL注入 197 23.1 DLL注入 197 23.2 DLL注入示例 198 23.2.1 改善功能与修复Bug 198 23.2.2 消息钩取 198 23.2.3 API钩取 198 23.2.4 其他应用程序 199 23.2.5 恶意代码 199 23.3 DLL注入的实现方法 199 23.4 CreateRemoteThread() 199 23.4.1 练习示例myhack.dll 199 23.4.2 分析示例源代码 203 23.4.3 调试方法 208 23.5 AppInit_DLLs 210 23.5.1 分析示例源码 211 23.5.2 练习示例myhack2.dll 212 23.6 SetWindowsHookEx() 214 23.7 小结 214 第24章 DLL卸载 216 24.1 DLL卸载的工作原理 216 24.2 实现DLL卸载 216 24.2.1 获取进程中加载的DLL信息 219 24.2.2 获取目标进程的句柄 220 24.2.3 获取FreeLibrary() API地址 220 24.2.4 在目标进程中运行线程 220 24.3 DLL卸载练习 220 24.3.1 复制文件及运行notepad.exe 220 24.3.2 注入myhack.dll 221 24.3.3 卸载myhack.dll 222 第25章 通过修改PE加载DLL 224 25.1 练习文件 224 25.1.1 TextView.exe 224 25.1.2 TextView_patched.exe 225 25.2 源代码 - myhack3.cpp 227 25.2.1 DllMain() 227 25.2.2 DownloadURL() 228 25.2.3 DropFile() 229 25.2.4 dummy() 230 25.3 修改TextView.exe文件的准备工作 231 25.3.1 修改思路 231 25.3.2 查看IDT是否有足够空间 231 25.3.3 移动IDT 233 25.4 修改TextView.exe 235 25.4.1 修改导入表的RVA值 235 25.4.2 删除绑定导入表 235 25.4.3 创建新IDT 235 25.4.4 设置Name、INT、IAT 236 25.4.5 修改IAT节区的属性值 238 25.5 检测验证 240 25.6 小结 241 第26章 PE Tools 242 26.1 PE Tools 242 26.1.1 进程内存转储 243 26.1.2 PE编辑器 245 26.2 小结 245 第27章 代码注入 247 27.1 代码注入 247 27.2 DLL注入与代码注入 247 27.3 练习示例 249 27.3.1 运行notepad.exe 249 27.3.2 运行CodeInjection.exe 249 27.3.3 弹出消息框 250 27.4 CodeInjection.cpp 250 27.4.1 main()函数 251 27.4.2 ThreadProc()函数 251 27.4.3 InjectCode()函数 254 27.5 代码注入调试练习 256 27.5.1 调试notepad.exe 256 27.5.2 设置OllyDbg选项 256 27.5.3 运行CodeInjection.exe 257 27.5.4 线程开始代码 258 27.6 小结 259 第28章 使用汇编语言编写注入代码 260 28.1 目标 260 28.2 汇编编程 260 28.3 OllyDbg的汇编命令 260 28.3.1 编写ThreadProc()函数 262 28.3.2 保存文件 265 28.4 编写代码注入程序 266 28.4.1 获取ThreadProc()函数的二进制代码 266 28.4.2 CodeInjection2.cpp 267 28.5 调试练习 270 28.5.1 调试notepad.exe 270 28.5.2 设置OllyDbg选项 270 28.5.3 运行CodeInjection2.exe 271 28.5.4 线程起始代码 272 28.6 详细分析 272 28.6.1 生成栈帧 272 28.6.2 THREAD_PARAM结构体指针 273 28.6.3 “User32.dll”字符串 274 28.6.4 压入“user32.dll”字符串参数 274 28.6.5 调用LoadLibraryA(“user32.dll”) 275 28.6.6 “MessageBoxA”字符串 276 28.6.7 调用GetProcAddress(hMod,“MessageBoxA”) 276 28.6.8 压入MessageBoxA()函数的参数 1 - MB_OK 277 28.6.9 压入MessageBoxA()函数的参数 2 -“ReverseCore” 277 28.6.10 压入MessageBoxA()函数的参数 3 -“www.reversecore.com” 278 28.6.11 压入MessageBoxA()函数的参数 4 -NULL 279 28.6.12 调用MessageBoxA() 279 28.6.13 设置ThreadProc()函数的返回值 280 28.6.14 删除栈帧及函数返回 280 28.7 小结 280 第四部分 API钩取 第29章 API钩取:逆向分析之“花” 282 29.1 钩取 282 29.2 API是什么 282 29.3 API钩取 283 29.3.1 正常调用API 283 29.3.2 钩取API调用 284 29.4 技术图表 284 29.4.1 方法对象(是什么) 285 29.4.2 位置(何处) 285 29.4.3 技术(如何) 286 29.4.4 API 286 第30章 记事本WriteFile() API钩取 288 30.1 技术图表 - 调试技术 288 30.2 关于调试器的说明 289 30.2.1 术语 289 30.2.2 调试器功能 289 30.2.3 调试器的工作原理 289 30.2.4 调试事件 289 30.3 调试技术流程 290 30.4 练习 291 30.5 工作原理 293 30.5.1 栈 293 30.5.2 执行流 295 30.5.3 “脱钩”&“钩子” 295 30.6 源代码分析 295 30.6.1 main() 296 30.6.2 DebugLoop() 296 30.6.3 EXIT_PROCESS_DEBUG_EVENT 298 30.6.4 CREATE_PROCESS_DEBUG_EVENT-OnCreateProcess-DebugEvent() 298 30.6.5 EXCEPTION_DEBUG_EVENT-OnException-DebugEvent() 300 第31章 关于调试器 305 31.1 OllyDbg 305 31.2 IDA Pro 305 31.3 WinDbg 306 第32章 计算器显示中文数字 308 32.1 技术图表 308 32.2 选定目标API 309 32.3 IAT钩取工作原理 312 32.4 练习示例 314 32.5 源代码分析 316 32.5.1 DllMain() 316 32.5.2 MySetWindowTextW() 317 32.5.3 hook_iat() 319 32.6 调试被注入的DLL文件 322 32.6.1 DllMain() 325 32.6.2 hook_iat() 325 32.6.3 MySetWindowTextW() 327 32.7 小结 328 第33章 隐藏进程 329 33.1 技术图表 329 33.2 API代码修改技术的原理 329 33.2.1 钩取之前 330 33.2.2 钩取之后 330 33.3 进程隐藏 332 33.3.1 进程隐藏工作原理 332 33.3.2 相关API 332 33.3.3 隐藏技术的问题 333 33.4 练习 #1(HideProc.exe,stealth.dll) 333 33.4.1 运行notepad.exe、procexp.exe、taskmgr.exe 334 33.4.2 运行HideProc.exe 334 33.4.3 确认stealth.dll注入成功 334 33.4.4 查看notepad.exe进程是否隐藏成功 335 33.4.5 取消notepad.exe进程隐藏 336 33.5 源代码分析 336 33.5.1 HideProc.cpp 336 33.5.2 stealth.cpp 338 33.6 全局API钩取 344 33.6.1 Kernel32.CreateProcess() API 344 33.6.2 Ntdll.ZwResumeThread() API 345 33.7 练习#2(HideProc2.exe,Stealth2.dll) 345 33.7.1 复制stealth2.dll文件到%SYSTEM%文件夹中 345 33.7.2 运行HideProc2.exe -hide 346 33.7.3 运行ProcExp.exe&notepad;.exe 346 33.7.4 运行HideProc2.exe -show 347 33.8 源代码分析 348 33.8.1 HideProc2.cpp 348 33.8.2 stealth2.cpp 348 33.9 利用“热补丁”技术钩取API 350 33.9.1 API代码修改技术的问题 350 33.9.2 “热补丁”(修改7个字节代码) 350 33.10 练习 #3:stealth3.dll 353 33.11 源代码分析 353 33.12 使用“热补丁”API钩取技术时需要考虑的问题 356 33.13 小结 357 第34章 高级全局API钩取:IE连接控制 359 34.1 目标API 359 34.2 IE进程结构 361 34.3 关于全局API钩取的概念 362 34.3.1 常规API钩取 363 34.3.2 全局API钩取 363 34.4 ntdll!ZwResumeThread() API 364 34.5 练习示例:控制IE网络连接 368 34.5.1 运行IE 368 34.5.2 注入DLL 369 34.5.3 创建新选项卡 369 34.5.4 尝试连接网站 370 34.5.5 卸载DLL 371 34.5.6 课外练习 372 34.6 示例源代码 372 34.6.1 DllMain() 372 34.6.2 NewInternetConnectW() 373 34.6.3 NewZwResumeThread() 374 34.7 小结 375 第35章 优秀分析工具的五种标准 376 35.1 工具 376 35.2 代码逆向分析工程师 376 35.3 优秀分析工具的五种标准 376 35.3.1 精简工具数量 377 35.3.2 工具功能简单、使用方便 377 35.3.3 完全掌握各种功能 377 35.3.4 不断升级更新 377 35.3.5 理解工具的核心工作原理 377 35.4 熟练程度的重要性 377 第五部分 64位&Windows;内核6 第36章 64位计算 380 36.1 64位计算环境 380 36.1.1 64位CPU 380 36.1.2 64位OS 381 36.1.3 Win32 API 381 36.1.4 WOW64 381 36.1.5 练习:WOW64Test 384 36.2 编译64位文件 385 36.2.1 Microsoft Windows SDK (Software Development Kit) 386 36.2.2 设置Visual C++ 2010 Express环境 386 第37章 x64处理器 389 37.1 x64中新增或变更的项目 389 37.1.1 64位 389 37.1.2 内存 389 37.1.3 通用寄存器 389 37.1.4 CALL/JMP指令 390 37.1.5 函数调用约定 391 37.1.6 栈 & 栈帧 392 37.2 练习:Stack32.exe & Stack64.exe 392 37.2.1 Stack32.exe 392 37.2.2 Stack64.exe 394 37.3 小结 397 第38章 PE32+ 398 38.1 PE32+(PE+、PE64) 398 38.1.1 IMAGE_NT_HEADERS 398 38.1.2 IMAGE_FILE_HEADER 398 38.1.3 IMAGE_OPTIONAL_HEADER 399 38.1.4 IMAGE_THUNK_DATA 401 38.1.5 IMAGE_TLS_DIRECTORY 403 第39章 WinDbg 405 39.1 WinDbg 405 39.1.1 WinDbg的特征 405 39.1.2 运行WinDbg 406 39.1.3 内核调试 407 39.1.4 WinDbg基本指令 409 第40章 64位调试 411 40.1 x64环境下的调试器 411 40.2 64位调试 411 40.3 PE32:WOW64Test_x86.exe 413 40.3.1 EP代码 414 40.3.2 Startup代码 414 40.3.3 main()函数 415 40.4 PE32+:WOW64Test_x64.exe 416 40.4.1 系统断点 416 40.4.2 EP代码 417 40.4.3 Startup代码 418 40.4.4 main()函数 420 40.5 小结 423 第41章 ASLR 424 41.1 Windows内核版本 424 41.2 ASLR 424 41.3 Visual C++ 424 41.4 ASLR.exe 425 41.4.1 节区信息 426 41.4.2 IMAGE_FILE_HEADER\Characteristics 427 41.4.3 IMAGE_OPTIONAL_HEADER\DLL Characteristics 428 41.5 练习:删除ASLR功能 428 第42章 内核6中的会话 430 42.1 会话 430 42.2 会话0隔离机制 432 42.3 增强安全性 432 第43章 内核6中的DLL注入 433 43.1 再现DLL注入失败 433 43.1.1 源代码 433 43.1.2 注入测试 435 43.2 原因分析 436 43.2.1 调试 #1 436 43.2.2 调试 #2 438 43.3 练习:使CreateRemoteThread()正常工作 440 43.3.1 方法 #1:修改CreateSuspended参数值 440 43.3.2 方法 #2:操纵条件分支 441 43.4 稍作整理 443 43.5 InjectDll_new.exe 443 43.5.1 InjectDll_new.cpp 443 43.5.2 注入练习 446 第44章 InjDll.exe:DLL注入专用工具 448 44.1 InjDll.exe 448 44.1.1 使用方法 448 44.1.2 使用示例 449 44.1.3 注意事项 450 第六部分 高级逆向分析技术 第45章 TLS回调函数 452 45.1 练习 #1:HelloTls.exe 452 45.2 TLS 453 45.2.1 IMAGE_DATA_DIRECTORY[9] 453 45.2.2 IMAGE_TLS_DIRECTORY 454 45.2.3 回调函数地址数组 454 45.3 TLS回调函数 455 45.4 练习 #2:TlsTest.exe 456 45.4.1 DLL_PROCESS_ATTACH 457 45.4.2 DLL_THREAD_ATTACH 457 45.4.3 DLL_THREAD_DETACH 457 45.4.4 DLL_PROCESS_DETACH 457 45.5 调试TLS回调函数 458 45.6 手工添加TLS回调函数 459 45.6.1 修改前的原程序 460 45.6.2 设计规划 460 45.6.3 编辑PE文件头 461 45.6.4 设置IMAGE_TLS_DIRECTORY结构体 463 45.6.5 编写TLS回调函数 464 45.6.6 最终完成 464 45.7 小结 465 第46章 TEB 466 46.1 TEB 466 46.1.1 TEB结构体的定义 466 46.1.2 TEB结构体成员 466 46.1.3 重要成员 469 46.2 TEB访问方法 470 46.2.1 Ntdll.NtCurrentTeb() 470 46.2.2 FS段寄存器 471 46.3 小结 472 第47章 PEB 473 47.1 PEB 473 47.1.1 PEB访问方法 473 47.1.2 PEB结构体的定义 474 47.1.3 PEB结构体的成员 475 47.2 PEB的重要成员 477 47.2.1 PEB.BeingDebugged 478 47.2.2 PEB.ImageBaseAddress 478 47.2.3 PEB.Ldr 479 47.2.4 PEB.ProcessHeap & PEB.NtGlobalFlag 480 47.3 小结 480 第48章 SEH 481 48.1 SEH 481 48.2 SEH练习示例 #1 481 48.2.1 正常运行 481 48.2.2 调试运行 482 48.3 OS的异常处理方法 484 48.3.1 正常运行时的异常处理方法 484 48.3.2 调试运行时的异常处理方法 484 48.4 异常 485 48.4.1 EXCEPTION_ACCESS_VIOLATION(C0000005) 486 48.4.2 EXCEPTION_BREAKPOINT(80000003) 486 48.4.3 EXCEPTION_ILLEGAL_INSTRUCTION(C000001D) 488 48.4.4 EXCEPTION_INT_DIVIDE_BY_ZERO(C0000094) 488 48.4.5 EXCEPTION_SINGLE_STEP(80000004) 489 48.5 SEH详细说明 489 48.5.1 SEH链 489 48.5.2 异常处理函数的定义 489 48.5.3 TEB.NtTib.ExceptionList 491 48.5.4 SEH安装方法 492 48.6 SEH练习示例 #2(seh.exe) 492 48.6.1 查看SEH链 493 48.6.2 添加SEH 493 48.6.3 发生异常 494 48.6.4 查看异常处理器参数 494 48.6.5 调试异常处理器 496 48.6.6 删除SEH 498 48.7 设置OllyDbg选项 499 48.7.1 忽略KERNEL32中发生的内存非法访问异常 500 48.7.2 向被调试者派送异常 500 48.7.3 其他异常处理 500 48.7.4 简单练习 500 48.8 小结 501 第49章 IA-32指令 502 49.1 IA-32指令 502 49.2 常用术语 502 49.2.1 反汇编器 503 49.2.2 反编译器 504 49.2.3 反编译简介 504 49.3 IA-32指令格式 506 49.3.1 指令前缀 507 49.3.2 操作码 507 49.3.3 ModR/M 507 49.3.4 SIB 508 49.3.5 位移 508 49.3.6 立即数 509 49.4 指令解析手册 509 49.4.1 下载IA-32用户手册 509 49.4.2 打印指令解析手册 509 49.5 指令解析练习 510 49.5.1 操作码映射 510 49.5.2 操作数 511 49.5.3 ModR/M 512 49.5.4 Group 514 49.5.5 前缀 516 49.5.6 双字节操作码 518 49.5.7 移位值&立即数 519 49.5.8 SIB 520 49.6 指令解析课外练习 524 49.7 小结 524 第七部分 反调试技术 第50章 反调试技术 526 50.1 反调试技术 526 50.1.1 依赖性 526 50.1.2 多种反调试技术 526 50.2 反调试破解技术 526 50.3 反调试技术的分类 527 50.3.1 静态反调试技术 528 50.3.2 动态反调试技术 528 第51章 静态反调试技术 529 51.1 静态反调试的目的 529 51.2 PEB 529 51.2.1 BeingDebugged(+0x2) 531 51.2.2 Ldr(+0xC) 531 51.2.3 Process Heap(+0x18) 532 51.2.4 NtGlobalFlag(+0x68) 533 51.2.5 练习:?StaAD_PEB.exe 534 51.2.6 破解之法 534 51.3 NtQueryInformationProcess() 537 51.3.1 ProcessDebugPort(0x7) 538 51.3.2 ProcessDebugObjectHandle(0x1E) 539 51.3.3 ProcessDebugFlags(0x1F) 539 51.3.4 练习:StaAD_NtQIP.exe 540 51.3.5 破解之法 540 51.4 NtQuerySystemInformation() 542 51.4.1 SystemKernelDebugger-Information(0x23) 544 51.4.2 练习:StaAD_NtQSI.exe 545 51.4.3 破解之法 545 51.5 NtQueryObject() 545 51.6 ZwSetInformationThread() 549 51.6.1 练习:StaAD_ZwSIT.exe 549 51.6.2 破解之法 550 51.7 TLS回调函数 550 51.8 ETC 551 51.8.1 练习:StaAD_FindWindow.exe 551 51.8.2 破解之法 551 51.9 小结 553 第52章 动态反调试技术 554 52.1 动态反调试技术的目的 554 52.2 异常 554 52.2.1 SEH 554 52.2.2 SetUnhandledException-Filter() 558 52.3 Timing Check 562 52.3.1 时间间隔测量法 562 52.3.2 RDTSC 563 52.4 陷阱标志 565 52.4.1 单步执行 566 52.4.2 INT 2D 569 52.5 0xCC探测 572 52.5.1 API断点 573 52.5.2 比较校验和 575 第53章 高级反调试技术 577 53.1 高级反调试技术 577 53.2 垃圾代码 577 53.3 扰乱代码对齐 578 53.4 加密/解密 581 53.4.1 简单的解码示例 581 53.4.2 复杂的解码示例 582 53.4.3 特殊情况:代码重组 584 53.5 Stolen Bytes(Remove OEP) 584 53.6 API重定向 587 53.6.1 原代码 588 53.6.2 API重定向示例 #1 588 53.6.3 API重定向示例#2 589 53.7 Debug Blocker(Self Debugging) 593 53.8 小结 595 第八部分 调试练习 第54章 调试练习1:服务 598 54.1 服务进程的工作原理 598 54.1.1 服务控制器 598 54.1.2 服务启动过程 599 54.2 DebugMe1.exe示例讲解 600 54.2.1 安装服务 600 54.2.2 启动服务 602 54.2.3 源代码 604 54.3 服务进程的调试 606 54.3.1 问题在于SCM 606 54.3.2 调试器无所不能 606 54.3.3 常用方法 606 54.4 服务调试练习 606 54.4.1 直接调试:强制设置EIP 606 54.4.2 服务调试的常用方法:“附加”方式 609 54.5 小结 615 第55章 调试练习2:自我创建 616 55.1 自我创建 616 55.2 工作原理 617 55.2.1 创建子进程(挂起模式) 617 55.2.2 更改EIP 618 55.2.3 恢复主线程 618 55.3 示例程序源代码 618 55.4 调试练习 620 55.4.1 需要考虑的事项 620 55.4.2 JIT调试 621 55.4.3 DebugMe2.exe 622 55.5 小结 626 第56章 调试练习3:PE映像切换 627 56.1 PE映像 627 56.2 PE映像切换 628 56.3 示例程序:Fake.exe、Real.exe、DebugMe3.exe 628 56.4 调试1 631 56.4.1 Open ? 输入运行参数 631 56.4.2 main()函数 632 56.4.3 SubFunc_1() 634 56.4.4 CreateProcess(“fake.exe”,CREATE_SUSPENDED) 635 56.4.5 SubFunc_2() 635 56.4.6 SubFunc_3() 641 56.4.7 ResumeThread() 644 56.5 调试2 644 56.5.1 思考 645 56.5.2 向EP设置无限循环 645 56.6 小结 647 第57章 调试练习4:Debug Blocker 648 57.1 Debug Blocker 648 57.2 反调试特征 648 57.2.1 父与子的关系 649 57.2.2 被调试进程不能再被其他调试器调试 649 57.2.3 终止调试进程的同时也终止被调试进程 649 57.2.4 调试器操作被调试者的代码 649 57.2.5 调试器处理被调试进程中发生的异常 649 57.3 调试练习:DebugMe4.exe 650 57.4 第一次调试 650 57.4.1 选定调试的起始位置 650 57.4.2 main() 650 57.5 第二次调试 651 57.6 第三次调试 653 57.7 第四次调试 656 57.8 第五次调试 658 57.8.1 系统断点 658 57.8.2 EXCEPTION_ILLEGAL_INSTRUCTION(1) 659 57.8.3 EXCEPTION_ILLEGAL_INSTRUCTION(2) 660 57.9 第六次调试 661 57.9.1 40121D(第一个异常) 661 57.9.2 401299(第二个异常) 665 57.10 第七次调试 667 57.10.1 静态方法 668 57.10.2 动态方法 669 57.11 小结 673 结束语 674 索引 676

2018-12-17

Dbgview-Mark Russinovich

Sysinternals DebugView Copyright © 1999-2004 Mark Russinovich Sysinternals DebugView is an application that lets you monitor debug output on your local system, or any computer on the network that you can reach via TCP/IP. It is capable of displaying both kernel-mode and Win32 debug output generated by standard debug print APIs, so you don’t need a debugger to catch the debug output your applications or device drivers generate, and you don't need to modify your applications or drivers to use non-Windows debug functions in order to view its debug output.

2018-12-01

代码注入器CodeInjector

代码注入器 CodeInjector 根据PID选择进程,可以载入dll 或者卸载dll 还可以执行代码 等等

2018-12-01

WindowsPE权威指南配套软件

WindowsPE权威指南配套软件 自己收集起来的 学WindowsPE权威指南 会用到

2018-11-13

Wireshark网络分析就这么简单(林沛满 著)带书签完整版

在学习Wireshark的同时,也会在不知不觉中理解这些协议。作者还通过身边发生的一些真实案例,分享了Wireshark的实战技巧。 《Wireshark网络分析就这么简单》不务虚,不注水,几乎页页干货,篇篇精华,力求为读者提供最佳阅读体验,使读者在一个轻松愉悦的阅读氛围中,潜移默化地掌握Wireshark的使用技巧和网络知识,为你的工程师生涯加油助力。 无论你是技术支持工程师、系统管理员、现场工程师、公司IT部门的老好人,还是高校网络相关专业的教师,无论你是CCNA、CCNP、CCIE,还是MCSE,《Wireshark网络分析就这么简单》都是迅速了解、掌握Wireshark技巧的绝佳读物。 目 录 初试锋芒 1 从一道面试题开始说起 3 小试牛刀:一个简单的应用实例 10 Excel文件的保存过程 13 你一定会喜欢的技巧 17 Patrick的故事 29 Wireshark的前世今生 32 庖丁解牛 35 NFS协议的解析 37 从Wireshark看网络分层 52 TCP的连接启蒙 57 快递员的工作策略——TCP窗口 64 重传的讲究 70 延迟确认与Nagle算法 80 百家争鸣 84 简单的代价——UDP 90 剖析CIFS协议 93 网络江湖 104 DNS小科普 111 一个古老的协议——FTP 118 上网的学问——HTTP 126 无懈可击的Kerberos 132 TCP IP的故事 141 举重若轻 145 “一小时内给你答复” 147 午夜铃声 151 深藏功与名 157 棋逢对手 162 学无止境 167 一个技术男的自白 174

2018-11-06

BurpSuite 1.7.32 原版+注册机

需要java支持,所以自行到java网站下载安装 1. 打开注册机:burp-loader-keygen.jar,然后点击run,license text 随便填,然后将生成的license 复制粘贴到打开的burp里,点击next 2. 点击manual activation 手动激活 3. 将request 粘贴到activation request ,将自动生成response,再粘贴到burp里最下面的response中,点击下一步 4. 激活成功,看到这里应该就不用多说了

2018-11-05

BurpSuite 实战指南

第一章 Burp Suite 安装和环境配置 第二章 Burp Suite代理和浏览器设置 第三章 如何使用Burp Suite代理 第四章 SSL和Proxy高级选项 第五章 如何使用Burp Target 第六章 如何使用Burp Spider 第七章 如何使用Burp Scanner 第八章 如何使用Burp Intruder 第九章 如何使用Burp Repeater 第十章 如何使用Burp Sequencer 第十一章 如何使用Burp Decoder 第十二章 如何使用Burp Comparer 第十三章 数据查找和拓展功能的使用 第十四章 BurpSuite全局参数设置和使用 第十五章 BurpSuite应用商店插件的使用 第十六章 如何编写自己的BurpSuite插件 第十七章 使用Burp Suite测试Web Services服务 第十八章 使用Burp, Sqlmap进行自动化SQL注入渗透测试 第十九章 使用Burp、PhantomJS进行XSS检测 第二十章 使用Burp 、Android Killer进行安卓app渗透测试

2018-11-05

图解算法 (俞征武著) 带书签 中文pdf高清版

算法是人们利用电脑解决问题的技巧。图解算法一书以轻松的对话方式,采用图解的辅助说明,帮助读者简单、自然地掌握算法的基本概念,并养成主动思考的习惯,达到用算法解决实际问题的目的。 全书共分 12 章,内容包括一切从观察开始、分而治之法、动态规划、贪婪法、修剪与搜索法、树搜索法、问题转换、图算法、计算几伺、算法的难题、逼近算法、随机算法等。 本书示例丰富,图文并茂 , 以易于理解的方式阐释算法,帮助程序员在日常项目开发中更好地发挥算法的能蝇。 目录 1一切从观察开始 2分而治之法 3动态规划 4贪婪法 5修剪与搜索法 6树搜索法 7问题转换 8图算法 9计算几何 10算法的难题 11逼近算法 12随机算法

2018-11-05

精通Cocos2d-x游戏开发(基础卷)+(进阶卷) (王永宝著)

《Cocos2d-x游戏开发》分为《基础卷》和《进阶卷》两个分册。两卷书籍都有明确的写作目的。《基础卷》专注于Cocos2d-x引擎基础,致力于让Cocos2d-x初学者成为一个基础扎实、靠谱的程序员。《进阶卷》专注于各种实用技术,是作者多年开发经验的结晶,书中的技术点大多是基于实际工作中碰到的问题提炼而来,从问题的本质出发到解决问题的思路,提供了多种解决方案,并对比各方案的优缺点,启发读者思考。 本书为《Cocos2d-x游戏开发》的《基础卷》,共31章,分为4篇。第1篇为《入门篇》,涵盖的主要内容有Cocos2d-x开发环境、学习建议、注意事项及低级错误总结,以及必备的C 编程基础和指针知识等。第2篇为《基础框架篇》,涵盖的主要内容有节点系统、内存管理、场景和层、精灵、动作系统、动画、纹理、文字、运行机制、渲染机制、消息机制和Schedule等。第3篇为《UI与交互篇》,涵盖的主要内容有触摸输入、文本输入、按钮与重力感应输入、Menu和MenuItem,以及GUI框架的功能控件、文本输入、文本显示及容器控件等。第4篇为《CocoStudio工具链篇》,涵盖的主要内容有CocoStudio的UI编辑器、场景编辑器、动画编辑器、2.x编辑器及CocosBuilder等。 本书适合学习Cocos2d-x游戏开发的零基础读者阅读,尤其适合Cocos2d-x自学人员。对于大中专院校的学生和社会培训班的学员,本书也是一本不可多得的学习教程。 第1篇 入门篇 第1章 Cocos2d-x启航 第2章 使用Cocos2d-x 第3章 低级错误大全 第4章 图解指针 第5章 C 11简介 第2篇 基础框架篇 第6章 节点系统 第7章 内存管理 第8章 场景和层 第9章 精灵详解 第10章 动作系统 第11章 播放动画 第12章 纹理详解 第13章 显示文字 第14章 运行机制 第15章 渲染机制 第16章 消息机制 第17章 Schedule详解 第3篇 UI与交互篇 第18章 触摸输入 第19章 文本输入 第20章 按钮与重力感应输入 第21章 Menu和MenuItem详解 第22章 GUI框架概述 第23章 GUI框架之功能控件 第24章 GUI框架之文本输入和显示 第25章 GUI框架之容器控件 第4篇 CocoStudio工具链篇 第26章 CocoStudio概述 第27章 CocoStudio UI编辑器 第28章 CocoStudio场景编辑器 第29章 CocoStudio动画编辑器 第30章 CocoStudio 2.x编辑器 第31章 使用CocosBuilder 第1篇 实用技术篇 第1章 文件读写 2 第2章 加密解密 15 第3章 增量更新 32 第4章 声音与音效 51 第5章分辨率适配 58 第6章CocoStudio最佳实践 68 第7章调试Cocos2d-x 78 第8章调试技巧总结 84 第9章物理引擎——Box2d基础 107 第10章物理引擎——应用到Cocos2d-x 126 第11章图元渲染 145 第12章Spine骨骼动画 151 第13章2D、3D粒子特效 172 第14章裁剪与遮罩 194 第15章使用Shader——GLSL基础 212 第16章使用Shader——常用特效 236 第2篇Lua篇 第17章Lua基础概述 248 第18章Lua——table 257 第19章Lua与C的通信 271 第20章Cocos2d-x原生Lua框架详解 284 第21章Cocos2d-xQuick框架详解 310 第22章Quick框架实践——MVC框架 325 第3篇网络篇 第23章网络游戏——网游开发概述 344 [3] 第24章弱联网游戏——Cocos2d-x客户端实现 347 第25章弱联网游戏——PHP服务器实现 362 第26章强联网游戏——TCP和Socket 369 第27章强联网游戏——单机版动作游戏 390 第28章强联网游戏——C++服务器实现 404 第29章网络游戏——前后端网络同步 414 第30章局域网游戏——使用UDP 423 第31章局域网游戏——建立、搜索、加入房间 430 第4篇跨平台篇 第32章Android环境搭建 440 第33章使用JNI实现C++与Java互调 461 第34章iOS环境搭建与真机调试 492 第35章Objective-C与C++互调 511 第36章接入AnySDK 515

2018-11-05

黑客大追踪:网络取证核心原理与实践(美)大卫杜夫,(美)汉姆著

网络取证是计算机取证技术的一个新的发展方向,是计算机网络技术与法学的交叉学科。《黑客大追踪:网络取证核心原理与实践》是网络取证方面的第一本专著,一经出版便好评如潮,在Amazon网站上的评分达4.5星。 本书根据网络取证调查人员的实际需要,概述了网络取证的各个方面,不论是对各种网络协议的分析和对各种网络设备的处理方式,还是取证流程的设计都有独到之处。 《黑客大追踪:网络取证核心原理与实践》共分四大部分十二章,第1章“实用调查策略”,第2章“技术基础”和第3章“证据获取”属于第一部分,其中给出了一个取证的方法框架,并介绍了相关的基础知识;第4章“数据包分析”,第5章“流统计分析”、第6章“无线:无须网线的取证”和第7章“网络入侵的侦测及分析”属于第二部分,介绍了对网络流量进行分析的各种技术;第8章“事件日志的聚合、关联和分析”、第9章“交换器、路由器、防火墙”和第10章“Web代理”属于第三部分,详述了在各种网络设备和服务器中获取和分析证据的方法。第11章“网络隧道”和第12章“恶意软件取证”属于第四部分,针对网络隧道和恶意软件分析这两个网络取证中的难点和热点问题展开讨论。 本书在学术理论上具有交叉性、前沿性和创新性,在实践应用中注重可操作性和实用性。可作为网络安全/计算机取证专业的教材,对于司法工作者、律师、司法鉴定人和IT从业人员,也具有良好的参考价值。 目录 第一部分 基础篇 第1章 实用调查策略 第2章 技术基础 第3章 证据获取 第二部分 数据流分析 第4章 数据包分析 第5章 流统计分析 第6章 无线:无须网线的取证 第7章 网络入侵的侦测及分析 第三部分 网络设备和服务器 第8章 事件日志的聚合、关联和分析 第9章 交换机、路由器和防火墙 第10章 Web代理 第四部分 高级议题 第11章 网络隧道 第12章 恶意软件取证

2018-11-05

Wireshark网络分析的艺术 (林沛满)带目录书签

Wireshark网络分析的艺术 (林沛满)带目录书签 《Wireshark网络分析的艺术》挑选的网络包来自真实场景,经典且接地气。讲解时采用了生活化的语言,力求通俗易懂,以使读者在轻松阅读的过程中,既可以学到实用的网络知识,又能形成解决问题的思路。 与大多网络图书的课堂式体验不同,阅读《Wireshark网络分析的艺术》的感觉更像在听技术圈的朋友分享经验,除了知识,还有心情和想法。本书的覆盖范围从日常使用的手机App,到企业级的数据中心;从对付运营商的网络劫持,到开发自己的分析工具,不一而足。无论你是系统管理员、实施工程师、技术支持、网管、培训教师,还是开发和测试人员,都适合阅读本书。 目录 作者简介 专业书评 内容提要 关于作者 致谢 前言 答读者问 Linux为什么卡住了? 像福尔摩斯一样思考 一篇关于VMware的文章 来点有深度的 三次握手的小知识 被误解的TCP 最经典的网络问题 为什么丢了单子? 受损的帧 虚惊一场 NTLM协议分析 Wireshark的提示 工作中的Wireshark 书上错了吗? 计算“在途字节数” 估算网络拥塞点 顺便说说LSO 熟读RFC 一个你本该能解决的问题 几个关于分片的问题 MTU导致的悲剧 迎刃而解 昙花一现的协议 另一种流控 过犹不及 治疗强迫症 技术与工龄 如何科学地推卸责任 一个面试建议 生活中的Wireshark 假宽带真相 手机抓包 微博为什么会卡 寻找HttpDNS 谁动了我的网络 一个协议的进化 假装产品经理 自学的窍门 两个项目 打造自己的分析工具 一个创业点子

2018-11-05

IDA Pro权威指南(第2版)中文高清带书签和50多M的版

里面包含两个版本,一个是6M多,一个是50多M. IDA Pro权威指南(第2版)中文高清带书签完美版 IDA Pro权威指南 第二版 (高清,可读性最强的版本) 两个网上常出现的版本都在这里了.避免你们不知道选择.我这里汇总了

2018-11-05

加密与解密(第N版)随书代码最新版

加密与解密(第N版)随书代码最新版 解压后大于700M ****************************************************************************** * 《加密与解密》(第四版)配套光盘目录说明 * * 看雪学院 * ****************************************************************************** 注意:随书文件中的软件和实例,经过多方面的检查和测试,绝无病毒。但是,一些加解密工具采用了病毒技术,导致部分代码与某些病毒的特征码类似,可能造成查毒软件的误报,请读者自行决定是否使用。建议将随书文件复制到硬盘中,并去除“只读”属性再进行调试,以免出现一些无法解释的错误。

2018-11-05

[IOS编程(第2版)].(Joe.Conway等).夏伟频.扫描版

[IOS编程(第2版)].(Joe.Conway等).夏伟频.扫描版

2017-07-29

《汇编语言(第3版) 》王爽著

《汇编语言(第3版) 》王爽著

2017-07-29

IOS应用逆向工程:分析与实战-沙梓社

【IOS应用逆向工程:分析与实战】沙梓社

2017-07-29

The IDA Pro Book 2nd Edition

The IDA Pro Book 2nd Edition No.Starch.The.IDA.Pro.Book.2nd.Edition.Jun.2011

2017-07-29

天书夜谈:从汇编语言到Windows内核编程

入手篇 熟悉汇编   本书的第一部分,将帮助读者消除对汇编的恐惧,熟悉汇编。本部分包括第1~3章。稍显枯燥的是,它们和Windows内核无关,是纯C语言与汇编语言的关系的章节。如果读者已经精通汇编语言,并能顺利阅读汇编代码,请直接跳过本部分。   第1章 汇编指令与C语言 2   1.1 上机建立第一个工程 4   1.1.1 用Visual Studio创建工程 4   1.1.2 用Visual Studio查看汇编代码 5   1.2 简要复习常用的汇编指令 6   1.2.1 堆栈相关指令 6   1.2.2 数据传送指令 7   1.2.3 跳转与比较指令 8   1.3 C函数的参数传递过程 9   第2章 C语言的流程和处理 14   2.1 C语言的循环反汇编 15   2.1.1 for循环 15   2.1.2 do循环 16   2.1.3 while循环 17   2.2 C语言判断与分支的反汇编 18   2.2.1 if-else判断分支 18   2.2.2 switch-case判断分支 19   2.3 C语言的数组与结构 22   2.4 C语言的共用体和枚举类型 24   第3章 练习反汇编C语言程序 26   3.1 算法的反汇编 27   3.1.1 算法反汇编代码分析 27   3.1.2 算法反汇编阅读技巧 28   3.2 发行版的反汇编 29   3.3 汇编反C语言练习 33   基础篇 内核编程   本书的第二部分,是编写Windows内核程序编程方法的基础。本部分包括第4~7章,如果读者对Windows内核编程已经有一定的了解,可以跳过本部分;如果读者从未接触过Windows内核编程,本部分将指导读者开始Windows内核编程,学会使用WDK,并熟悉内核编程的习惯与方法。   第4章 内核字符串与内存 38   4.1 字符串的处理 39   4.1.1 使用字符串结构 39   4.1.2 字符串的初始化 41   4.1.3 字符串的拷贝 42   4.1.4 字符串的连接 42   4.1.5 字符串的打印 43   4.2 内存与链表 45   4.2.1 内存的分配与释放 45   4.2.2 使用LIST_ENTRY 46   4.2.3 使用长长整型数据 49   4.2.4 使用自选锁 50   第5章 文件与注册表操作 52   5.1 文件操作 53   5.1.1 使用OBJECT_ATTRIBUTES 53   5.1.2 打开和关闭文件 54   5.1.3 文件读/写操作 58   5.2 注册表操作 60   5.2.1 注册表键的打开 60   5.2.2 注册表值的读 62   5.2.3 注册表值的写 65   第6章 时间与线程 67   6.1 时间与定时器 68   6.1.1 获得当前滴答数 68   6.1.2 获得当前系统时间 69   6.1.3 使用定时器 70   6.2 线程与事件 73   6.2.1 使用系统线程 73   6.2.2 在线程中睡眠 75   6.2.3 使用同步事件 76   第7章 驱动、设备与请求 79   7.1 驱动与设备 80   7.1.1 驱动入口与驱动对象 80   7.1.2 分发函数和卸载函数 80   7.1.3 设备与符号链接 82   7.1.4 设备的安全创建 83   7.1.5 设备与符号链接的用户相关性 85   7.2 请求处理 86   7.2.1 IRP与IO_STACK_LOCATION 86   7.2.2 打开与关闭请求的处理 88   7.2.3 应用层信息传入 89   7.2.4 驱动层信息传出 91   探索篇 研究内核   本书的第三部分,开始探索Windows内核程序,并尝试阅读反汇编代码作为指引。本部分包括第8~10章。如果读者对Windows内核编程已经有一定的了解,这一部分会比较有趣;如果读者从未接触过Windows内核编程,读者应该先学习第二部分。能自己编写内核程序并不意味着可以读懂内核,虽然反过来是一定成立的。读懂别人编写的没有代码的程序,比自己编写更困难一些,但的确是值得的。   第8章 进入Windows内核 96   8.1 开始Windows内核编程 97   8.1.1 内核编程的环境准备 97   8.1.2 用C语言写一个内核程序 99   8.2 学习用WinDbg进行调试 102   8.2.1 软件的准备 102   8.2.2 设置Windows XP调试执行 103   8.2.3 设置VMWare虚拟机调试 104   8.2.4 设置被调试机为Vista的情况 105   8.2.5 设置Windows内核符号表 106   8.2.6 调试例子diskperf 106   8.3 认识内核代码函数调用方式 107   8.4 尝试反写C内核代码 111   8.5 如何在代码中寻找需要的信息 113   第9章 用C++编写的内核程序 117   9.1 用C++开发内核程序 118   9.1.1 建立一个C++的内核工程 118   9.1.2 使用C接口标准声明 119   9.1.3 使用类静态成员函数 120   9.1.4 实现new操作符 121   9.2 开始阅读一个反汇编的类 122   9.2.1 new操作符的实现 122   9.2.2 构造函数的实现 124   9.3 了解更多的C++特性 126   第10章 继续探索Windows内核 131   10.1 探索Windows已有内核调用 132   10.2 自己实现XP的新调用 135   10.2.1 对照调试结果和数据结构 135   10.2.2 写出C语言的对应代码 137   10.3 没有符号表的情况 138   10.4 64位操作系统下的情况 141   10.4.1 分析64位操作系统的调用 143   10.4.2 深入了解64位内核调用参数传递 145   深入篇 修改内核   这是本书的第四部分。读者已经尝试过探索Windows内核程序,并尝试阅读反汇编代码。那么接下来,必须掌握修改内核的方法。每一个Windows内核程序,都可以看做Windows内核本身的一个“补丁”。有时只需要独立存在,就能起到它的作用;有时却必须对已有的内核二进制代码进行部分修改。本部分包括第11~13章,主要介绍的是内核Hook。   第11章 机器码与反汇编引擎 150   11.1 了解Intel的机器码 151   11.1.1 可执行指令与数据 151   11.1.2 单条指令的组成 152   11.1.3 MOD-REG-R/M的组成 155   11.1.4 其他的组成部分 157   11.2 反汇编引擎XDE32基本数据结构 159   11.3 反汇编引擎XDE32具体实现 162   第12章 CPU权限级与分页机制 166   12.1 Ring0和Ring3权限级 167   12.2 保护模式下的分页内存保护 169   12.3 分页内存不可执行保护 172   12.3.1 不可执行保护原理 172   12.3.2 不可执行保护的漏洞 173   12.4 权限级别的切换 177   12.4.1 调用门及其漏洞 178   12.4.2 sysenter和sysexit指令 181   第13章 开发Windows内核Hook 186   13.1 XP下Hook系统调用IoCallDriver 187   13.2 Vista下IofCallDriver的跟踪 189   13.3 Vista下inline hook 193   13.3.1 写入跳转指令并拷贝代码 193   13.3.2 实现中继函数 196   实战篇 实际开发   实战部分是本书最深入和复杂的一部分,包括第14~17章。为了让前面练习的成果,在实际应用中产生价值,在这部分我们补充更多的理论知识并尝试用它们去做一点什么。这一部分包括指令分析、硬件基础知识、内核Hook的实际开发练习,以及将完成一个用到内核Hook的有趣的实例,这个实例有助于计算机阻挡各种病毒和木马的侵袭。   此外,本部分还包括特殊的一章,涉及如何巧妙地编写代码,来防止被其他不受欢迎的读者阅读。这与本书的主旨完全相反,正所谓物极必反。   第14章 反病毒、木马实例开发 200   14.1 反病毒、木马的设想 201   14.2 开发内核驱动 204   14.2.1 在内核中检查可执行文件 204   14.2.2 在内核中生成设备接口 208   14.2.3 在内核中等待监控进程的响应 210   14.3 开发监控进程 216   14.4 本软件进一步展望 218   第15章 Rootkit与HIPS 220   15.1 Rootkit为何很重要 222   15.2 Rootkit如何逃过检测 224   15.3 HIPS如何检测Rootkit 234   第16章 手写指令保护代码 237   16.1 混淆字符串 238   16.2 隐藏内核函数 244   16.3 混淆流程与数据操作 251   16.3.1 混淆函数出口 251   16.3.2 插入有意义的花指令 253   第17章 用VMProtect保护代码 258   17.1 安装VMProtect 259   17.2 使用VMProtect 261   17.3 查看VMProtect效果 267

2015-08-13

菲翔顶配导航主程序升级3.15版

菲翔顶配导航主程序升级 3.15版本

2013-12-17

dbForge Studio for MySQL 6.0.315带破解补丁

dbForge Studio for MySQL 6.0.315带破解补丁 把破解补丁放入安装目录下,运行破解补丁即可使用

2013-10-09

[软件工程师典藏:PHP开发典型模块大全(第3版)].刘欣等.扫描版

[软件工程师典藏:PHP开发典型模块大全(第3版)].刘欣等.扫描版

2013-09-29

WindowsPE权威指南-高清带源码

WindowsPE权威指南-高清带源码

2013-09-29

网络扫描技术揭秘:原理、实践与扫描器的实现

网络扫描技术揭秘:原理、实践与扫描器的实现

2013-09-29

[网络扫描技术揭秘 原理、实践与扫描器的实现].李瑞民.扫描版.pdf

[网络扫描技术揭秘 原理、实践与扫描器的实现].李瑞民.扫描版.pdf

2013-09-29

VMware Workstation 10 注册机 序列号

VMware Workstation 10 注册机 序列号 WIN7 64位 通用

2013-09-25

C#反编译工具.net refelector 8

C#反编译工具.net refelector 8介绍及refelector 8完美破解方法 注册说明: 1. 断网 2. 运行.NET Reflector,点击Help -> Activate 3. 运行注册机,复制注册机生成的序列号,粘贴到.NET Reflector中的激活输入框 4. 点击激活按钮,此时弹出错误提示“无法连接到...”,点击手动激活按钮,弹出手动激活界面 5. 将.NET Reflector中的激活请求字符串复制,粘贴到注册机第二个文本框中,复制第三个文本框的激活应答字符串,粘贴到.NET Reflector手动激活界面右边文本框中 6. 点击激活按钮,激活成功 ^_^

2013-09-12

AnyDATA CDMA AT命令(中文版) V4.0

AnyDATA CDMA AT命令(中文版) V4.0 这个才是比较完整的版本 找了很久, AT+SMSR 读出并删除最近一条未读短消息

2013-09-12

HttpAnalyzer+V7.0.1+(注册码)

HttpAnalyzer+V7.0.1+(注册码) 查看网络发送数据和接收数据利器

2013-09-07

Json.NET工具

Json.NET工具 Json.NET2.0 网上很难下载,这是我下载好,提供给大家的. 国内网络下不到. http://json.codeplex.com/releases/view/6987

2013-08-15

MP288打印机扫描仪驱动(官网提供)

MP288打印机扫描仪驱动(官网提供)

2013-07-20

MP288打印机驱动(官网提供)

MP288打印机驱动(官网提供)

2013-07-20

AnkhSvn-VS配置SVN插件

AnkhSvn-VS配置SVN插件 2.安装AnkhSvn-2.4.11610.msi后 3.启动VS2010 4.工具-选项 5.配置代码管理插件,Sorce Control --插件 -- 选择 AnkhSVN 6.右键需要上传的项目(Add Solution to Subversion...) 7.配置代码服务器URL 上传...

2013-03-21

八门神器-清爽版

八门神器,清爽版,不清爽不要钱. 安卓系统都能安卓啊.亲

2013-03-20

MP288 破解(清零)软件

MP288 破解(清零)软件 非常好用.汉化的软件

2013-03-13

Driver条码机驱动

Driver条码机驱动

2012-12-12

YouPP代码_20120911.gz

YouPP代码_20120911.gz

2012-09-21

TortoiseSVN-1.7.8.23174-x64-中文版

SVN 1.7.8 WIN7 64位系统 中文版

2012-09-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除