自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 在程序的资源段加载一个恶意代码

首先编写一个要加载的资源文件B.cpp,我们可以简单地让其输出一句话,将其编译运行生成可执行文件B.exe然后编写一个正常的宿主程序A.cpp,也可以简单地让其输出一句话在宿主程序后面加载资源文件,选择自定义资源文件,导入我们生成的可执行文件B.exe,为其设置id和类型在宿主程序A.cpp中使用函数FindResource、LoadResource、LockResource等,运行时...

2020-03-11 17:50:18 546

原创 DLL劫持实验

DLL劫持原理如果A.exe想要调用D.dll,并且使用里面的FunC函数,这样的话,我们把B.dll改名为BB.dll(有的不用,直接根据路径劫持),然后我们自己写一个B.dll里面有一个FunC这个函数,然后我们在这个函数里加载BB.dll,并且调用里面的FunC函数,之后我们再干一些自己的事,对于A.exe来说通常没什么异常,这样我们的劫持目的就达到了。实验过程首先编写正常的DLL导出...

2020-03-11 17:44:03 619 1

原创 DLL main的调用

建一个动态链接库项目,在其dllmain.cpp文件里补充代码如下在该项目下新建一个头文件,包含了导出函数的声明在Dll.cpp文件中写入导出函数的具体实现编译该项目,在项目目录下的Debug文件夹中生成了Dll.dll然后用VC6.0新建一个Win32 Console Application工程,写测试代码将之前生成的Dll.dll文件复制到test项目的Debug文件夹中...

2020-03-11 17:33:20 1383

转载 写一个程序kill其他某个进程

实验内容简单思路:首先枚举当前的进程列表,可以用快照方法,然后依次与用户输入的进程名字符串比较,判断是否为用户想要杀掉的进程,如果是则TerminateProcess,代码如下:/* KillProcess.cpp: 定义控制台应用程序的入口点 */#include<Windows.h>#include<TlHelp32.h>#include<atlstr....

2020-03-11 17:25:18 372

原创 恶意代码编写DLL实验

实验要求编写一个DLL,并将其导出成函数,可被其他程序调用。实验内容本次实验使用环境为Visual Stadio 2017,打开VS 2017,新建项目 -> Visual C++ -> Windows桌面 -> Windows控制台应用程序,选择要保存的路径,并为项目命名(我将其命名为DLLpractice),点确定。在项目目录下会生成许多文件,打开DLLpracti...

2020-03-11 17:19:21 857

原创 恶意代码Lab03-3分析实验

题目在一个安全的环境中执行给定的文件(Lab03-03.exe)中发现的恶意代码,同时使用基础的静态分析和动态分析工具监视它的行为。问题当你使用Process Explorer工具进行监视时,你注意到了什么?本次实验环境为虚拟机Windows XP,首先用IDA静态分析Lab3-03.exe,发现包含许多涉及内存、文件、线程的操作,程序的导入函数如下:先运行Process monito...

2020-03-10 09:27:12 1246 1

原创 编写基于PAM认证的应用程序

实验要求使用Linux下的用户名及其密码实现对该程序的认证(提示:只需完成应用程序的编写与认证策略的设定)该用户认证完成后,重新设置改用户的密码实验代码实验过程以root身份编写配置文件/etc/pam.d/mytest,添加内容如下编译程序:gcc –o mytest mytest.c -lpam -lpam_misc -ldl新建用户,用户名设为gao运行程序 ./my...

2020-03-03 14:46:05 314

原创 利用Netfilter构建用户级防火墙

实验要求设置iptables过滤规则为:所有从本机发出的icmp包全部到自己编写的应用程序编写应用程序,功能如下:允许从本机出发,目的地址为win ip的icmp包;丢弃其他任何icmp包;当出现错误时,做错误处理,能够清理占用资源,退出程序。实验环境Red Hat 9代码#include <linux/netfilter.h>#include <libi...

2020-03-03 14:35:37 599

