Wenn ich es von Laien höre, empfinde ich es beleidigend.

Kommt es hingegen von anderen Fachleuten auf meinem Gebiet, ist es neutral bis positiv.

Das gleiche gilt für Geek, Hacker und Genie. Ich hasse es, von Leuten, die keine Ahnung von z. B. höherer Mathematik haben, Genie genannt zu werden.

Ein schwarzhäutiger Kumpel nennt seine Landsleute auch Neger, aber natürlich überhaupt nicht abeertend gemeint. Ich persönlich würde ihn als Weißer aber logischerweise nicht mal im Traum so ansprechen.

Kommt also immer drauf an, WER etwas sagt, und weniger darauf WAS er sagt.

Nachtrag: Der Begriff Eierkopf ist auch so eine Sache. Kommt drauf an, aus wessen Mund er kommt.

...zur Antwort

Das ist die empfohlene Trinktemperatur!

Kronkorken entfernen, ab in die Mikrowelle und zack, schön warmes Bier! :)

...zur Antwort

Jein, geht zwar oft recht komfortabel, aber Python ist für vieles zu lahm bzw. schwergewichtig, sodass man schnell an Grenzen stößt.

Hab mal einen Fuzzer in Python geschrieben und danach noch mal in C. Letzterer war einige tausend mal schneller.

Python ist zwar sehr komfortabel für Prototyping, aber Binäroperationen auf Strukturen kann man vergessen.

Und falls du massiv parallele Netzwerkverbindungen aufbauen willst, denk an den GIL und nimm das multiprocessing Modul, anstelle von multithreading.

Fazit: Python ist durchaus brauchbar, hat aber seine Grenzen.

...zur Antwort

Bin seit über 30 Jahren Softwareentwickler und kann überhaupt nicht nachvollziehen, wovon du da redest.

...zur Antwort
def Anzahl_Vokale(wort):
    return len([v for v in wort.lower() if v in 'aiueoäöü'])

def Viele_Vokale(woerter, anzahl):
    return [w for w in woerter if Anzahl_Vokale(w) >= anzahl]

print(Anzahl_Vokale('bestimmt'))

print(Viele_Vokale('schreibe dann eine funktion viele_vokale, die zwei parameter hat'.split(), 4))
...zur Antwort

Kann es sein, dass du deine pädophile Neigung dadurch kaschieren willst, indem du übertrieben in die andere Richtung argumentierst? Das machen tatsächlich viele Pädophile so, und ein gewisses Grundinteresse kan man bei deinem Text schon herauslesen.

Lass dir helfen:

https://www.kein-taeter-werden.de/

...zur Antwort

Ein Byte mit 8 Bit (also ein Oktett) kann 256 verschiedene Werte annehmen.

Zwei davon fassen etwas über 65000 und drei ca. 16 Mio.

Du brauchst für deinen Zeichenvorrat von etwas über einer Million Zeichen also drei Byte.

Aaaaaaber ... nicht alle dieser Werte sind gültige Unicode-Zeichen, denn viele sind für Spezialfälle reserviert.

Außerdem wirst du vermutlich keine Plattform mit 3-Byte-Integern finden, also musst du auf 4-Byte bzw. 32-Bit aufrunden.

Einfache ASCII-kompatible Unicodezeichen passen übrigens in ein einziges Byte.

Und zu guter Letzt: Verwechsle bitte Zeichensatz nicht mit Zeichenkodierung!

Du kannst auch Chinesische Zeichen aus dem Unicodezeichensatz mit ASCII-Kodierung speichern, so wie das oft bei HTML-Dokumenten gemacht wurde. (heutzutage eher weniger ...)

Ach und, falls du eine Kodierung wie UTF-8 oder UTF-16 meinst, dann passen in ein Byte weniger Zeichen, als 256, nämlich nur 128, 64 oder sogar noch weniger.

...zur Antwort

Deine Frage ist Schwachsinn.

Arbeite einfach das offizielle Tutorial auf der Python-Website von vorne bis hinten durch, und lerne danach große Teile der API-Docs auswendig.

Würden das alle Python-Entwickler so machen, gäbe es weniger Fragen auf Kindergarten-Niveau im Netz, die immer wieder und wieder und wieder gestellt werden.

Also lerne Python bitte richtig, oder gar nicht. Und lass den Begriff Hacking daraus!

...zur Antwort

Matlab oder Mathematika, aber wenn du kein Geld ausgeben willst, ist die freie Alternative GNU Octave genau das, was du suchst.

...zur Antwort

Es wird maschinell überprüft und ja richtig, dabei rutscht immer wieder viel Malware durch.

Das ist auch bekannt, das ein Appstore keine Garantie für Sicherheit ist. Etwas anderes erwartet hoffentlich niemand.

...zur Antwort

Deine Frage suggeriert, als wäre da etwas Verwerfliches dran.

Fragst du dich beim Bäcker oder Gemüsekauf auch, wieviel die Teig- oder Apfellobby verdient?

Jedes wirtschaftlich orientierte Unternehmen wird für investierte Arbeit auch einen Gewinn erwarten dürfen.

