ハードコードされた文字列をバイナリから抽出することが可能であることを発見しました。
たとえば、プロパティビューProcess Explorerは、3文字以上のすべての文字列を表示します。私はそれがあると思い
exeまたはdllで文字列を隠すには?
:
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#include <stdio.h>
#include <tchar.h>
#include <Windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
_TCHAR* hiddenString1 =_T("4537774B-CC80-4eda-B3E4-7A9EE77991F5");
_TCHAR* hiddenString2 =_T("hidden_password_or_whatever");
for (int i= 0; i<argc; i++) {
if (0 == _tcscmp(argv[i],hiddenString1)) {
_tprintf (_T("The guid argument is correct.\n")); }
else if (0 == _tcscmp(argv[i],hiddenString2)) {
_tprintf (_T("Do something here.\n")); }
}
_tprintf (_T("This is a visible string.\n"));
//Keep Running
Sleep(60000);
return 0;
}
文字列が明確に対応する実行から抽出することができます:ここでは
は、私は単にそれをテストするために書いた簡単な実行可能ファイルのコードがあります少しでも弦を見つけるのは簡単です。
私の質問は以下のとおりです。
- どのように単に隠すhiddenString1またはhiddenString2 実行可能に?
- 秘密のコードを使用する方法は、 よりも安全ですか?
この質問はGUIDに関するものか、一般的な文字列に関するものですか? – xtofl
GUIDは単なる例でした。私はあまりにも非表示にしたいと思うhttp要求のためのURLがあります。 – Winz
http要求のURLを非表示にすることはできません。スニファを持っている人なら誰でもあなたのアプリが何をしているのかを正確に知ることができます。そうすれば、あなたのプロセスのメモリを調べるよりはるかに簡単です。 –