<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Strings und hexeditor]]></title><description><![CDATA[<p>Hallo,<br />
Habe ein kleines Problemm. In meinem .exe ist ein string deklarire z.b</p>
<pre><code class="language-cpp">string name = &quot;Mein name ist secret&quot;;
</code></pre>
<p>Wenn ich dann es mit Hexeditor aufmache dann kann ich es da sehen.<br />
Meine frage ist: wie mache ich so das die string und char im hexeditor nicht zu sehen sind.<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300615/strings-und-hexeditor</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 19:27:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300615.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Mar 2012 15:47:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 15:47:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
Habe ein kleines Problemm. In meinem .exe ist ein string deklarire z.b</p>
<pre><code class="language-cpp">string name = &quot;Mein name ist secret&quot;;
</code></pre>
<p>Wenn ich dann es mit Hexeditor aufmache dann kann ich es da sehen.<br />
Meine frage ist: wie mache ich so das die string und char im hexeditor nicht zu sehen sind.<br />
Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189143</guid><dc:creator><![CDATA[w81]]></dc:creator><pubDate>Tue, 06 Mar 2012 15:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 15:48:44 GMT]]></title><description><![CDATA[<p>Verschluesseln oder zur Laufzeit erzeugen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189144</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 06 Mar 2012 15:48:44 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 15:54:45 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Verschluesseln oder zur Laufzeit erzeugen</p>
</blockquote>
<p>Jop.<br />
@TE Bedenke aber, dass man das mit einem Debugger immer noch bekommen kann. Man macht es halt nur schwieriger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189146</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189146</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 06 Mar 2012 15:54:45 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 16:54:21 GMT]]></title><description><![CDATA[<p>w81 schrieb:</p>
<blockquote>
<p>Meine frage ist: wie mache ich so das die string und char im hexeditor nicht zu sehen sind.<br />
Danke</p>
</blockquote>
<p>Gar nicht. Wozu auch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189161</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Tue, 06 Mar 2012 16:54:21 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 17:01:28 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>w81 schrieb:</p>
<blockquote>
<p>Meine frage ist: wie mache ich so das die string und char im hexeditor nicht zu sehen sind.<br />
Danke</p>
</blockquote>
<p>Gar nicht. Wozu auch?</p>
</blockquote>
<p>Ein nicht zu verachtender Schutz gegen Reverse Engineering.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189162</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 06 Mar 2012 17:01:28 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 17:04:45 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Ein nicht zu verachtender Schutz gegen Reverse Engineering.</p>
</blockquote>
<p>Ich wusste gar nicht, dass meine Oma ins Reverse Engineering eingestiegen ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189163</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 06 Mar 2012 17:04:45 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 17:15:19 GMT]]></title><description><![CDATA[<p>es gibt eine XorStr Klasse die sowas erledigen kann. Im Quellcode steht dann nur noch sowas hier:</p>
<pre><code class="language-cpp">/*hallo*/XorStr&lt;0x38, 6, 0x7E92C958&gt;(&quot;\x50\x58\x56\x57\x53&quot; + 0x7E92C958).s
</code></pre>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189168</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Tue, 06 Mar 2012 17:15:19 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 17:15:40 GMT]]></title><description><![CDATA[<p>es geht um eine wette. mein Freund mein er ist der beste Hacker und ich will ihm zeigen das auch von mir geschriebenes programm b.z string in in dem exe er nicht findet. er soll Passwort eingeben und das Programm zeigt dann ob es ok ist oder nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189169</guid><dc:creator><![CDATA[w81]]></dc:creator><pubDate>Tue, 06 Mar 2012 17:15:40 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 17:26:23 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ethon schrieb:</p>
<blockquote>
<p>Ein nicht zu verachtender Schutz gegen Reverse Engineering.</p>
</blockquote>
<p>Ich wusste gar nicht, dass meine Oma ins Reverse Engineering eingestiegen ist.</p>
</blockquote>
<p>Deine Oma vielleicht nicht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189173</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 06 Mar 2012 17:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 17:47:37 GMT]]></title><description><![CDATA[<p>w81 schrieb:</p>
<blockquote>
<p>es geht um eine wette. mein Freund mein er ist der beste Hacker und ich will ihm zeigen das auch von mir geschriebenes programm b.z string in in dem exe er nicht findet. er soll Passwort eingeben und das Programm zeigt dann ob es ok ist oder nicht.</p>
</blockquote>
<p>Und wenn du jetzt auch noch die leiseste Ahnung von C++ hättest, wäre das ganz einfach.</p>
<p>Um einen &quot;Hacker&quot; dieses Kalibers zu überlisten wird wahrscheinlich so etwas genügen (vorausgesetzt der Compiler optimiert die Schleife nicht weg):</p>
<pre><code class="language-cpp">static const char key = 13; //oder eine andere geeignete Zahl
char[] secret = {'s' ^ key, 'e' ^ key, 'c' ^ key, 'r' ^ key, 'e' ^ key, 't' ^ key, '\0' ^ key};
for (size_t i = 0; i &lt; sizeof(secret); ++i)
{
    secret[i] ^= key;
}
std::string password = secret;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2189184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189184</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Tue, 06 Mar 2012 17:47:37 GMT</pubDate></item><item><title><![CDATA[Reply to Strings und hexeditor on Tue, 06 Mar 2012 18:04:11 GMT]]></title><description><![CDATA[<p>w81 schrieb:</p>
<blockquote>
<p>es geht um eine wette. mein Freund mein er ist der beste Hacker und ich will ihm zeigen das auch von mir geschriebenes programm b.z string in in dem exe er nicht findet. er soll Passwort eingeben und das Programm zeigt dann ob es ok ist oder nicht.</p>
</blockquote>
<p>Dann mach doch was fieses, wo der String erst berechnet wird. Superfies, wenn es noch von äußeren Umständen, wie dem Systemdatum abhängt. Hier mal etwas Inspiration:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;random&gt;
#include &lt;string&gt;
#include &lt;ctime&gt;

using namespace std;

string generate_deterministic_password(unsigned length)
{
  mt19937 rng;
  rng.seed(1234598765);
  std::uniform_int_distribution&lt;char&gt; alphabet_distribution('A','Z');
  string password;
  for (unsigned i =0; i &lt; length; ++i)
    password.push_back(alphabet_distribution(rng));
  return password;  
}

string generate_password_depending_on_environment(unsigned length)
{
  time_t rawtime;
  time(&amp;rawtime);
  tm *ptm = gmtime(&amp;rawtime);
  mt19937 rng;
  rng.seed(1234598765 + ptm-&gt;tm_yday);
  std::uniform_int_distribution&lt;char&gt; alphabet_distribution('A','Z');
  string password;
  for (unsigned i =0; i &lt; length; ++i)
    password.push_back(alphabet_distribution(rng));
  return password;    
}

int main()
{
  string passwort = generate_deterministic_password(8);
  cout &lt;&lt; &quot;Normales Passwort wäre: &quot; &lt;&lt; passwort &lt;&lt; '\n';
  string fieses_passwort = generate_password_depending_on_environment(8);
  cout &lt;&lt; &quot;Heutiges Passwort wäre: &quot; &lt;&lt; fieses_passwort &lt;&lt; '\n';  
}
</code></pre>
<p>Dieses sollte deterministisch das Passwort &quot;AOTQABKJ&quot; und heute (oder wenn das Systemdatum der 6.3.2012 ist) das fiese Passwort &quot;YURICUQM&quot;. Da schreibst du dir nach diesem Muster einen Keygen für dich und ein Abfrageprogramm für deinen Freund.</p>
<p>Für beide Passwörter muss man sich schon ziemlich anstrengen. Wenn du den Symboltable stripst, dann ist noch nicht einmal mehr verräterische Information über den Zufallsgenerator übrig und es bleibt eigentlich nur Deassemblieren oder im Debugger das Programm nach Zeichenkettenvergleichen suchen. Damit bekommt man das Programm dann aber recht leicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> . Das gilt auch für die meisten anderen Obfuskationstechniken - wenn man sich gegen Debuggereinsatz wehren will, dann ist das eigentlich eher ein Vergleich der Willenskräfte zwischen Hacker und Programmierer, wer zu mehr Gehirnverknotungen bereit/fähig ist.<br />
Aber ich bezweifle, dass dein Freund dazu in der Lage ist, schon dieses einfache Beispielprogramm zu knacken. Denn die am lautesten tönenden Hacker sind meistens die schlechtesten. Außer du lässt Debuginformationen im Programm, dann schafft das sogar meine Oma. Da musst du aufpassen.</p>
<p>P.S.: Das Programm braucht die Zufallsgeneratoren aus der C++11-Stanardbibliothek (oder auch schon C++98-TR1(?), dafür müsstest du das Programm leicht anpassen, dann können das dann selbst Compiler mit älteren Standardbibliotheken), da ich mich auf die Implementierung des Zufallsgenerators verlassen können möchte. Man könnte auch einen eigenen Zufallsgenerator nehmen (oder einfach jede andere Funktion, die irgendwie Zahlen zwischen 'A' und 'Z' erzeugt), wenn es streng C++98-konform sein soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189186</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 06 Mar 2012 18:04:11 GMT</pubDate></item></channel></rss>