用C++写一个控制台CrackME,参数是 -iLOVEyou
如输入的是 “我爱你”回馈,“注册成功!”
否则 “再见吧,你哩!”
或用 Delphi实现 ( 不晓得鸭 ,参数咋弄){:301_974:} c/c++ 的 main 入口函数,有 argc 是参数数量和 argv 是具体的参数数组。索引 0 项是自身路径。
你可以将 char* 指针包装成 std::string 然后直接用 == 比对。 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.
感谢你的分享,让我在思考和分析时有更多的思路和方法。 本帖最后由 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;
}
#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;
}
法王还是文档看的有点少呀,ParamCount和ParamStr这俩就是对标了C的main入口点的argc和argv
页:
[1]