原创 编写脚本iptest.sh、iptest2.sh、防火墙功能

实验要求要求1:1、修改本机ip为合适IP地址2、编写脚本iptest.sh,功能如下:3、iptest.sh清空所有存在的规则;4、只开放22号端口(ssh、tcp);5、禁止发送icmp包;6、INPUT默认规则为DROP;7、OUTPUT默认规则为ACCEPT;8、FORWARD默认规则为DROP ;9、iptest.sh能随系统启动。要求2:编写脚本iptest2....

2020-03-03 14:25:40 837

原创 使用Libpcap库捕获局域网中的IP包

实验要求打印数据包的源与目的物理地址;打印源IP与目的IP地址;打印出上层协议类型;如果上层协议为TCP或UDP协议,打印目的与源端口信息;如果上层协议为TCP或UDP协议,将数据以16进制与ASCII的两种方式同时打印出来,不可打印字符以‘.’代替;00000 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a GET / HT...

2020-03-03 14:12:22 931

原创 利用原始套接字实现一个TCP SYN flooding 程序

实验要求客户端不断向攻击端发送SYN连接请求客户端在发送数据时,通过源地址随机地址的方式隐藏自己的IP地址检验:在shell下通过“netstat -tn”检查syn_recv连接数检验自己的程序是否成功实验环境Red Hat 9代码运行首先查看目标机子有哪些开放端口,由于本次实验利用RedHat 9为目标机,因此通过命令netstat -tn查看,结果如下,I...

2020-03-01 14:52:54 1135 2

原创 利用select实现一个聊天室程序

实验要求用户默认处于广播模式,一个客户在其客户端发送的消息,其它客户端用户全部可以收到;程序支持下列命令/help:显示帮助信息(思考:信息是放在客户端还是服务器端);/quit:用户退出聊天室,同时将退出信息广播给其他用户;/who:显示在线用户;/send 用户名 消息:向指定用户发送点到点消息程序退出时清理所有的占用资源,包括内存资源、套接字等支持最大连接数限制;能够管理...

2020-02-29 15:02:37 954

原创 实现多线程端口扫描

实验要求能至少扫描5个IP地址;针对每个iP地址,开设100个线程同时对其进行扫描;如果端口打开,使用函数getservbyport获取其服务名,在屏幕上打印:IP port servername,如果是未知服务,则屏幕显示:ip port unkonown实验环境Red Hat 9代码ThreadsPortScan.c#include<stdlib.h>#i...

2020-02-29 14:40:27 1724 2

原创 实现并发服务器

实验要求修改远程控制服务器代码,使得服务器同时能够向多个用户提供服务。消除僵尸进程,收回所有子进程资源。实验环境Red Hat 9代码server.c#include<stdio.h>#include<unistd.h>#include<sys/socket.h>#include<string.h>#include<netd...

2020-02-29 14:24:39 750 1

原创 利用socket中的sock_stream套接字实现一个TCP公开扫描程序

实验要求利用socket中的sock_stream套接字实现一个TCP公开扫描程序,要求:输入:用户通过程序可以设定扫描的目的地址;用户可以设定扫描端口的范围;输出:显示被扫描目标开启了那些端口;程序的验证: 在shell下输入命令“netstat -lnt”,对比自己程序的输出结果实验环境Red hat 9代码#include<stdlib.h>#include...

2020-02-29 11:06:33 734

原创 利用流套接字实现一个简单的远程控制系统

实验要求客户端输入“quit”,客户端程序与服务器端程序打印退出信息,终止程序的执行;客户输入命令,客户端将命令通过流套接字发送给客户端,服务器执行收到的命令,并将结果发送到客户端显示;如果没有客户输入的命令,服务器发送命令非法信息,并在客户端显示该条信息;服务器端可以接收客户端多次连接,能够处理客户端非正常退出。实验环境Red hat 9代码tcpserver.c#incl...

2020-02-29 10:57:29 853

