Was bedeuet Hartgecodet?

Sorry wenn die frage net ins Forum passt,d ie anderen Sections passen noch weniger. Äh ja, die eigentliche Frage:
Was bedeutet Hartgecodet ?
Is sicher einfach zu beantworten, google spuckt nix aus und heir im Forum is das angeblich noch nie aufgetreten X(


MfG Johnson
 
Hardgecoded beudeutet afaik, das du z.B. die Serial in einem Programm nicht nach einem Algorythmus berechnen lässt, sondern einfach in dein Programm "reinsschreibst":
Code:
if serial = 1234 5678 abcd efgh
then Aktion
Das nennt man dann hardgecoded.
Das Problem hierbei ist halt, das man die Serial ganz einfach mit einem Hex-Editor auslesen kann, was bei einer Algo-Berechnung nicht funktioniert.

mfg Master Fes
 
Warum? Stimmt doch ;)

Deine Crackme´s sind alle hardcoded. Egal welchen Packer/Crypter du verwendest...

Gruss

root
 
Hi hants.

Ehm, wie?

Ich meinte jetzt seine Progs, die er hier reingestellt hat,waren alle hargecoded. Bisher hat er immer einen Packer (FSG) oder Crypter ( yC) verwendet um zu verhindern, dass seine "Serial" ausgelesen wird.

Was meintest du jetzt?

grüsse

root
 
servuz,

und durch nen packer/crypter wird das programm so geändert, dass seine "serial" erst durch nen algorythmus erzeugt wird -> und schon ist es für nen asm coder wie mich nichtmehr hardgecoded^^

bevor dieses thema gestartet wurde hielt ich "hardcoden" immer für ohne compiler programmieren^^
es gibt auch tuts dazu, in denen das als "hardcoden" bezeichnet wird - auf die weise kann man sogar noch bessere programme schreiben, als mit einem assembler^^

cya, hants
 
Mit hardgecoded meinte ich jetzt statisch, sprich die Serial ist im Programm existent und wird mit der Eingabe des Users geprüft/verglichen.

Sie wird auch nicht erst generiert, sondern ist als fester Wert bereits Bestandteil des Programms, sprich ich kann sie bei seinen VB-Priogs mit dem HexEditor sehen, wenn das Programm entpackt/decrypted wurde

Es ist kein Algorithmus zum generieren der Serial nötig.

Gruss

root
 
servuz,

ok du hast gewonnen :P
man muss aber erst draufkommen, dass hardgecoded == unabhängig vom programmverlauf ist

cya, hants
 
Hehee,
nein. Geht ja gar nicht ums gewinnen :P
Kenne "hardcoden" nach deiner Beschreibung aber nicht. Aber es gibt ja oft mehre Bedeutungen. Und dir glaube ich grundsätzlich alles :)

Außerdem zieh ich meinen Hut vor dir, denn du bist Klassen besser als ich, was coden angeht. Bin ein totaler, bekennender Noob ;) Von ASM und C++ keine Ahnung

btw;: Du hast mal neulich geschrieben, ASM wäre leichter als C++ zu lernen.
Ist das dein Ernst? Weil ich immer das Gegenteil gellesen hab?!

Hab mir mal ein paar Tuts angesehen/gelesen und fands bis jetzt ganz verständlich ( was ich von C++ nicht unbedingt behaupten kann)


grüsse

root
 
Offtopic:
Original von SUID:root

btw;: Du hast mal neulich geschrieben, ASM wäre leichter als C++ zu lernen.
Ist das dein Ernst? Weil ich immer das Gegenteil gellesen hab?!

Ich würde sagen, assembler zu lernen ist im Prinzip nicht leichter / schwerer als eine Hochsprache zu erlernen.
Seine Ideen allerdings in assembler umzusetzen ist wieder eine ganz andere Liga. :rolleyes:
 
servuz,

ich bleibe dabei: assembler lernen ist leichter als c++ lernen.

man braucht nur wenige befehle, diese brauchen wenige parameter und wenn man mal das prinzip verstanden hat ist assembler auf jedenfall leichter(und vor allem logischer - auch was fehlermeldungen angeht).

auf jedenfall sollte man bevor man mit asm anfängt in einer hochsprache programmiert haben, denn ich kann mir gut vorstellen, dass assembler für leute ohne jegliche programmierkenntnisse schwerer ist als c.
ich würde aber am anfang nicht zuviel zeit mit dem erlernen einer hochsprache verschwenden, denn wenn du assembler kannst - kannst du in jeder sprache(ausser vielleicht vb :D) gute programme schreiben (und wenn nicht - kannst du ja assembler einbinden- zb. bestanden meine ersten c programme zur hälfte aus assembler ^^).

beim assembler programmieren wirst du auf jedenfall einen guten debugger brauchen - zu empfehlen sind gdb, w32dasm, softice und ollydbg, wobei ich letzteren(u.a. wegen der möglichkeit den code zu patchen und als exe abzuspeichern) am besten finde.

