反开盒应急导航程序未解决保存文件版
2026/6/6 4:01:01 网站建设 项目流程

/**

* 文件名: anti_doxing.c

* 描述: 反开盒应急导航 (命令行版)

* 编译: gcc anti_doxing.c -o anti_doxing

* 运行: ./anti_doxing

*/

#define _CRT_SECURE_NO_WARNINGS // 解决 Visual Studio 对 fopen 等函数的警告

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

#ifdef _WIN32

#include <windows.h>

#define CLEAR_SCREEN() system("cls")

#define SLEEP_SEC(x) Sleep((x)*1000)

#else

#include <unistd.h>

#define CLEAR_SCREEN() system("clear")

#define SLEEP_SEC(x) sleep(x)

#endif

#define MAX_INPUT 256

#define MAX_LOG 100

// 步骤状态

typedef struct {

int completed;

char timestamp[64];

} StepStatus;

// 全局日志

char logs[MAX_LOG][256];

int log_count = 0;

// 获取当前时间字符串

void get_current_time(char *buffer, size_t size) {

time_t now = time(NULL);

struct tm *tm_info = localtime(&now);

strftime(buffer, size, "%Y-%m-%d %H:%M:%S", tm_info);

}

// 添加日志

void add_log(const char *msg) {

if (log_count < MAX_LOG) {

char timestamp[64];

get_current_time(timestamp, sizeof(timestamp));

snprintf(logs[log_count], sizeof(logs[0]), "[%s] %s", timestamp, msg);

log_count++;

}

}

// 打印带颜色的提示 (简单的ANSI,Windows下可能需要额外处理,但大致可用)

void print_color(const char *color, const char *text) {

// 简单实现:直接打印,不处理颜色(确保兼容)

printf("%s", text);

}

// 等待用户按回车

void wait_enter() {

printf("\n➡️ 按回车继续...");

while (getchar() != '\n');

getchar(); // 二次确保

}

// 清空输入缓冲区

void clear_input() {

int c;

while ((c = getchar()) != '\n' && c != EOF);

}

// 显示步骤并等待确认

int run_step(int step_num, const char *title, const char *instructions, const char *confirm_hint) {

char input[MAX_INPUT];

printf("\n========================================\n");

printf("步骤 %d: %s\n", step_num, title);

printf("========================================\n");

printf("%s\n", instructions);

printf("\n%s\n", confirm_hint);

printf("👉 完成后输入 'done' 并回车: ");

fgets(input, sizeof(input), stdin);

// 去掉换行符

input[strcspn(input, "\n")] = 0;

if (strcmp(input, "done") == 0) {

add_log("完成步骤");

return 1;

} else {

printf("⚠️ 输入错误,请重新运行本程序。\n");

return 0;

}

}

// 保存日志到文件

void save_logs() {

char filename[128];

time_t now = time(NULL);

struct tm *tm_info = localtime(&now);

strftime(filename, sizeof(filename), "应急记录_%Y%m%d_%H%M%S.txt", tm_info);

FILE *fp = fopen(filename, "w");

if (!fp) {

printf("❌ 无法创建记录文件!\n");

return;

}

fprintf(fp, "反开盒应急导航 - 操作时间线\n");

fprintf(fp, "生成时间: %s", ctime(&now));

fprintf(fp, "================================\n");

for (int i = 0; i < log_count; i++) {

fprintf(fp, "%s\n", logs[i]);

}

fprintf(fp, "\n你已经完成了所有可操作步骤。\n");

fprintf(fp, "请妥善保存本文件,可作为报警/律师的辅助材料。\n");

fclose(fp);

printf("\n✅ 应急记录已保存为: %s\n", filename);

}

