一、前言:
相信很多学习计算机的同学,都有一个黑客梦,这次就给大家稍微展示一些“拙劣”的黑客技巧,仅限于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分
5 人评分
点我有惊喜!你懂得!浏览:972 |
C语言程序设计教程(第三版)课后习题6.5 (Java代码)浏览:1108 |
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:583 |
A+B for Input-Output Practice (IV) (C++代码)浏览:676 |
【绝对值排序】 (C++代码)浏览:670 |
小明A+B (C语言代码)浏览:1247 |
输出正反三角形 (C语言代码)浏览:780 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:762 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:603 |
Cylinder (C语言描述,蓝桥杯)浏览:1247 |