原创 采用UDP协议实现客户端与服务端的通信

实验要求客户端要求客户端可多次向服务器发送数据;客户端能够接收服务器端发送数据,并回显正确;服务端要求运行端口可配置 ;将客户端发送来的消息正确显示,并将该消息发送给客户端;支持多个客户端同时发送。实验环境Red Hat 9代码udpclient.c#include<stdlib.h>#include<stdio.h>#include<...

2020-02-29 10:41:17 1583 1

原创 Nachos文件系统与shell实验

实验目的实现用户程序中的以下文件系统调用,从而支持NachOS的用户程序中的文件创建、打开、读出、写入、关闭操作:create(), open(), write(), remove(), close()等。实现支持NachOS Shell的以下系统调用,从而支持NachOS的用户程序中的shell命令执行:exec(), join()实验内容系统调用首先在/userprog/sys...

2019-10-08 11:30:05 1853 2

原创 Nachos系统调用的实现

实验目的模仿code/test/add.c,阅读并理解其实现过程,实现求乘法,除法两种系统调用。了解并掌握Linux下nachos的系统调用实验内容在/userprog/syscall.h中进行宏定义和函数声明在/userprog/ksyscall.h中实现函数的功能在/userprog/exception.cc中通过switch实现对不同指令的响应功能,以及对异常...

2019-10-08 10:42:26 1824

原创 Nachos同步与互斥

实验题目看懂教师给出的参考代码;基于semaphore 实现Lock与Condition;利用Lock与Condition实现一个生产者-消费者问题,要求如下:1)创建线程时,利用fork第二个参数作为线程的编号;2)共有两个线程,一个生产者线程,一个消费者线程;3)两个线程共享一个只能存放一个整数的cache;4)按照生产者消费者的流程打印出结果。实验环境虚拟机VMware...

2019-10-08 10:27:01 839

原创 操作系统Nachos线程实验

实验目的理解NachOS-4.1中thread.h, thread.cc, main.cc的代码修改Nachos中相关代码,扩展线程的TCB,控制线程的并发度。给线程类增加两个成员:usrID, ThreadID,用来记录线程所属用户进程,和线程自身ID;根据用户自身ID限制系统最多只能产生128个线程。学会调试编译运行简单的Nachos程序代码运行结果...

2019-09-24 16:32:21 1679 2

原创 操作系统多线程编程

实验目的事先编辑好数据文件1.dat和2.dat,假设它们的内容分别为1 2 3 4 5 6 7 8 9 10和 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 , 设计一个程序,在这个程序中一共有3个线程,其中两个线程负责从文件读取数据到公共的缓冲区,另外一个线程从缓冲区读取数据作不同的处理(加和乘运算)。具体要求:线程1从1.dat将数据读文件读到buf1中;线程2从2....

2019-09-24 16:23:00 1840 1

原创 操作系统实验利用消息队列解决生产者消费者问题

实验目的代码运行结果程序定义了3个生产者和3个消费者,随机选取生产者消费者进行工作,将每个产品编号,运行结果显示了编号为X的产品被生产与被消费的过程。...

2019-09-24 16:16:10 2289 7

原创 Anaconda缺失大量文件解决方法

在安装Anaconda时曾遇到过如下图所示的问题缺失大量文件,在开始菜单找不到,利用小娜搜索也搜不到,显然安装失败。反复卸载重装,仍然是这样最后没办法,想着试试换个稍微低一点的版本。。。。。。居然,成功了。。。。。。如果开始菜单还没有的话,可以使用命令行切换到Anaconda目录下,执行下面的语句:python .\Lib\_nsis.py mkmenus安装了低版本后,点开Ana...

2019-09-17 00:55:29 5209 7

原创 Java电话账单计算