int main() {

printf("\n========== 反开盒应急导航 ==========\n");

printf("你现在可能很慌。没关系,这个程序会带你一步一步做。\n");

printf("请严格按照提示操作,每一步完成后输入 'done' 继续。\n");

printf("按回车开始...");

getchar();

CLEAR_SCREEN();

add_log("程序启动,用户开始应急流程");

// 步骤1:保存证据

if (!run_step(1, "保存证据",

"请对泄露你个人信息的页面进行截图(全屏或窗口)。\n"

"Windows: 按 PrtSc 或 Win+Shift+S\n"

"Mac: 按 Cmd+Shift+4\n\n"

"然后在桌面新建一个文件夹,命名为「开盒证据_年月日」\n"

"将截图移动到此文件夹内。",

"✅ 确认完成:已截图并放入专用文件夹")) {

return 1;

}

add_log("步骤1完成:证据已截图保存");

CLEAR_SCREEN();

// 步骤2:平台举报

if (!run_step(2, "平台举报",

"打开泄露你信息的平台(微博/抖音/微信等)。\n"

"找到举报入口 → 选择「泄露隐私」「网暴」→ 上传步骤1的截图。\n\n"

"常用举报链接(可手动复制到浏览器):\n"

"- 抖音: https://www.douyin.com/report\n"

"- 微博: https://service.account.weibo.com/report\n"

"- 微信: 长按消息 → 投诉\n\n"

"举报成功后请截图保存(放入证据文件夹)。",

"✅ 确认完成:已完成至少一个平台的举报")) {

return 1;

}

add_log("步骤2完成:已向平台举报");

CLEAR_SCREEN();

// 步骤3:报警 / 法律备案

if (!run_step(3, "报警 / 法律备案",

"报警话术(可直接复制念出):\n"

"「你好,我的姓名、电话、家庭住址等隐私被人在网上公开,已经造成骚扰和威胁。\n"

" 我已经截图保存证据,需要报警备案。我的位置在XX市XX区。」\n\n"

"拨打110或去派出所,要求拿到《受案回执》或接警记录。\n"

"如果警察不理解,强调:《个人信息保护法》+《刑法》第253条之一。",

"✅ 确认完成:已报警或已取得法律备案")) {

return 1;

}

add_log("步骤3完成:已报警/法律备案");

CLEAR_SCREEN();

// 步骤4:切断暴露源

if (!run_step(4, "切断暴露源 & 自我保护",

"请执行以下操作(至少3项):\n"

"1. 修改社交账号密码,开启登录验证\n"

"2. 关闭「通过手机号找到我」「允许陌生人私信」\n"

"3. 告知亲友,请他们不要相信索要信息的人\n"

"4. 开启手机骚扰拦截,考虑临时换绑手机号\n"

"5. 关闭 iMessage / 隔空投送等易被轰炸的渠道",

"✅ 确认完成:已执行至少3项保护措施")) {

return 1;

}

add_log("步骤4完成:已执行自我保护措施");

CLEAR_SCREEN();

// 步骤5:心理支持

if (!run_step(5, "心理支持",

"被开盒后的恐惧、愤怒是正常反应。\n\n"

"免费心理援助热线(24小时):\n"

"- 希望24热线: 400-161-9995\n"

"- 北京红枫妇女心理热线: 010-64033383\n"

"- 全国心理援助: 400-680-6101\n\n"

"你可以现在拨打其中一个号码,哪怕只说「我被网暴了,很难受」。\n"

"你不必一个人扛。",

"✅ 确认完成:我已拨打/保存热线,或决定先休息")) {

return 1;

}

add_log("步骤5完成:已关注心理支持");

CLEAR_SCREEN();

// 完成总结

add_log("全部应急步骤执行完毕");

printf("\n========================================\n");

printf("🎉 应急流程全部完成!\n");

printf("========================================\n");

printf("你已经做了所有能做的事:\n");

printf("- 保存了证据\n");

printf("- 向平台举报\n");

prin

tf("- 报警/法律备案\n");

printf("- 切断了暴露源\n");

printf("- 获得了心理支持\n\n");

printf("现在你可以关闭本程序。如果需要生成操作记录,请按提示保存。\n");

save_logs();

printf("\n按回车退出...");

getchar();

return 0;

}

报警电话接通

├── 接警员问:“你在哪个区?”

│ └── 需要提前准备好:派出所地址、辖区名称

├── 接警员说:“这是网络纠纷,不归我们管”

│ └── 需要话术B:“《个人信息保护法》第X条,这是刑事犯罪”

├── 接警员说:“你过来做笔录吧”

│ └── 需要话术C:“好的,请问需要带什么材料?我现在地址是...”

├── 接警员说:“我们给你转网警”

│ └── 需要话术D:“好的,谢谢,请问转接后我需要重复说明吗?”

└── 接警员直接挂断

└── 需要备选方案:换一个派出所/打12389投诉

优化思路,接入训练数据库

