4.4 编写第一个破解补丁
心得
主要讲用C语言和易语言写了一个补丁,去修改正在运行的进程的内存里的内容; 另外还讲了一些DLL劫持的知识;如果有C语言基础的话,有兴趣可以学一学DLL劫持的技术,当时 我也是零基础学的DLL劫持,只要有C语言基础就行,我把我当初学习的链接放在下面;
另外不想学 DLL 也无所谓,前几节课他讲的涉及范围广,需要基础多,后续会先补 C 和 CPP基础,以及汇编基础,倍速看吧;
但是不得不说,易语言写代码是真快;就算没有易语言基础,但是但凡有点编程基础,都大概能看懂 他写的啥吧,毕竟是中文写代码哈哈哈;
DLL劫持学习链接推荐
# 什么是动态链接库 DLL(Dynamic Link Library)?
http://c.biancheng.net/cpp/u/dll/
我自己的认知:谈动态链接,那首先就要谈静态链接;首先假如我们要使用一个函数 A,
我们把它写在源码里,然后在代码中直接调用该函数 A,直接将其编译成程序,这叫静态链接;
但是我们假设一种情况,我们写的另一个程序也要调用函数 A,那我们又要在另一个程序代码里写入相同的函数A;但是如果我们把两个程序都会用到的函数 A 抽出来,单独写一个可执行程序,然后让两个
程序在运行的时候再去调用这个单独的我们写的函数A的程序,那么这样就节省两个程序的代码;而我们
单独拿出来写在一个程序的函数 A,我们称之为动态链接库,这样就可以达到一个函数接口能被多个程序在运行时调用的目的;
# DLL劫持?
https://paper.seebug.org/1713/
我的认知:因为程序在调用的时候会调用一些动态链接库 DLL 文件,它会去目录中搜索对应要调用的DLL文件;但是如果我们编写一个和它想要调用的 DLL 名称相同的 DLL,并且实现它所需要调用的功能,然后我们再往这个 DLL里面嵌入恶意代码;最后将这个我们编写的DLL和它放在同一个目录下,那么该程序运行时会先调用我们编写的恶意 DLL,从而执行我们的恶意代码;
DLL劫持简言之就是劫持正常的 DLL,不让程序加载正常的 DLL,而加载我们编写的恶意 DLL;