Wieso regen sich Impfgegner immer so darüber auf, als ob das was ganz Schlimmes wäre?

Jeder braucht neben medizinischer Versorgung auch ein Dach über dem Kopf. Sollte man den Dachdeckern jetzt tatsächlich vorwerfen, dass sie auch noch Geld für ihre Arbeit haben wollen?

Solange die Preise im Rahmen bleiben, ist doch alles OK. Und eine Goldgrube ist die Impfstoffentwicklung nun wirklich nicht. Da gibt es wesentlich potentere Geldkühe, die es zu melken gilt. :)

Impfgegner scheinen irgendwie gerne für lau zu arbeiten. Aber bitte seid nicht sauer, wenn der Rest der Welt sich vom Lohn auch hin und wieder was zu Essen kaufen will. So läuft das eben, und zwar weltweit in ALLEN Branchen. Schade, dass ihr das noch nicht gemerkt habt.

...zur Antwort

Auf der Kommandozeile erstmal mit "readelf -S test | grep -F .text" prüfen.

Dann googlest du nach der Spezifikation des ELF-Formats und liest dir die ersten paar Seiten zu den Section-Headern durch, und damit hast du auch die Offsetadresse, die du natürlich auch hexadezimal ausgeben kannst.

Im Grunde sind es also nur ein paar fopen(), freed() und fclose() Aufrufe.

Das ELF-Format ist sehr einfach aufgebaut und ein primitiver Parser ist in wenigen Minuten geschrieben.

Viel Spaß! :)

Nachtrag: Ich lese gerade, dass du diese Adresse ändern willst, was aber nicht funktionieren wird, da der restliche Code mit Sicherheit kein PIC ist.

Wenn du nur die Offsetadresse von deinem eigenen Programm ändern willst, so geht das mit Compiler- bzw. Linker-Flags!

...zur Antwort

Ich muss den anderen widersprechen, dass man einer EXE-Datei nicht mehr ansehen kann, mit welcher Sprache sie entwickelt wurde. Das geht sehr wohl, und ist nicht mal sonderlich schwierig.

An einer gestrippten EXE-Datei (also ohne jegliche Debuggingsymbole) erkennt man als erfahrener Reverser folgendes:

  • die Programmiersprache (z. B. C, C++, Pascal, wasauchimmer)
  • die Version der Programmiersprache (C89, C18, C++11, C++17, ...)
  • den verwendeten Compiler (GCC,, Clang, MS, ICC, ...)
  • die Version des Compilers (GCC 8.3, GCC 9.1, etc.)
  • das verwendete Optimierungslevel (-O1, -O2, -Ofast, -Osize, ...)
  • die verwendeten Compilerflags (-g, -Werror, usvm.)
  • usw. usf.

Genau genommen braucht man dafür nicht mal eine ganze EXE-Datei, sondern es reichen relativ kurze Auszüge des Disassemblats. (einige zich Zeilen reichen oft völlig aus)

Das liegt daran, dass unterschiedliche Compiler mit unterschiedlichen Flags völlig unterschiedliche CPU-Instruktionen erzeugen:

  • Anhand der generierten Stackframes, kann man Optimierungslevel ableiten.
  • Anhand von RVO kann man Compiler und Version erkennen.
  • Anhand des Aufbaus von Strukturen und Objektpointern, kann man den Polymorphismus und damit C++ / ObjectPascal unterschieden, inkl. Version.
  • Anhand von Inlining UND zusätzlichem Vorhandensein bestimmter Funktionen, kann man genau sehen, ob eine Funktion als "static" markiert war, oder nicht.
  • Anhand von Sprunginstruktionen und deren Reihenfolge der erwarteten Fälle kann man ebenfalls Compiler, Optimierung, und Version der Programmiersprache erkennen.

All das funktioniert nur in Kombination miteinander und zeigt natürlich immer nur Tendenzen auf. Aber aus Erfahrung weiß ich, dass man damit wirklich zu 99,9% aller Fälle richtig liegt.

Zum Reversing-Üben habe ich mir ein Skript gebaut, welches mir kurze Codeschnipsel mit unterschiedlichsten Compiler- / Flag-Kombinationen übersetzt und diese im Anschluss automatisch disassembliert.

Mit der Methode lernt man am meisten, und man bekommt recht schnell ein Gefühl dafür, wie eine Software gebaut wurde, wenn man nur einen Disassemblat-Schnipsel vor der Nase hat.

Aber um deine Frage zu beantworten: Den Quelltext kannst du i. d. R. nicht aus einer EXE-Datei extrahieren. (Es sei denn, wir reden von AutoIT, VB 5.x, primitiven Python-Packern, usw.)

Grundsätzlich kannst du jeden Code disassemblieren (nicht zu verwechseln mit dekompilieren!), und wenn man das lesen kann, dann weißt du natürlich auch, was die Software macht.

Aber Reversing ist kein Kinderspiel! Es braucht viel Erfahrung und Zeitaufwand, um damit weiter zu kommen.

...zur Antwort