/**
* 文件名: anti_doxing_real.c
* 描述: 反开盒应急导航 · 真实生成报案材料
* 编译: gcc anti_doxing_real.c -o anti_doxing_real
* 运行: ./anti_doxing_real
*/

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#ifdef _WIN32
#include <windows.h>
#include <conio.h>
#define CLEAR_SCREEN() system("cls")
#define SLEEP_SEC(x) Sleep((x)*1000)
#define GET_KEY() _getch()
#else
#include <unistd.h>
#include <termios.h>
#define CLEAR_SCREEN() system("clear")
#define SLEEP_SEC(x) sleep(x)
int get_key_linux() {
struct termios oldt, newt;
int ch;
tcgetattr(STDIN_FILENO, &oldt);
newt = oldt;
newt.c_lflag &= ~(ICANON | ECHO);
tcsetattr(STDIN_FILENO, TCSANOW, &newt);
ch = getchar();
tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
return ch;
}
#define GET_KEY() get_key_linux()
#endif

// 全局用户信息(用于生成真实材料)
char user_name[128] = "";
char user_phone[128] = "";
char leaked_info[512] = "";
char harassment_desc[512] = "";
char platform_name[128] = "";
char suspect_info[512] = "";

// 简单日志
void add_log(const char *msg) {
printf("[日志] %s\n", msg);
}

// 等待回车
void wait_enter() {
printf("\n按回车继续...");
while (getchar() != '\n');
getchar();
}

// 安全读取字符串
void safe_input(char *buffer, int size, const char *prompt) {
printf("%s", prompt);
fgets(buffer, size, stdin);
buffer[strcspn(buffer, "\n")] = 0;
}

// 单键确认(Y/N)
int confirm(const char *prompt) {
printf("%s (Y/N): ", prompt);
int key = GET_KEY();
printf("%c\n", key);
return (key == 'y' || key == 'Y');
}

// 生成真实的报案材料文件
void generate_real_report() {
// 生成带时间戳的文件名(保存在当前目录,用户可手动移动到桌面)
char filename[256];
time_t now = time(NULL);
struct tm *tm_info = localtime(&now);
strftime(filename, sizeof(filename), "报案材料_%Y%m%d_%H%M%S.txt", tm_info);

FILE *fp = fopen(filename, "w");
if (!fp) {
printf("\n❌ 错误:无法创建文件!请检查当前目录是否有写入权限。\n");
return;
}

// 写入完整内容
fprintf(fp, "【报案情况说明】\n");
fprintf(fp, "生成时间: %s", ctime(&now));
fprintf(fp, "==============================\n\n");
fprintf(fp, "一、报案人信息\n");
fprintf(fp, " 姓名:%s\n", strlen(user_name) ? user_name : "(未填写,可用昵称或“申请人”)");
fprintf(fp, " 联系电话:%s\n", strlen(user_phone) ? user_phone : "(未填写)");
fprintf(fp, "\n二、被泄露的个人信息\n");
fprintf(fp, " %s\n", strlen(leaked_info) ? leaked_info : "(未填写,请根据实际情况补充)");
fprintf(fp, "\n三、骚扰/威胁情况\n");
fprintf(fp, " %s\n", strlen(harassment_desc) ? harassment_desc : "(未填写)");
fprintf(fp, "\n四、信息泄露平台\n");
fprintf(fp, " %s\n", strlen(platform_name) ? platform_name : "(未知平台)");
fprintf(fp, "\n五、已知的嫌疑人信息(如有)\n");
fprintf(fp, " %s\n", strlen(suspect_info) ? suspect_info : "(未知)");
fprintf(fp, "\n六、已有证据清单\n");
fprintf(fp, " ✓ 已保存网页/聊天记录截图(位于桌面「开盒证据_日期」文件夹)\n");
fprintf(fp, " ✓ 已向平台举报并截图\n");
fprintf(fp, "\n七、法律依据(供警方参考)\n");
fprintf(fp, " - 《个人信息保护法》第10条:禁止非法收集、使用、传输他人个人信息。\n");
fprintf(fp, " - 《刑法》第253条之一:侵犯公民个人信息罪,情节严重可处三年以下有期徒刑。\n");
fprintf(fp, "\n八、报案请求\n");
fprintf(fp, " 请求公安机关依法调查,制止侵权行为,并追究违法者的法律责任。\n");
fprintf(fp, "\n报案人(签名):________________\n");
fprintf(fp, "日期:________________\n");

fclose(fp);

// 显示成功信息
printf("\n✅ 报案材料已成功生成!\n");
printf(" 文件名称:%s\n", filename);
printf(" 保存位置:当前程序所在目录\n");
printf(" 你可以打开该文件,复制内容或直接打印,然后提交给警方。\n");

// 询问是否立即查看内容
if (confirm("\n是否在屏幕上显示文件内容?")) {
printf("\n================ 文件内容预览 ================\n");
FILE *fp_read = fopen(filename, "r");
if (fp_read) {
char ch;
while ((ch = fgetc(fp_read)) != EOF) putchar(ch);
fclose(fp_read);
} else {
printf("无法打开文件预览。\n");
}
printf("==============================================\n");
}
}

