一、前言:
相信很多学习计算机的同学,都有一个黑客梦,这次就给大家稍微展示一些“拙劣”的黑客技巧,仅限于linux环境。因为工作以后,90%的人都是在linux系统从事开发工作的。
二、测试环境:
三、strcmp函数简介
以大家最熟悉的strcmp函数为例,玩一把劫持。人狠话不多,直接上代码。
1、strcmp函数原型:
int strcmp(const char *s1, const char *s2);
2、strcmp函数所属头文件
#include <string.h>
3、strcmp函数介绍
strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1
4、strcmp基本用法
test.c文件内容如下:
#include <stdio.h> #include <string.h> int main() { char passwd[] = "654321"; int ret; ret = strcmp(passwd, "123456"); if (ret == 0) { puts("密码正确"); } else { puts("密码错误"); } return 0; }
5、编译运行
四、strcmp函数劫持
以下代码会涉及到linux环境高级编程的知识,有兴趣的朋友可以留言,根据大家感兴趣程度,我可以再写一篇博客单独介绍这些技巧。
第一步、编写劫持模块 mystrcmp.c
第二步、编译劫持模块
gcc -fPIC -shared -o mystrcmp.so mystrcmp.c
第三步、加载劫持模块
export LD_PRELOAD=./mystrcmp.so
第四步、运行test程序
大家可以看到,即使passwd的值为654321,也会打印密码正确,神奇不。
第五步、恢复环境
export LD_PRELOAD=
五、小结
以上就是劫持(Hook)库函数的完成流程了,大家觉得好玩不,有兴趣留言,后续还会更新更多好玩的。
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复