bester 发表于 2019-9-9 18:19

【吾爱动画大赛2019参赛作品】- 从零学习Ring 3下几种必学hook(钩子)姿势

本帖最后由 bester 于 2019-9-11 14:23 编辑

0.前言
从9月1号开始学习了8天的成果,每天码到凌晨2点,从零开始学习PE结构,IAT hook 调试法等等,特地去学来参加动画大赛,视频有两处比较打脸的地方,大家忽略一下,比较紧张字可能说错了,没有讲课经验,容易忘记学过的知识,然后把自己搞懵了


1.简介

大家好,我是Bester,这是我的动画大赛参赛作品,让我们一起来学习hook,如有错误之处请大家谅解~(屏幕分辨率:2K,条件简陋声音较小请调大音量)

1.什么是hook?
答:你可以理解为你下班开车回家,路上遇到蜀黎查酒驾,如果检查结果显示一切正常,无违规行为,则放行,否则拦截
      程序也是如此,我们可以设置一个hook,在程序调用某功能的时候,我们有权让他是否调用,或者改变其返回的值

2.学习hook的条件
答:你需要以下几点:
                                        1.持之以恒的学习心态和耐心   非常重要
                                        2.至少懂得一门Win32编程语言,最好是C/C++,主要原因是方便,API所需要的结构,可以直接声明即可调用
                                        3.OD的基本使用
                                        4.基本的汇编指令,以及栈(先进后出的顺序)和堆
2.大纲
常见的几种hook方式
答:1.SetWindowsHookEx 消息钩子需要注入器以及DLL才能修改其他进程
      缺点:适用于消息类,比如键盘的输入以及鼠标的点击,非此类情况一般无法使用
      2.Inline hook 分为 调试器方式(int 3 CC断点,OD就是使用这样的技术)以及 DLL注入(常用在API hook)   调试器方式未放源码,算给大家留个作业,希望大家在看完教程以后根据我讲的思路,自己用自己喜欢的语言重写一份
      缺点:调试器方式 容易被壳检测,DLL注入方式注入到其他进程需要注入器以及DLL,比较不方便
      3.IAT hook 导入表
         缺点:如果是动态获取API调用,无法hook 局限性较大

3.IAT HOOK 必学图


4.指针和小端序
大家一定要记好我举的例子,苹果和箱子的故事,这样你在编程当中才能理解指针到底是什么,时间原因本来是想给大家演示一下指针在内存当中的样子,Pointer在Delphi中是将地址转换成指针 ^是取指针所指向的值,然后各种数据结构你只需要知道他的成员占多大的空间,是什么类型就可以了,小端序在视频中说了就不提了
后续如果有关于视频当中不懂的点,可以留言或者帖子@我,我看到会回答的,在此希望大家都能学会hook技术。
5.作品链接
链接: https://pan.baidu.com/s/1lzQYw6_x5pNNlDQkLJuoSQ 提取码: 2gub
作品、试练相关的程序要求统一加密码( www.52pojie.cn )压缩成Zip或7z格式压缩包,再上传至于百度网盘,在帖子中贴出下载地址,加密码防止百度无故和谐下载。

keyyan 发表于 2019-9-9 23:22

感恩大佬分享~~~

2314902431 发表于 2019-9-9 23:39

本帖最后由 2314902431 于 2019-9-10 09:34 编辑

有水果机要什么公仔,先定个小目标,拿个第一来玩玩.

15512345888 发表于 2019-9-10 00:03

感恩大佬分享~~~

赤色焰 发表于 2019-9-10 01:15

好东西回头下载学习学习。

ee789852 发表于 2019-9-10 06:18

好东西,学习了

hui00000 发表于 2019-9-10 08:20

感谢大佬分享

安倚静轩 发表于 2019-9-10 09:08

感谢分享

cangyun 发表于 2019-9-10 09:11

感谢楼主热心分享!!

无色的烟 发表于 2019-9-10 09:23

感谢分享
页: [1] 2 3 4
查看完整版本: 【吾爱动画大赛2019参赛作品】- 从零学习Ring 3下几种必学hook(钩子)姿势