// 步骤1:收集信息(必须填一些内容,否则材料无意义)
void step_collect_info() {
CLEAR_SCREEN();
printf("\n========== 信息收集(用于生成报案材料) ==========\n");
printf("注:所有信息仅用于生成文件,不会上传网络。\n");
safe_input(user_name, sizeof(user_name), "你的姓名或昵称(建议留真名): ");
safe_input(user_phone, sizeof(user_phone), "联系电话: ");
safe_input(leaked_info, sizeof(leaked_info), "被泄露的信息(例:身份证号342...,家庭住址,照片等): ");
safe_input(harassment_desc, sizeof(harassment_desc), "遭受的骚扰描述(例:收到辱骂私信、电话轰炸): ");
safe_input(platform_name, sizeof(platform_name), "信息泄露的平台(例:微博、抖音、微信群): ");
safe_input(suspect_info, sizeof(suspect_info), "知道的嫌疑人信息(网名、链接、手机号等,没有则留空): ");
add_log("信息收集完成");
wait_enter();
}

// 步骤2:证据保存
void step_evidence() {
CLEAR_SCREEN();
printf("\n========== 第一步:保存证据 ==========\n");
printf("1. 对泄露页面截图(Win: PrtSc / Win+Shift+S ; Mac: Cmd+Shift+4)\n");
printf("2. 在桌面新建文件夹「开盒证据_日期」,把截图放进去\n");
if (confirm("✅ 完成截图并放入文件夹了吗?")) {
add_log("证据已保存");
} else {
add_log("证据保存跳过(强烈建议补做)");
}
wait_enter();
}

// 步骤3:平台举报
void step_platform_report() {
CLEAR_SCREEN();
printf("\n========== 第二步:平台举报 ==========\n");
printf("举报话术(可复制):\n");
printf("「该账号非法公开我的个人信息,已造成实际骚扰。请求立即删除内容并封禁账号。」\n");
if (confirm("✅ 完成举报了吗?")) {
add_log("平台举报已完成");
} else {
add_log("平台举报跳过");
}
wait_enter();
}

// 步骤4:报警引导
void step_police() {
CLEAR_SCREEN();
printf("\n========== 第三步:报警指引 ==========\n");
printf("【报警话术】\n");
printf("\"我的姓名、电话、住址被人在网上公开,已经收到大量骚扰信息。\n");
printf("这是非法获取和传播个人信息,违反《个人信息保护法》和《刑法》。\n");
printf("我已截图保存证据,请求公安机关处理。\"\n");
printf("\n如果警察推诿,可说:\"请出具不予立案通知书,这是法律赋予我的权利。\"\n");
if (confirm("✅ 已经拨打110或前往派出所了吗?")) {
add_log("已报警/备案");
} else {
add_log("报警步骤跳过(建议完成)");
}
wait_enter();
}

// 步骤5:自我保护
void step_self_protect() {
CLEAR_SCREEN();
printf("\n========== 第四步:自我保护 ==========\n");
printf("建议:\n");
printf("- 修改密码、开启登录验证\n");
printf("- 关闭「允许陌生人私信」\n");
printf("- 告知亲友勿信陌生人\n");
if (confirm("✅ 已执行至少2项保护措施?")) {
add_log("已自我保护");
} else {
add_log("自我保护未执行");
}
wait_enter();
}

// 步骤6:心理支持
void step_mental() {
CLEAR_SCREEN();
printf("\n========== 第五步:心理支持 ==========\n");
printf("全国心理援助热线:400-161-9995\n");
if (confirm("✅ 已保存或拨打热线?")) {
add_log("心理支持已关注");
}
wait_enter();
}

int main() {
printf("\n========== 反开盒应急导航 · 真实材料生成版 ==========\n");
printf("本程序会引导你完成所有步骤,并在最后生成【真实可用的报案材料】。\n");
printf("按回车开始...");
getchar();

step_collect_info(); // 收集信息
step_evidence();
step_platform_report();
step_police();
step_self_protect();
step_mental();

CLEAR_SCREEN();
printf("\n========== 生成报案材料 ==========\n");
printf("你已经完成所有引导步骤。现在可以生成一份正式报案材料。\n");
if (confirm("是否生成报案材料(.txt文件)?")) {
generate_real_report();
} else {
printf("你可以随时重新运行程序生成材料。\n");
}

printf("\n按回车退出程序...");
getchar();
return 0;
}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询