Customer.javaimport java.io.IOException;public class Customer { /** The customer's name in a String object. */ private String name; /** And have a reference to a Phone object. */ private Phon...

2019-08-27 11:26:04 691

原创 Java实现计算多项式的和

读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。程序要处理的幂最大为100。package multinomial;import java.util.Scanner;public class Multinomial { public static void main(String[] args) { Scanner in = new Scanner...

2019-08-27 10:58:25 1954

原创 Java实现城市距离计算

package distance;import java.util.ArrayList;import java.util.Scanner;public class Distance { private ArrayList<String> city = new ArrayList<String>(); public void addData(String s...

2019-08-27 10:54:21 920

原创 Java实现绩点计算

package gpa;import java.util.Scanner;class Calculator { Scanner in = new Scanner(System.in); private int length; //数组长度 private String[] name = new String[30]; //课程名称 priv...

2019-08-27 10:45:32 4844

原创 Java实现计算素数的和

给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。注意,是第n个素数到第m个素数之间的所有的素数,并不是n和m之间的所有的素数。package sumOfPrimeNumber;import java.util.Scanner;public class SumOfPrimeNumber {...

2019-08-27 10:38:16 2655

原创 Java实现读数

输入一个整数,用拼音逐个数字读出来package notebook;import java.util.ArrayList;import java.util.HashSet;public class NoteBook { private ArrayList<String> notes = new ArrayList<String>();//普通容器 //按顺...

2019-08-27 10:33:44 350

原创 Java实现简单记事本

package notebook;import java.util.ArrayList;import java.util.HashSet;public class NoteBook { private ArrayList<String> notes = new ArrayList<String>();//普通容器 //按顺序依次把内容接到后面 public...

2019-08-27 10:29:50 378

原创 Java分数相关计算

package fenshu;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("依次输入第1个分数的分子和分母:"); Fraction a =...

2019-08-27 10:26:38 1566

原创 Java二进制游戏

对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101,按照二进制位值将1的位的位值加起来就得到了结果13。package digitalEigenvalue...

2019-08-27 10:25:08 218

原创 Java实现硬币值换算

Coin.javapackage coin;import java.util.HashMap;import java.util.Scanner;public class Coin { private HashMap<Integer, String> coinnames = new HashMap<Integer, String>(); public Co...

2019-08-27 10:18:18 436

原创 Java实现钟表

Clock.javapackage clock;import java.util.Scanner;public class Clock { private Display hour = new Display(24); private Display minute = new Display(60); private Display second = new Display(60)...

2019-08-27 10:12:42 1561 1

原创 Java城堡游戏

在城堡中,走不同的门进入不同的房间(emm也没有太多功能玩法)Game.javapackage castle;import java.util.HashMap;import java.util.Scanner;public class Game { public Room currentRoom; private HashMap<String, Handler> ha...

2019-08-27 09:55:55 596

原创 C语言升序排序最少交换次数

#include<stdio.h>#define SIZE 100int search(const int array[], size_t size, int key);void main(){ int a[SIZE]; int i,searchKey,result; for(i=0;i<SIZE;i++) { a[i]=i*2; } printf("E...

2019-08-26 15:36:39 2956

原创 C语言线性查找递归算法

#include<stdio.h>#define SIZE 100int search(const int array[], size_t size, int key);void main(){ int a[SIZE]; int i,searchKey,result; for(i=0;i<SIZE;i++) { a[i]=i*2; } printf("E...

2019-08-26 15:34:34 856 2

原创 C语言洗牌与发牌游戏

普通版#include<stdio.h>#include<stdlib.h>#include<time.h>#define SUITS 4#define FACES 13#define CARDS 52void shuffle(int wDeck[][FACES]);void send(int wDeck[][FACES], const ch...

2019-08-26 15:16:53 1484

原创 C语言求边长500以内的毕达哥拉斯三元组的个数

#include<stdio.h>#include<math.h>#include<stdlib.h>int main() { int side1; //直角边1 int side2; //直角边2 int hypotenuse; //斜边 int count = 0; for (...

2019-08-26 15:13:10 1235

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除