首页
关于
统计
友链
推荐
百度一下
腾讯视频
幻鹤主页
Search
1
使用AheadLib工具进行劫持DLL操作
2,848 阅读
2
数据库的关联查询
1,878 阅读
3
遇到闪照想保存?教你骚操作保存闪照
1,845 阅读
4
教大家“调教”应急食品
1,771 阅读
5
MySql的增删改查的练习
1,620 阅读
技术分享
Python
PHP
其他
网络安全
Java
JavaScript
生活趣闻
语言的魅力
作者的牢骚
登录
Search
标签搜索
mysql
kali
docker
dll
入门
MSF
网络安全
Huan-He
累计撰写
23
篇文章
累计收到
65
条评论
首页
栏目
技术分享
Python
PHP
其他
网络安全
Java
JavaScript
生活趣闻
语言的魅力
作者的牢骚
页面
关于
统计
友链
推荐
百度一下
腾讯视频
幻鹤主页
搜索到
23
篇与
幻鹤
的结果
2022-07-18
教大家“调教”应急食品
直接上代码吧import { segment } from "oicq"; import fetch from "node-fetch"; import lodash from "lodash"; const _path = process.cwd(); // 上面是导入配置文件就不要关 //1.定义命令规则 export const rule = { gn1: { reg: "^#功能测试1$", //匹配消息正则,命令正则 priority: 5000, //优先级,越小优先度越高 describe: "【#欢迎新人】开发简单示例演示", //【命令】功能说明 }, gn2: { reg: "^#功能测试2$", //匹配消息正则,命令正则 priority: 5000, //优先级,越小优先度越高 describe: "开发简单示例演示2", //【命令】功能说明 }, //这里以此类推就行了 }; //2.编写功能方法 //方法名字与rule中的newcomers保持一致 export async function gn1(e) { //这里写逻辑。当然需要一丢丢编程基础,if什么的和Java差不多 let msg = "刚刚启用了功能一!";//要回复文字 e.reply(msg);//回复 return true; //返回true 阻挡消息不再往下,其他插件不响应 } export async function gn2(e) { //当然这里msg不只文字,可以用[]来写成一个集合 let msg = [ segment.at(e.user_id),//通过函数 @用户 "\n欢迎使用Yunzai-Bot",//文本消息 segment.image(`http://q1.qlogo.cn/g?b=qq&nk=3533767368&s=100`), //图片 ]; e.reply(msg);//回复 return true; //返回true 阻挡消息不再往下,其他插件不响应 }然后就是自带的函数库at() 创建at元素face() 创建表情元素image() 创建图片元素flash() 创建闪照元素video() 创建视频元素record() 创建语音元素xml() 创建xml元素json() 创建json元素share() 创建链接分享元素location() 创建地点分享元素poke() 创建戳一戳元素bface() 创建bface元素sface() 创建sface元素mirai() 创建特殊元素
2022年07月18日
1,771 阅读
10 评论
0 点赞
2022-07-09
使用AheadLib工具进行劫持DLL操作
也许您听说过 DLL 劫持技术,但您还没有尝试过 DLL 劫持技术。 DLL劫持技术的原理是:由于输入表只包含 DLL 名称而不包含其路径名,加载程序必须在磁盘上搜索 DLL 文件。首先,它会尝试从当前程序所在的目录加载 DLL。如果没有找到,则在Windows系统目录中查找,最后在环境变量中列出的每个目录中查找。利用这个特性,首先伪造一个与系统同名的DLL,提供相同的输出表,每个输出函数都转为真正的系统DLL。程序调用系统DLL时,会先调用当前目录下的假DLL,完成相关功能后,会跳转到与系统DLL同名的函数处执行。这个过程用系统DLL被劫持的形象来描述观察导入的DLL,如KERNEL32.DLL、USER32.DLL等受系统保护的重要DLL,比较难劫持,所以我们选择VERSION.DLL。至于判断是否是系统保护的DLL,可以查看注册表中的key值。里面的DLL受系统保护,加载路径是固定的:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\knowndlls编码实现现在,我给出入口点的version.dll劫持部分的代码,其余代码使用AheadLib工具生成,我只是在入口点处为弹窗添加了一行代码。 // 入口函数 BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, PVOID pvReserved) { if (dwReason == DLL_PROCESS_ATTACH) { DisableThreadLibraryCalls(hModule); ::MessageBox(NULL, "I am Demon", "CDIY", MB_OK); return Load(); } else if (dwReason == DLL_PROCESS_DETACH) { Free(); } return TRUE; }qq的劫持dll选用{callout color="#f0ad4e"}libuv.dll{/callout}新建一个vs dll项目,然后将.cpp的代码复制进去,并加上<windows.h>和<stdlib.h>头文件然后在入口函数的地方填上一个弹出计算器的语句将原dll文件改名为之前在软件里面复制的名字libuvOrg.dll,并把我们生成的dll文件复制进去点击QQ.exe即可弹出calc.exe
2022年07月09日
2,848 阅读
13 评论
0 点赞
2022-06-17
mySql期末复习
use yggl; Create table employees2( 员工编号 char(6) not null primary key, 姓名 char(10) not null, 学历 char(4) not null, 出生时间 date not null, 性别 char(2) not null, 工作年限 tinyint(1) null, 地址 varchar(20) null, 电话号码 char(12) null, 员工部门号 char(3) null );一、修改employees表:在‘工作年限’字段后面添加一个字段:邮箱(varchar(20) 空);修改字段‘性别’的类型为tinyint;删除字段‘地址’alter table employees2 add 邮箱 varchar(20) null after 工作年限; 二、公司新成立一个后勤部,部门 编码为7,备注为“筹建中”。insert into department values (7,'后勤部','筹建中'); 三、经过一段时间的工作张乐调到财务部 工作;其工资增加2000元update employees,salary set 员工部门号=1,收入=收入+2000 where employees.员工编号=salary.员工编号 and 姓名='张乐';四、王林辞职离开公司,请将与王林相关的数据全部删除。delete employees,salary from employees,salary where employees.员工编号=salary.员工编号 and 姓名='王五';五、查询employees表中员工的姓名和性别,要求性别值为1时显示为‘男’,为0时显示为‘女’。select 姓名, case when 性别=1 then '男' when 性别=0 then '女' end as 性别 from employees;六、查询yggl数据库中,“研发部”所有男性员工的员工编号,姓名,性别,工作年限,电话号码,工作的部门 名称,实际收入。select 姓名,性别,工作年限,电话号码,部门名称,收入-支出 as 实际收入 from employees join department on employees.员工部门号=department.部门编号 join salary using(员工编号) where 部门名称='研发部';七、分别统计男生和女生的总人数。select 性别,count(*) from employees group by 性别;八、按员工学历分组统计各学历人数select 学历,count(*) from employees group by 学历;九. 按员工的工作年限分组,统计各个工作年限的人数,并按人数从大到小排序。select 工作年限,count(*) as 人数 from employees group by 工作年限 order by 人数 desc;十 查询每个部门的雇员人数超过2人的部门 名称与员工数量。select 部门名称,count(*) as 人数 from employees join department on employees.员工部门号=department.部门编号 group by 部门名称 having 人数>2;十一、查询财务部、研发部、市场部的员工信息select employees.* from employees join department on 员工部门号=部门编号 where 部门名称 in ('财务部','研发部','市场部');十二、查询“李可”的姓名、工作年限和所工作的部门名称select 姓名,工作年限,部门名称 from employees join department on 员工部门号=部门编号 where 姓名='李可';十三、对employees数据表创建视图,并完成相关查询操作⑴创建视图,包含所有男员工的员工编号、姓名、工作年限和学历create or replace view emp_view as select 员工编号,姓名,工作年限,学历 from employees where 性别=1;⑵从上述视图中查询工作年限在两年以上的员工信息select * from emp_view where 工作年限>2;十四、使用Alter Table命令创建索引⑴对employees数据表的出生日期添加一个唯一索引date_ind,姓名和性别添加一个复合索引na_indalter table employees add unique index date_ind(出生时间), add index na_ind(姓名,性别);⑵对department数据表中的员工部门号创建主键索引alter table department add primary key(部门编号);十五、将salary表中字段员工编号设置为外键,参照于employees表中的员工编号字段,并在更新、删除数据时设置CASCADE级联策略。alter table salary add foreign key(员工编号) references employees(员工编号) on delete cascade on update cascade; 十六、创建一个触发器,实现当向employees表插入一行数据时,自动在salary表中增加一条记录,其中收入=5000(1+增加的工作年限0.1),支出=0。delimiter $$ create trigger employees_insert after insert on employees for each row begin insert into salary values(NEW.员工编号,5000*(1+NEW.工作年限*0.1),0); end $$ delimiter ; # 触发事件 insert into employees values('000123','张红','大专','1994-02-11',1,2,'四川成都高新区','12365987485','1');十七、创建一个存储过程,比较两个员工的实际收入,如果前者比后者高,输出”前者高”,小于则输出”后者高”,相同则输出“相同”。调用该存储过程比较”000001”和”108991”这两个员工的实际收入。delimiter $$ create procedure compare(in num1 char(16),in num2 char(6),out result char(6)) begin declare sr1 float; declare sr2 float; select 收入 into sr1 from salary where 员工编号=num1; select 收入 into sr2 from salary where 员工编号=num2; if sr1<sr2 then set result='后者高'; else set result='相同'; end if; end $$ delimiter ; #触发事件 call compare('000001','108991',@res)=@res;
2022年06月17日
1,243 阅读
0 评论
1 点赞
2022-06-07
期末Java项目
[TOC]期末项目《日记系统》大体实现功能用户系统日记增删改查日记分享与多用户评论用户系统具体功能:{x} 用户登录{x} 用户注册{ } 用户积分增减 加 排行榜日记主题功能:{ } 写日记{ } 删除旧日记{ } 修改以前日记{ } 查看日记{ } 日记操作将影响用户积分{ } 所有日记显示多用户互动功能:{ } 用户可对日记选择分享到共享空间(可选匿名){ } 其他用户可对共享空间文章 点赞 + 评论{ } 管理员可对共享空间日记 删除 + 修改数据库设计主题表User 储存用户数据Diary 储存用户日记表设计User表名类型key注释idintyes用户的id,注册时自增不需要参数usernamechar 用户的账号passwordchar 用户的密码(有条件则使用md5)namechar 用户的昵称adminint 管理权限integralint 用户积分RegTimetime 注册时间lastTimetime 最后一次登录Diary表名类型key注释idintyes日记的id,自增authorint 日记作者的idtitlevarchar 日记标题addTimetime 文章写作时间keyWordvarchar 文章关键词texttext 文章主体newTimetime 文章新修改时间shareint 是否发表共享goodint 点赞数量Comment表名类型key注释idintyes评论的iddiaIdint 目标日记idcomIdint 评论者的idtexttext 评论内容timetime 评论时间floorint 评论楼层sql数据库代码# 创建 User 表 CREATE TABLE `User` ( `id` int(12) NOT NULL AUTO_INCREMENT, `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `admin` int(12) NULL DEFAULT 0, `regTime` datetime(0) NULL DEFAULT NULL, `lastTime` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), PRIMARY KEY (`id`) USING BTREE ); # 创建comment 表 CREATE TABLE `comment` ( `id` int(11) NOT NULL AUTO_INCREMENT, `diaId` int(11) NOT NULL, `comId` int(11) NOT NULL, `text` text, `time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `floor` bigint(255) NOT NULL, PRIMARY KEY (`id`) ) ; # 创建 diary表 CREATE TABLE `diary` ( `id` int(12) NOT NULL AUTO_INCREMENT, `author` int(12) NOT NULL, `title` varchar(255) DEFAULT NULL, `addTime` datetime DEFAULT NULL, `keyWord` varchar(255) DEFAULT NULL, `text` text, `newTime` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, `share` int(12) DEFAULT '0', `good` int(12) DEFAULT '0', PRIMARY KEY (`id`) );
2022年06月07日
1,017 阅读
0 评论
0 点赞
2022-04-29
MySql的综合练习
先来看配置一、 创建数据库XSCJCreate database XSCJ;二、 打开数据库XSCJUse XSCJ;三、创建学生表studentCreate table student ( 学号 char(6) not null primary key, 姓名 char(8) not null, 专业名 char(10) null, 性别 tinyint(1) not null, 出生时间 date null, 总学分 tinyint(1) null, 照片 blob null, 备注 text null );四、创建课程表classCreate table class( 课程号 char(3) not null primary key, 课程名 char(16) not null, 开课学期 tinyint(1) null, 学时 tinyint(1) not null, 学分 tinyint(1) null );五、创建成绩表scoreCreate table score( 学号 char(6) not null, 课程号 char(3) not null, 成绩 tinyint(1) null, 学分 tinyint(1) null, primary key(学号,课程号) );六、向student表中插入数据insert into student values ('081101','王林','计算机',1,'1990-02-10',50,'',NULL), ('081102','程明','计算机',1,'1991-02-01',50,'',NULL), ('081103','王燕','计算机',0,'1989-10-06',50,'',NULL), ('081104','韦严平','计算机',1,'1990-08-26',50,'',NULL), ('081106','李方方','计算机',1,'1990-11-20',50,'',NULL), ('081107','李明','计算机',1,'1990-05-01',54,'','提前修完《数据结构》'), ('081108','林一帆','计算机',1,'1989-08-05',52,'','已提前修完一门课'), ('081109','张强民','计算机',1,'1989-08-11',50,'',NULL), ('081110','张蔚','计算机',0,'1991-07-22',50,'','三好生'), ('081111','赵琳','计算机',0,'1990-03-18',50,'',NULL), ('081113','严红','计算机',0,'1989-08-11',48,'','有一门功课不及格,待补考'), ('081201','王敏','通信工程',1,'1989-06-10',42,'',NULL), ('081202','王林','通信工程',1,'1989-01-29',40,'','有一门功课不及格,待补考');七、向class表中插入数据insert into class values ('101','计算机基础',1,80,5), ('102','程序设计与语言',2,68,4), ('206','离散数学',4,68,4), ('208','数据结构',5,68,4), ('209','操作系统',6,68,4), ('210','计算机原理',5,85,5), ('212','数据库原理',7,68,4), ('301','计算机网络',7,51,3), ('302','软件工程',7,51,3);八、向score表中插入数据insert into score values ('081101','101',80,4), ('081101','102',78,4), ('081101','206',76,4), ('081102','102',78,4), ('081102','206',78,4), ('081103','101',62,4), ('081103','102',70,4), ('081103','206',81,4);然后是题目1 查询student表中各个同学的姓名、专业名和总学分2 查询student表中计算机系同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark3 查询student表中计算机系各同学的学号、姓名和总学分,对其总学分按以下规则进行替换:若总学分为空值,替换为“尚未选课”;若总学分小于50,替换为“不及格”;若总学分在50~52之间,替换为“合格”;若总学分大于52,替换为“优秀”。列标题更改为“等级”。4显示score表中学号为081101的学生课程信息5 对student表只选择专业名和总学分,消除结果集中的重复行6 求学生的总人数7 统计备注不为空的学生数目8 统计student学生表中总学分在50分以下的人数9 求选修101课程的学生的最高分和最低分10 求学号081101的学生所学课程的总成绩11 求选修101课程的学生的平均成绩12 查询student表中学号为081101的学生的情况13 查询student表中总学分大于50的学生的情况14查询student表中备注为空的同学的情况15 查询student表中专业为计算机,性别为女(0)的同学的情况16 查询score表中102和206课程中大于80分的同学的记录17 查询student表中姓“王”的学生学号、姓名和性别18 查询student表中不在1989年出生的学生情况19 查询student表中专业为“计算机”、“通信工程”的学生的情况20 查找所有学生选过的课程名和课程号21 查找选修了206课程且成绩在80分以上的学生姓名及成绩22 查找选修了“计算机基础”课程且成绩在80分以上的学生学号、姓名、课程名及成绩23 查找所有学生情况及他们选修的的课程号,若学生未选修任何课,也要包括其情况24 查找被选修了课程为206课程的学生的姓名、学号25 查找未选修离散数学的学生的姓名、学号和专业名(子查询)26 查找选修了离散数学的学生学号27 查找student表中比所有计算机系的学生年龄都大的学生的学号、姓名、专业名和出生日期28 查找score表中课程号206的成绩不低于课程号101的最低成绩的学生的学号29 查找选修了206课程的学生姓名30 将student中各专业名输出31求student中各专业的学生数32 求被选修的各门课程的平均成绩和选修该课程的人数33 在XSCJ数据库上产生一个结果集,包括各个专业的男生人数,女生人数,总人数及学生总人数(rollup)34 查找平均成绩在85分以上的学生的学号和平均成绩35 查找选修课程超过2门且成绩都在77分以上的学生的学号36 将通信工程专业的学生按出生日期先后排序37 将计算机专业学生的‘计算机基础’课程成绩按降序排列38 将计算机专业学生按其平均成绩排列39 查找student表中学号最靠前的5位学生的信息40 查找student表中第4位同学开始的5位学生的信息{dotted startColor="#ff6c6c" endColor="#1989fa"/}解答:1:select 姓名,专业名,总学分 from student;2:select 学号 as number,姓名 as name,总学分 as mark from student;3:select 学号,姓名,case when 总学分 is NULL then '尚未选课' when 总学分<50 then '不及格' when 总学分>=50 and 总学分<=52 then '合格' when 总学分>52 then '优秀' end as 等级 from student;4:select * from score where 学号=081101;5:select distinct 专业名,总学分 from student;6:select count(学号) as 学生总人数 from student;7:select count(学号) as 人数 from student where 备注 is not null;8:select count(学号) as 人数 from student where 总学分<50;9:select max(成绩) as 最高分,min(成绩) as 最低分 from score where 课程号=101;10:select sum(成绩) as 总成绩 from score where 学号=081101;11:select avg(成绩) as 平均分 from score where 课程号=101;12:select * from student where 学号=081101;13:select * from student where 总学分>50;14:select * from student where 备注 is null;15:select * from student where 专业名='计算机' and 性别=0;16:select * from score where (课程号=102 or 课程号=206) and 成绩>80;17:select 学号,姓名,性别 from student where 姓名 like '王%';18:select * from student where year(出生时间)!=1989;19:select * from student where 专业名 in ('计算机','通信工程');20:select 课程名,score.课程号 from class,score where class.课程号=score.课程号;21:select 姓名,成绩 from student join score using(学号) where 课程号=206 and 成绩>80;22:select 学号,姓名,课程名,成绩 from score join student using(学号) join class using(课程号) where 课程名='计算机基础' and 成绩>80;23:select student.*,score.课程号 from student left outer join score using(学号);24:select distinct 姓名,学号 from student join score using(学号);25:select 姓名,学号,专业名 from student where 学号 in (select 学号 from score join student using(学号) join class using(课程号) where !课程名='离散数学');26: select distinct 学号 from student join score using(学号) where 课程号 in (select 课程号 from class where 课程名='离散数学');27:select min(出生时间) from student where 专业名='计算机'; select 学号,姓名,专业名,出生时间 from student where 出生时间 in (select min(出生时间) from student where 专业名='计算机');28:select min(成绩) from score where 课程号=101; select 学号 from score where 课程号=206 and 成绩>(select min(成绩) from score where 课程号=101);29:select 姓名 from score join student using(学号) where 课程号=206;30:select distinct 专业名 from student;31:select 专业名,count(*) as 数量 from student group by 专业名;32:select 课程号,avg(成绩) as 平均成绩,count(学号) as 人数 from score group by 课程号;33:select 性别,count(学号) from student group by 性别 with rollup;34:select 学号,avg(成绩) as 平均成绩 from score having 平均成绩>85;35:select 学号 from score where 成绩>77 group by 学号 having count(学号)>2;36:select * from student where 专业名='通信工程专业' order by 出生时间;37:select student.*,成绩 from score join student using(学号) join class using(课程号) where 专业名='计算机' and 课程名='计算机基础' order by 成绩 desc;38:select student.*,avg(成绩) as 平均成绩 from student join score using(学号) where 专业名='计算机' group by score.学号 order by 平均成绩;39:select * from student order by 学号 limit 5;40:select * from student limit 4,5;
2022年04月29日
990 阅读
0 评论
0 点赞
1
2
3
4
5