zu lange im dos assembler rumhängen bringt nix - nach ein paar primitiven programmen(crypter etc.) würde ich sofort auf windows asm umsteigen.
das wirkt am anfang zwar ziemlich kompliziert, ist aber nach kürzester zeit einfacher (und vor allem logischer) als c. spaßeshalber mal ein paar programme "hardcoden" - also mit dem hexeditor und ner opcodeliste ist fürs verständnis(zb von bufferoverflowz) auch ganz nützlich(ausserdem hat man ja nicht immer nen compiler zur hand^^).

und was compiler angeht:
tasm ist nicht schlecht aber kommerziell(google suche nach tasm5_1.zip - sind 3 files)
masm ist freeware und in anfangszeiten schlecht gewesen, aber hat sich in letzter zeit stark gebessert und hat viele nütztliche beispiele und includefiles(die würde ich mir genauer anschauen) - auf jedenfall ziehn wegen den beispielen (www.masm32.com)
nasm gibts auch - ist freeware und zum coden besser als die anderen beiden geeignet, um assembler zu erlernen würd ich trotzdem tasm nehmen - obwohl es eigentlich ziemlich egal ist mit was für einen assembler man coden lernt. (nasm.sourceforge.net)

das was ich an masm überhaupt nicht leiden kann sind funktionsaufrufe mit invoke(den assemblerbefehl gibts gar nicht!) - uargh.

btw bei mir sind sogar assembler sourcecodes(vor allem bei größeren programmen) kürzer(und die programme schneller) als in c ^^

cya, hants
 
Um mal aufs Thema zurück zu kommen:

Also hardgecoded hat nicht nur mit Serials zu tun. Ich finde dies als Definition unzureichend, auch wenn es als super Beispiel dient. Hardgecoded heißt nichts anderes als Daten im allgemeinen fest in eine Softwarelösung zu implementieren. Dies kann die angesprochene Serial sein, Passwörter die direkt im Quelltext stehen (besonders sinnvoll bei Java lol), Benutzerinformationen, Geschäftsdaten und alles andere was allgemein in einer Datenbank besser aufgehoben wäre ;)
Als SW - Lösung meine ich nicht zwingend eine Programmiersprache, auch im Web-Design wo man heute Dynamik ja nicht mehr wegdenken kann gibt es diese unterschiede.

Greetz schlaflos

P.S.:
So, jetzt um mal auf ASM gegenüber C++ zurückzukommen. Ich selber programmiere schon einige Jahre. Mein Kampfweg ging von Visual Basic, C, C++ nach Java. Eine in meinen Augen sehr gesunde Entwicklung. VB macht Ereignisorientierte Programmierung sehr leicht. Optimal für Einsteiger: Sie lernen die grundsätzlichen Aspekte eine Programmiersprache kennen und wollen meistens tolle GUIs und sowas in der Art. Dank der Einfachheit wird man schnell motiviert. Sind die Basics verstanden tut man bestimmt einen guten Schritt Richtung C. Weit verbreitet und simpel wenn man es von Grundauf lernt. C++ ist danach auch kein Weltwunder mehr. Warum mein persönlicher Favorit nun Java ist lasse ich mal außen vor. Nur soviel: Ständige Argumente über Systemnahe Spiele oder Exploit Programmierung haben bei mir noch nie gezogen. Hoffe hier ist niemand mehr übrig der Java als keine echte Programmiersprache sieht denn:

Java war immer und bleibt immer absolut ungleich Java Script ;)

Zwischen dieser Entwicklung lernte ich leider auch ASM kennen und ich muss sagen es schmeckte mir überhaupt nicht! Ich verstehe nicht was ihr an der Sprache mögt bzw. einfach zu erlernen findet. Man muss die Register kennen, den grundsätzlichen Aufbau der Gerätschaften/Hardware und einiges mehr. Außerdem:

Wozu soll man es lernen? STOOOOOOOP: Jetzt bombadiert mich bitte nicht. Ich sehe durchaus ein das es heute in unserer täglichen Elektrischen Umwelt überall anzufinden ist. Aber wenn man sich nicht gerade auf die Entwicklung von Hardware oder deren Steuerung hin entwickelt sondern bei tradiotieller SW Entwicklung bleibt, dann kann ich nur sagen ist das erlernen von Assembler absolut Sinnlos (als Ausnahme auch hier mal die Spiele Programmierung außen vor). Gerade weil größere SW-Lösungen mit prozeduralen Sprachen nicht mehr ohne weiteres zu bewerkstelligen waren (Entwicklung, Wartung, etc.) aufgrund ihrer zunehmenden Komplexität wurden Hochsprachen entwickelt. Diese machen die Entwicklung wesentlich einfacher. Aktueller Stand der Dinge sind bestimmt Visual C# und Java. Software ist nunmal schnell veraltet und zwar dann wenn die Anforderungen an diese steigen.
 
Zurück
Oben