冥界3大法王 发表于 2024-3-22 10:44

用C++写一个控制台CrackME,参数是 -iLOVEyou

如输入的是 “我爱你”
回馈,“注册成功!”
否则    “再见吧,你哩!”


或用 Delphi实现 ( 不晓得鸭 ,参数咋弄){:301_974:}

爱飞的猫 发表于 2024-3-22 11:14

c/c++ 的 main 入口函数,有 argc 是参数数量和 argv 是具体的参数数组。索引 0 项是自身路径。

你可以将 char* 指针包装成 std::string 然后直接用 == 比对。

solly 发表于 2024-3-22 11:20

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
System.SysUtils;

var
i: Integer;
begin
try
    { TODO -oUser -cConsole Main : Insert code here }
// 输出命令行参数的数量
Writeln('命令行参数数量:', ParamCount);
   // 输出每个命令行参数的值
for i := 1 to ParamCount do
begin
    Writeln('参数 ', i, ': ', ParamStr(i));
end;
   //Readln;
except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
end;
end.

zzhlei 发表于 2024-3-22 11:23

感谢你的分享,让我在思考和分析时有更多的思路和方法。

jjTest007 发表于 2024-3-22 11:58

本帖最后由 jjTest007 于 2024-3-22 12:06 编辑


#include <iostream>
#include <string>
int main(int argc, char* argv[]) {
      if (argc != 3) {
                std::cout << "使用方法: " << argv << " -iLOVEyou " << "输入参数" << std::endl;
                return 1;
      }

      std::string option = argv;
      std::string correctOp = "-iLOVEyou";
      std::string inputPar = argv;
      std::string password = "我爱你";
      std::string resMsg = "注册成功!";
      std::string errMsg = "再见吧,你哩!";

      if (option == correctOp && inputPar== password) {
                std::cout << resMsg << std::endl;
      }
      else {
                std::cout << errMsg << std::endl;
      }

      return 0;
}

gzsklsskszngc 发表于 2024-3-22 12:08

#include <iostream>
#include <string>

int main(int argc, char* argv[]) {
    std::string input;

    if (argc > 1 && std::string(argv) == "-iLOVEyou") {
      std::cout << "请输入密码:";
      std::cin >> input;

      if (input == "我爱你") {
            std::cout << "注册成功!" << std::endl;
      } else {
            std::cout << "再见吧,你哩!" << std::endl;
      }
    } else {
      std::cout << "无效的参数,请使用 -iLOVEyou 运行程序。" << std::endl;
    }

    return 0;
}

DEATHTOUCH 发表于 2024-3-22 12:27

法王还是文档看的有点少呀,ParamCount和ParamStr这俩就是对标了C的main入口点的argc和argv
页: [1]
查看完整版本: 用C++写一个控制台CrackME,参数是 -iLOVEyou