首页
关于
统计
友链
推荐
百度一下
腾讯视频
幻鹤主页
Search
1
使用AheadLib工具进行劫持DLL操作
2,833 阅读
2
数据库的关联查询
1,869 阅读
3
遇到闪照想保存?教你骚操作保存闪照
1,833 阅读
4
教大家“调教”应急食品
1,759 阅读
5
MySql的增删改查的练习
1,612 阅读
技术分享
Python
PHP
其他
网络安全
Java
JavaScript
生活趣闻
语言的魅力
作者的牢骚
登录
Search
标签搜索
mysql
kali
docker
dll
入门
MSF
网络安全
Huan-He
累计撰写
23
篇文章
累计收到
65
条评论
首页
栏目
技术分享
Python
PHP
其他
网络安全
Java
JavaScript
生活趣闻
语言的魅力
作者的牢骚
页面
关于
统计
友链
推荐
百度一下
腾讯视频
幻鹤主页
搜索到
20
篇与
技术分享
的结果
2023-03-03
Docker的基础入门
Docker常用命令帮助命令docker version # 显示版本信息 docker info #显示信息 docker 命令 --help #万能命令镜像命令docker images #显示所有镜像docker images REPOSITORY TAG IMAGE ID CREATED SIZE #解释 REPOSITORY 仓库源 TAG 镜像的标签 IMAGE ID 镜像的id CREATED 镜像的创建时间 SIZE 镜像的大小 # 可选项 Options: -a, --all #列出所有镜像 -q, --quiet #只显示id docker docker search 搜索镜像[root@schuanhe ~]# docker search mysql NAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used, open-source relation… 13878 [OK] mariadb MariaDB Server is a high performing open sou… 5291 [OK] # 可选项,通过收藏来过滤 --filter=starts=3000 #搜索出来的是收藏大于3000的 docker pull 下载镜像docker pull:5.7 #可以加版本号docker rm 删除docker rmi -f 镜像id #通过id删除 docker rmi -f 镜像id id2 id3 #通过id多个删除 docker rmi -f $(docker images -aq) #删除全部容器命令说明∶我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习docker pull centos新建容器并启动docker run [可选参数] images # 参数说明 --name="Name" 容器名字 tomcat01 tomcat02 -d 后台运行方式 -it 使用交互方式运行,进入容器查看内容 -p 指定容器的端口 -p 8080:8080 -p 主机端口:容器端口(常用 ) -p 容器端口 -p 随机指定端口 # 启动并进入容器 [root@schuanhe ~]# docker run -it centos /bin/bash [root@04df212b39ac /]# #退出命令 exit 列出所有运行的容器docker ps #列出在运行的容器 -a #列出在运行的容器+历史运行过的容器 -n=? #显示最近的容器 -q #只显示id退出容器 exit #直接退出并停止 Ctrl + P + Q #容器不停止退出删除容器docker rm 容器id #删除指定容器,不能删除正在运行的,强制删除就是rm -f docker rm -f $(docker ps -aq) #删除全部容器 docker ps -a -q|xargs docker rm #删除全部容器启动和停止容器docker start 容器id #启动容器 docker restart 容器id #重启容器 docker stop 容器id #停止正在运行的容器 docker kill 容器id #强制停止容器常用的其他命令后台启动容器# 命令 docker run -d 镜像名 docker run -d centos #问题docker 发现centos停止了 #常见的坑:docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止 # nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序了查看日志命令docker logs #发现没有日志 # 自己一段shell脚本 docker run -d centos /bin/sh -c "while true;do echo huanhe;sleep 1;done" #大概就是循环输出huanhe,一秒一次 #现在查看日志 docker logs -tf --tail 10 8e387da387c5 #显示日志 -t #带上时间戳 -f #显示行数 --tail number #要显示的日志条数查看容器中的进程信息# 命令 docker top 容器id docker top 8e387da387c5 UID PID PPID C STIME TTY TIME CMD root 1015 996 0 16:50 ? 00:00:00 /bin/sh -c while true;do echo huanhe;sleep 1;done root 4006 1015 0 17:00 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1查看镜像的源数据#命令 docker inspect 容器id docker inspect 8e387da387c5 [ { "Id": "8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3", "Created": "2023-03-03T08:50:25.340196124Z", "Path": "/bin/sh", "Args": [ "-c", "while true;do echo huanhe;sleep 1;done" ], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 1015, "ExitCode": 0, "Error": "", "StartedAt": "2023-03-03T08:50:25.604270298Z", "FinishedAt": "0001-01-01T00:00:00Z" }, "Image": "sha256:5d0da3dc976460b72c77d94c8a1ad043720b0416bfc16c52c45d4847e53fadb6", "ResolvConfPath": "/var/lib/docker/containers/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3/resolv.conf", "HostnamePath": "/var/lib/docker/containers/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3/hostname", "HostsPath": "/var/lib/docker/containers/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3/hosts", "LogPath": "/var/lib/docker/containers/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3/8e387da387c5b1657db6d06fe8c44ce7a30a7b22141df4b187e75ab28951c3c3-json.log", "Name": "/peaceful_margulis", "RestartCount": 0, "Driver": "overlay2", "Platform": "linux", "MountLabel": "", "ProcessLabel": "", "AppArmorProfile": "", "ExecIDs": null, "HostConfig": { "Binds": null, "ContainerIDFile": "", "LogConfig": { "Type": "json-file", "Config": {} }, "NetworkMode": "default", "PortBindings": {}, "RestartPolicy": { "Name": "no", "MaximumRetryCount": 0 }, "AutoRemove": false, "VolumeDriver": "", "VolumesFrom": null, "CapAdd": null, "CapDrop": null, "CgroupnsMode": "host", "Dns": [], "DnsOptions": [], "DnsSearch": [], "ExtraHosts": null, "GroupAdd": null, "IpcMode": "private", "Cgroup": "", "Links": null, "OomScoreAdj": 0, "PidMode": "", "Privileged": false, "PublishAllPorts": false, "ReadonlyRootfs": false, "SecurityOpt": null, "UTSMode": "", "UsernsMode": "", "ShmSize": 67108864, "Runtime": "runc", "ConsoleSize": [ 0, 0 ], "Isolation": "", "CpuShares": 0, "Memory": 0, "NanoCpus": 0, "CgroupParent": "", "BlkioWeight": 0, "BlkioWeightDevice": [], "BlkioDeviceReadBps": null, "BlkioDeviceWriteBps": null, "BlkioDeviceReadIOps": null, "BlkioDeviceWriteIOps": null, "CpuPeriod": 0, "CpuQuota": 0, "CpuRealtimePeriod": 0, "CpuRealtimeRuntime": 0, "CpusetCpus": "", "CpusetMems": "", "Devices": [], "DeviceCgroupRules": null, "DeviceRequests": null, "KernelMemory": 0, "KernelMemoryTCP": 0, "MemoryReservation": 0, "MemorySwap": 0, "MemorySwappiness": null, "OomKillDisable": false, "PidsLimit": null, "Ulimits": null, "CpuCount": 0, "CpuPercent": 0, "IOMaximumIOps": 0, "IOMaximumBandwidth": 0, "MaskedPaths": [ "/proc/asound", "/proc/acpi", "/proc/kcore", "/proc/keys", "/proc/latency_stats", "/proc/timer_list", "/proc/timer_stats", "/proc/sched_debug", "/proc/scsi", "/sys/firmware" ], "ReadonlyPaths": [ "/proc/bus", "/proc/fs", "/proc/irq", "/proc/sys", "/proc/sysrq-trigger" ] }, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/7aa21d897e499a01fbf12f06f086869354758dc5388f5fad9bf299869e8bd5a9-init/diff:/var/lib/docker/overlay2/00b5c705910cae599a2feaa2e1cf732e6dd237f5f213bc959b1931a223432d46/diff", "MergedDir": "/var/lib/docker/overlay2/7aa21d897e499a01fbf12f06f086869354758dc5388f5fad9bf299869e8bd5a9/merged", "UpperDir": "/var/lib/docker/overlay2/7aa21d897e499a01fbf12f06f086869354758dc5388f5fad9bf299869e8bd5a9/diff", "WorkDir": "/var/lib/docker/overlay2/7aa21d897e499a01fbf12f06f086869354758dc5388f5fad9bf299869e8bd5a9/work" }, "Name": "overlay2" }, "Mounts": [], "Config": { "Hostname": "8e387da387c5", "Domainname": "", "User": "", "AttachStdin": false, "AttachStdout": false, "AttachStderr": false, "Tty": false, "OpenStdin": false, "StdinOnce": false, "Env": [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ], "Cmd": [ "/bin/sh", "-c", "while true;do echo huanhe;sleep 1;done" ], "Image": "centos", "Volumes": null, "WorkingDir": "", "Entrypoint": null, "OnBuild": null, "Labels": { "org.label-schema.build-date": "20210915", "org.label-schema.license": "GPLv2", "org.label-schema.name": "CentOS Base Image", "org.label-schema.schema-version": "1.0", "org.label-schema.vendor": "CentOS" } }, "NetworkSettings": { "Bridge": "", "SandboxID": "301bbec083d20ed5c170d472a5dc35048dd597415f24585a52facca836e0debb", "HairpinMode": false, "LinkLocalIPv6Address": "", "LinkLocalIPv6PrefixLen": 0, "Ports": {}, "SandboxKey": "/var/run/docker/netns/301bbec083d2", "SecondaryIPAddresses": null, "SecondaryIPv6Addresses": null, "EndpointID": "d7791514fc4a3010e2041b4c2b69c689a824cdda9aa62549cedb2e9f9019dcae", "Gateway": "172.17.0.1", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "MacAddress": "02:42:ac:11:00:02", "Networks": { "bridge": { "IPAMConfig": null, "Links": null, "Aliases": null, "NetworkID": "02e2b33f8b5771ae41374ca58494b286dd5c9c97e2cb6163c96367f2c22c714e", "EndpointID": "d7791514fc4a3010e2041b4c2b69c689a824cdda9aa62549cedb2e9f9019dcae", "Gateway": "172.17.0.1", "IPAddress": "172.17.0.2", "IPPrefixLen": 16, "IPv6Gateway": "", "GlobalIPv6Address": "", "GlobalIPv6PrefixLen": 0, "MacAddress": "02:42:ac:11:00:02", "DriverOpts": null } } } } ]进入当前正在运行的容器#我们通常容器都是使用后台方式运行的,需要进入容器,修改一些配置 #命令 docker exec -it 容器id bashShell #测试 docker exec -it 8e387da387c5 /bin/bash [root@schuanhe ~]# docker exec -it 8e387da387c5 /bin/bash [root@8e387da387c5 /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 08:50 ? 00:00:00 /bin/sh -c while true;do echo huanhe;sleep 1;done root 1180 0 0 09:09 pts/0 00:00:00 /bin/bash root 1213 1 0 09:10 ? 00:00:00 /usr/bin/coreutils --coreutils-prog-shebang=sleep /usr/bin/sleep 1 root 1214 1180 0 09:10 pts/0 00:00:00 ps -ef # 方式二 docker attach 容器id #方式一 是开启一个新的终端 #方式二 是进入正在执行的终端把容器内文件拷贝到主机上docker cp 容器id:容器内路径 目的地址路径常用命令总结 attach #当前she17 下attach 连接指定运行镜像 build #通过Dockerfile定制镜像 commit #提交当前容器为新的镜像 cp #从容器中拷贝指定文件或者目录到宿主机中 create #创建一个新的容器,同run,但不启动容器 diff #查看docker容器变化 events #从docker服务获取容器实时事件 exec #在已存在的容器上运行命令 export #导出容器的内容流作为一个 tar归档文件[对应import] history #展示一个镜像形成历史 images #列出系统当前镜像 import #从tar包中的内容创建一个新的文件系统映像[对应export] info #显示系统相关信息 inspect #查看容器详细信.息. kill #kill指定docker容器 load #从一个tar 包中加载一个镜像[对应save] login #注册或者登陆一个docker源服务器 logout #从当前Docker registry 退出 logs #输出当前容器日志信息 pause #查看映射端口对应的容器内部源端口 port #暂停容器 ps #列出容器列表 pull #从docker镜像源服务器拉取指定镜像或者库镜像 push #推送指定镜像或者库镜像至docker源服务器 rename Rename a container restart #重启运行的容器 rm #移除一个或者多个容器 rmi #移除一个或多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可继续或-f强制册除] run #创建一个新的容器并运行一个命令 save #保存一个镜像为一个 tar包[对应1oad] search #在docker hub中搜索镜像 start #启动容器 stats Display a live stream of container(s) resource usage statistics stop #停止容器 tag #给源中镜像打标签 top #查看容器中运行的进程信息 unpause #取消暂停容器 update Update configuration of one or more containers version #查看docker版本号 wait #截取容器停止时的退出状态值
2023年03月03日
864 阅读
0 评论
0 点赞
2022-11-05
node.js框架下的群机器人关联学校教务系统
q群机器人绑定教务系统实现课程提醒,和固定会议号提醒
2022年11月05日
1,307 阅读
0 评论
3 点赞
2022-11-02
Javaweb简易商城开源捏
开源在github,免费的star点一点 github 完成的功能有 {x} 登录 {x} 增加商品 {x} 修改商品 {x} 删除商品 {x} 分页功能 {x} cookie模块css方面稍微加了一丢丢
2022年11月02日
1,035 阅读
0 评论
0 点赞
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,759 阅读
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,833 阅读
13 评论
0 点赞
1
2
3
4