【发布时间】:2014-10-03 15:02:11
【问题描述】:
所以基本上我一直在兜圈子,试图让我的 bash 脚本在 C++ 程序中工作,我需要创建一个程序,将字符串的哈希值保存到文件中。
以下 bash 脚本可以正常工作,但我需要对其进行模糊处理以使其成为可行的选项,因为我不希望用户能够将脚本拖到文本编辑器中并查看发生了什么。
因此我需要将其编译成可执行程序来混淆代码。
我有 C++ 的基本知识,我很想在它上面放置一个带有一个文本输入框和一个“GO”按钮的界面。但是命令行可以帮助我学习这一步。
我的 bash 脚本如下:- #!/bin/bash
echo 'Enter a string :-'; <--- need to print this on the screen
read const_var1; <--- read user input
temp_var1="${const_var1//[[:blank:]]/}" <--- setup variables
hash=$(echo -n $temp_var1 | openssl sha1); <---- calculate SHA1 hash
serial=$(echo -n $hash | tr '[:lower:]' '[:upper:]';); <---- convert hash to UPPERCASE
a="$hash"; <---- save hash into a
b=${a#*= }; <---- move to b
echo 'HASH-' >> ~/Desktop/$temp_var1\.TEXTFILE;
echo ' <string>'$b"</string>" >> ~/Desktop/$temp_var1\.TEXTFILE; <----- save hash to text file on the desktop with a set extension.
无论如何,基本上我不想只是捆绑 bash 脚本,因为我不希望用户在窥探时能够看到内容,因为他们可以使用 bash 脚本。
我希望有足够的知识来创建一个完整的界面,您可以输入文本并创建哈希文件,但我只是不知道足够多。
所以我决定使用 C++ 编写的命令行应用程序
实现我的目标的最佳方式是什么。
我知道一点 C++,例如。
#include <iostream> // include input output stream
using namespace std; // using the standard libraries
int main() // start main funktion
{
int a; // declare variable types an names <----- needs to be a string not int.
cout << "ENTER STRING :-\n"; // print message to screen
cin >> a; // read variable A from user input.
cout << "*HASHOFSTRING*"; // HERE I DONT KNOW WHAT TO DO. i need to access openssl and calculate the HASH IN UPPER CASE
}
此时我需要将字符串的 HASH 保存到扩展名为 .whatever 的文本文件中
如您所见,以上都是错误的,我只有 C++ 的基本知识,但我学得很快。
我将永远感激帮助我解决这个问题的人,因为我一直在努力寻找一种方法来为 bash 脚本创建一个界面,但我已经放弃了,所以我需要帮助翻译我的 bash脚本。
提前多谢
【问题讨论】:
标签: c++ xcode macos bash obfuscation