C语言如何进行攻击修改数据

摘要:
本博客的例子在Windows下的vs2015版本进行的攻击测试,修改一段内存数据的地址的数据内容1.首先,在VS2015中新建一个空项目,点击源文件进行添加target.c文件,编写具体的代码如下:1#include2#include3#include//使用的是Windows的API45intmain(intargc,charconst

本博客的例子在Windows下的vs2015版本进行的攻击测试,修改一段内存数据的地址的数据内容

1.首先,在VS2015中新建一个空项目,点击源文件进行添加target.c文件,编写具体的代码如下:

1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <Windows.h> //使用的是Windows的API
4 
5 int main(int argc,char const *argv[])
6 {
7      int iCurValue = 0;
8 
9      printf("iCurValue address: 0x%x",&iCurValue); //主要是利用这个数据的地址进行攻击修改
10 
11      while(1)
12 {
13          Sleep(1000);  //延时1s,windows API的延时函数
14          ++iCurValue;
15          printf("%d",iCurValue);
16 }    
17 
18      system("pause");
19 
20      return 0;  
21 }

这时候我们运行上述的代码,达到了ICurValue的地址。

C语言如何进行攻击修改数据第1张

之后将这个运行程序设置为活动的

2.打开另外一个VS2015程序软件,然后同样新建一个项目,名为attack,添加源文件为attack.c,具体的代码如下:

1  #include <stdio.h>
2  
3 //_declspec  声明是外部的调用
4 //dllexport    dll的导出
5 
6 _declspec(dllexport) void attack(void)
7 {
8       int *ptr = (int *)0x23fa0c;  //注意,这里必须进行强制转换,不然的话,指针会认为0x23fa0c这个内存地址仅仅是一个普通的数据而已
9      *ptr = 10000;  //修改被攻击的数据的初始值
10  }

然后将这个程序的属性设置为动态库

C语言如何进行攻击修改数据第2张

之后点击生成--->生成方案,就会在当前项目所在目录生成了attack.dll

3.使用dllinject软件,进行婉转地修改攻击数据

C语言如何进行攻击修改数据第3张

C语言如何进行攻击修改数据第4张

C语言如何进行攻击修改数据第5张

这样我们就改变了它的值

通常情况下,可以应用到网吧中为自己账号充钱,当然,前提是你得知道你当前卡的地址或者你当前电脑在网管哪里的ID或者地址,否则无法修改哟

免责声明:文章转载自《C语言如何进行攻击修改数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【SEED Labs】TCP Attacks Lab从Prism中学习设计模式之MVVM 模式简述MVVM下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

android 获取控件位置坐标,屏幕尺寸,标题栏,状态栏高度

1.屏幕尺寸,源代码如下: DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); int screenWidth=metrics.widthPixels; //屏幕宽度 int...

C++库文件解析(conio.h)

转载:https://blog.csdn.net/ykmzy/article/details/51276596 Conio.h 控制台输入输出库该文内容部分参照百度百科 Conio.h 在C stanard library,ISO C 和POSIX标准中均没有定义。Conio 是Console Input/Output的简写,其中定义了通过控制台进行数据输...

我的全栈之路-C语言基础之数据存储

我的全栈之路-C语言基础之数据存储 我的全栈之路 2.1 计算机的计算单位 2.1.1 容量单位 2.1.2 速度单位 2.2 计算机底层为什么只能识别二进制 2.3 进制 2.3.1 进制概述 2.3.2 十进制转换二进制、八进制、十六进制 2.3.3 二进制、八进制、十六进制转十进制 2.3.4 二进制转八进制、十六进制 2.3.5 八进制...

C语言中宏的作用

在C语言#define机制中包括了一个规定,与允许把参数替换到文本中,这种实现通常称为宏或宏定义。下面是宏的声明方式: #define name(parameter-list) stuff 其中 parameter-list的左括号必须与name紧邻,如果中间有空白,parameter-list就会被解释为stuff的一部分。 宏的作用 1.替换作用:在程...

Sort函数(C++)

原创 C++中内置了sor函数供排序,函数原型为: #include<algorithm>  //所属头文件 sort(begin,end,cmp); //其中cmp参数可以省略,省略后默认升序排序 如果要进行降序排序,需要另外定义cmp函数: bool cmp(int a,int b){ //降序排序 return...

Math.radom()函数获取随机数组

Math.radom()函数获取随机数组   Math.radom()函数返回的是大于或等于0.0且小于1之间随机的double数。 利用Math.radom()函数获取随机整数数组的方法: 1 int[] source = new int[20]; 2 3 //获取随机数组 4 int i=0; 5...