⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bomb.c

📁 This is a sample bomb that has been solved from the bomb lab. Could be helpful
💻 C
字号:
/*************************************************************************** * Dr. Evil's Insidious Bomb, Version 1.0 * Copyright 2002, Dr. Evil Incorporated. All rights reserved. * * LICENSE: * * Dr. Evil Incorporated (the PERPETRATOR) hereby grants you (the * VICTIM) explicit permission to use this bomb (the BOMB).  This is a * time limited license, which expires on the death of the VICTIM. * The PERPETRATOR takes no responsibility for damage, frustration, * insanity, bug-eyes, carpal-tunnel syndrome, loss of sleep, or other * harm to the VICTIM.  Unless the PERPETRATOR wants to take credit, * that is.  The VICTIM may not distribute this bomb source code to * any enemies of the PERPETRATOR.  No VICTIM may debug, * reverse-engineer, run "strings" on, decompile, decrypt, or use any * other technique to gain knowledge of and defuse the BOMB.  BOMB * proof clothing may not be worn when handling this program.  The * PERPETRATOR will not apologize for the PERPETRATOR's poor sense of * humor.  This license is null and void where the BOMB is prohibited * by law. ***************************************************************************/#include <stdio.h>#include "support.h"#include "phases.h"/*  * Note to self: Remember to erase this file so my victims will have no * idea what is going on, and so they will all blow up in a * spectaculary fiendish explosion. -- Dr. Evil  */FILE *infile;int main(int argc, char *argv[]){    char *input;    /* Note to self: remember to port this bomb to Windows and put a      * fantastic GUI on it. */    /* When run with no arguments, the bomb reads its input lines      * from standard input. */    if (argc == 1) {  	infile = stdin;    }     /* When run with one argument <file>, the bomb reads from <file>      * until EOF, and then switches to standard input. Thus, as you      * defuse each phase, you can add its defusing string to <file> and     * avoid having to retype it. */    else if (argc == 2) {	if (!(infile = fopen(argv[1], "r"))) {	    printf("%s: Error: Couldn't open %s\n", argv[0], argv[1]);	    exit(8);	}    }    /* You can't call the bomb with more than 1 command line argument. */    else {	printf("Usage: %s [<input_file>]\n", argv[0]);	exit(8);    }    /* Do all sorts of secret stuff that makes the bomb harder to defuse. */    initialize_bomb();    printf("Welcome to my fiendish little bomb. You have 6 phases with\n");    printf("which to blow yourself up. Have a nice day!\n");    /* Hmm...  Six phases must be more secure than one phase! */    input = read_line();             /* Get input                   */    phase_1(input);                  /* Run the phase               */    phase_defused();                 /* Drat!  They figured it out!				      * Let me know how they did it. */    printf("Phase 1 defused. How about the next one?\n");    /* The second phase is harder.  No one will ever figure out     * how to defuse this... */    input = read_line();    phase_2(input);    phase_defused();    printf("That's number 2.  Keep going!\n");    /* I guess this is too easy so far.  Some more complex code will     * confuse people. */    input = read_line();    phase_3(input);    phase_defused();    printf("Halfway there!\n");    /* Oh yeah?  Well, how good is your math?  Try on this saucy problem! */    input = read_line();    phase_4(input);    phase_defused();    printf("So you got that one.  Try this one.\n");        /* Round and 'round in memory we go, where we stop, the bomb blows! */    input = read_line();    phase_5(input);    phase_defused();    printf("Good work!  On to the next...\n");    /* This phase will never be used, since no one will get past the     * earlier ones.  But just in case, make this one extra hard. */    input = read_line();    phase_6(input);    phase_defused();    /* Wow, they got it!  But isn't something... missing?  Perhaps     * something they overlooked?  Mua ha ha ha ha! */        return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -