Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Engine Ippolit
1 2 3 4 Previous Next  
- - By Gerhard Sonnabend Date 2009-10-19 14:08
Hi to all !

Diese neue (??) Engine sorgt z.Zt. für mächtig Aufregung vor allem im CCC

Wenn ich nichts übersehen/überlesen habe, so soll das Teil ein Clone von
Rybka (3 oder 4 ?) sein. Die einzige Begründung dafür ist bisher, dass es
nicht möglich ist plötzlich eine derart starke Engine zu veröffentlichen.
(Oder habe ich was wichtiges überlesen ?)

Der "Autor" (die Autoren) spricht von +50 im Vergleich zu Rybka 3 x64
auf Single-CPU !  Evtl. war im CCC  gemeint, dass es sich um einen Clone
von Rybka 4 (noch nicht veröffentlicht) handelt ?

Ich gehe an solche Dinge immer absolut unbefangen ran.
Was mir (kurz mal in der Konsole gestartet) aufgefallen ist:

Ippolit nimmt sich ca. 70 MB an HTs, R3 hingegen ca. 103 MB. Von R4 habe
ich hierzu keinerlei Informationen, Vas wollte diesen HT-Bug allerdings mit
R4 beheben.

Gibt man "go depth 12" ein, so erhält man von Ippolit sofort den kompletten
output (hier auf P4-2GHz), Rybka 3 benötigt hierfür um die 12 Sekunden.

Die daraus resultierende HV ist bereits im dritten Zugpaar unterschiedlich.

Weiteres folgt.

Viele Grüsse,
G.S.
Parent - - By Lasser Juergen Date 2009-10-19 13:14 Edited 2009-10-19 20:35
Diese neue Wunder Engine nennt sich ippolit und soll 50 Elo besser sein als der aktuelle Marktführer zu finden unter Google Ippolit Chess die 32 bit Version [Link entfernt] und die x64 Version [Link entfernt]

Anmerk. d. Mod.: Download-Links zu o.g Engine wurden entfernt, da diese Engine möglicherweise gar nicht oder teilweise nicht selbst entwickelt wurde. Entscheidung basiert auf folgendem Link:
http://www.talkchess.com/forum/viewtopic.php?t=30192
Parent - By Thomas Cutter Date 2009-10-20 09:25
Zitat:
[...], da diese Engine möglicherweise gar nicht oder teilweise nicht selbst entwickelt wurde.


Die obige Begründung ist prinzipiell immer gültig.
Im Sinne von Transparenz halte ich es für eine schlechte Idee, die Links zu entfernen. Falls sich tatsächlich herausstellt, daß es sich nicht um eine Neuentwicklung handelt, wird das Interesse schnell erlahmen. Spricht noch jemand über Strelka?

Viele Grüße Thomas
Parent - - By Karl-Heinz Milaster Date 2009-10-20 10:54
Zitat:
[Link entfernt] und die x64 Version [Link entfernt]Anmerk. d. Mod.: Download-Links zu o.g Engine wurden entfernt, da diese Engine möglicherweise gar nicht oder teilweise nicht selbst entwickelt wurde. Entscheidung basiert auf folgendem Link:
http://www.talkchess.com/forum/viewtopic.php?t=30192


Vielleicht schaut Ihr mal hier rein:
http://talkchess.com/forum/viewtopic.php?topic_view=threads&p=297561&t=30237
http://talkchess.com/forum/viewtopic.php?topic_view=threads&p=297578&t=30237

Gruss,
khm
Parent - By Peter Martan Date 2009-10-20 11:16
Hallo Karl-Heinz!
Ich wollte mich eigentlich auch nur noch mit Links an der Diskussion beteiligen, sehe aber gerade, dass ich dabei erst recht Gefahr laufe, ins Politische abzurutschen.

Noch dazu sind manche Links noch linker als andere, den, den ich etwas weiter unten gesetzt habe, würde ich sofort wieder löschen, wenn ich doch nur noch könnte, bin ich doch gerade draufgekommen, dass Bence Laundon schon stark nach Ben Lau klingt, nein?
Verflixt, ich sollte doch wirklich endlich still sein.
Parent - - By Kurt Utzinger Date 2009-10-19 14:17
[quote="Gerhard Sonnabend"]
Hi to all !
[...]
Wenn ich nichts übersehen/überlesen habe, so soll das Teil ein Clone von
Rybka (3 oder 4 ?) sein.
[...]
Viele Grüsse,
G.S.
[/quote]

Wenn das kein Grund ist/wäre, um diese Engine einfach zu ignogieren?
Mfg
Kurt
Parent - By Peter Struwel Date 2009-10-19 14:28
Hallo Kurt,

glaubst du wirklich allen Ernstes, dass jeder Engineprogrammierer in seinem eigenen Kämmerlein still und leise vor sich hin programmiert??

Wenn ich so die Historie verfolge, dann habe ich sehr große Zweifel!

Grüße

Peter
Parent - - By Peter Martan Date 2009-10-19 15:14
[quote="Gerhard Sonnabend"]
.
Was mir (kurz mal in der Konsole gestartet) aufgefallen ist:

[/quote]

Wie hast du das gemacht, ich sehe auf der Seite dort nur code- Dateien, hast du dir selbst ein compile gemacht?
Parent - - By Gerhard Sonnabend Date 2009-10-19 15:34
[quote="Peter Martan"]
[quote="Gerhard Sonnabend"]
.
Was mir (kurz mal in der Konsole gestartet) aufgefallen ist:

[/quote]

Wie hast du das gemacht, ich sehe auf der Seite dort nur code- Dateien, hast du dir selbst ein compile gemacht?
[/quote]

Es gibt auch ausführbare Dateien, siehe oben.

Viele Grüsse,
G.S.
Parent - By Peter Martan Date 2009-10-19 15:57
Zu spät gesehen, danke.
Parent - - By Patrick Buchmann Date 2009-10-19 15:30
Hallo Gerhard,

Ausser den 50 Scheinpunkte hast Du die ganze politische Aufmachung vergessen.

Also eine Schachengine die mit Politik Werbung macht ist bestimmt etwas fûr den Mühl. Die Kinder sind vielleicht im programmieren begabt aber der Rest der Intelligenz muss irgendwo auf der Strecke liegen geblieben sein.

MfG,
Patrick
Parent - By Gerhard Sonnabend Date 2009-10-19 15:40
[quote="Patrick Buchmann"]
Ausser den 50 Scheinpunkte hast Du die ganze politische Aufmachung vergessen.
Also eine Schachengine die mit Politik Werbung macht ist bestimmt etwas fûr den Mühl. Die Kinder sind vielleicht im programmieren begabt aber der Rest der Intelligenz muss irgendwo auf der Strecke liegen geblieben sein.
[/quote]

Also mir ist es i.d.R. vollkommen egal, was ein
Engineautor auf seiner Page schreibt resp. verbreitet.
Es sollte lediglich nicht gegen gültige Gesetze
verstossen. Welche politische Gesinnung und/oder
welche sonstigen Ansichten jemand hat, ist einzig
und allein seine Sache.
Parent - - By Thomas Lagershausen Date 2009-10-19 16:12
[quote="Patrick Buchmann"]
Hallo Gerhard,

Ausser den 50 Scheinpunkte hast Du die ganze politische Aufmachung vergessen.

Also eine Schachengine die mit Politik Werbung macht ist bestimmt etwas fûr den Mühl. Die Kinder sind vielleicht im programmieren begabt aber der Rest der Intelligenz muss irgendwo auf der Strecke liegen geblieben sein.

MfG,
Patrick
[/quote]

Verschone uns doch bitte mit deinen politischen Beurteilungen.

Dies ist ein Computerschachforum und keine Plattform für persönliche Ideologie.

MfG
TL
Parent - By Patrick Buchmann Date 2009-10-19 16:22
[quote="Thomas Lagershausen"]
[quote="Patrick Buchmann"]
Hallo Gerhard,

Ausser den 50 Scheinpunkte hast Du die ganze politische Aufmachung vergessen.

Also eine Schachengine die mit Politik Werbung macht ist bestimmt etwas fûr den Mühl. Die Kinder sind vielleicht im programmieren begabt aber der Rest der Intelligenz muss irgendwo auf der Strecke liegen geblieben sein.

MfG,
Patrick
[/quote]

Verschone uns doch bitte mit deinen politischen Beurteilungen.

Dies ist ein Computerschachforum und keine Plattform für persönliche Ideologie.

MfG
TL
[/quote]

Hallo Thomas,

Ich habe keine politische Beurteilungen. Ich habe nur darauf hingewiesen dass auf dieser "Schachseite" nicht über eine Schachengine, Clone oder nicht, berichtet wird.
Wer dieses Werk als Clone bezeichnet wird als "Capitalist" beschimpft von Lenin (ich denke es ist ein Pseudonyme  ) persönnlisch.

Patrick
Parent - - By Günther Höhne Date 2009-10-19 16:04
[quote="Gerhard Sonnabend"]

Diese neue (??) Engine sorgt z.Zt. für mächtig Aufregung vor allem im CCC

Wenn ich nichts übersehen/überlesen habe, so soll das Teil ein Clone von
Rybka (3 oder 4 ?) sein. Die einzige Begründung dafür ist bisher, dass es
nicht möglich ist plötzlich eine derart starke Engine zu veröffentlichen.
(Oder habe ich was wichtiges überlesen ?)
[/quote]

Hallo,

die Frage ist wirklich, ist es ein Clone, bzw sind Teile davon aus Rybka 3 oder 4 ?? Wenn es ein Clone von Rybka ist, wäre die nächste Frage, wie erhält man einen C-Code einer Schach-Engine aus einer EXE-Datei ??

Gruß
Günther
Parent - - By Thomas Lagershausen Date 2009-10-19 16:15
Wurde denn bereits schon eine Partie mit diesem unbekannten Schachcode gespielt?

Ich würde gerne einmal eine Partie sehen. -)

MfG
TL :
Parent - By Werner Schüle Date 2009-10-19 16:33
[quote="Thomas Lagershausen"]
Wurde denn bereits schon eine Partie mit diesem unbekannten Schachcode gespielt?

Ich würde gerne einmal eine Partie sehen. -)

MfG
TL :
[/quote]

geh doch mal auf Schach.de

Werner
Parent - - By Werner Schüle Date 2009-10-19 16:32
[quote="Günther Höhne"]
die Frage ist wirklich, ist es ein Clone, bzw sind Teile davon aus Rybka 3 oder 4 ?? Wenn es ein Clone von Rybka ist, wäre die nächste Frage, wie erhält man einen C-Code einer Schach-Engine aus einer EXE-Datei ??
Gruß
Günther
[/quote]

Ab hier sind Experten gefragt. Ich habe folgendes verstanden (lasse mich aber gerne korrigieren):
Man kann eine .exe disassemblieren. Für die Sprungadressen muss man dann z.B. für lesbaren C-Code wohl eigene Namen erfinden. So sieht der C-Code wohl auch aus - und deshalb wird daraus geschlossen, es handelt sich um einen Clone also keine selbst entwickelte Engine. Es kann sicher keiner außer dem Rybka Team sagen, ob die Ursprungsengine Rybka war. Ich habe aber gelesen, Larry Kaufmann soll diese Aussage gemacht haben.
Ich stimme hier mit den Aussagen aus dem CCC überein: diese Vorgehensweise gefährdet unser schönes Hobby, insbesondere weil der Code öffentlich gemacht worden ist.
Gruß
Werner
Parent - By Günther Höhne Date 2009-10-19 16:51
Hallo Werner,

also wird mittels eines Computerprogramms, die Maschinensprache eines Programms in einen für Menschen lesbaren Code umgewandelt.
War dies bei Ippolit die Vorgehensweise, sind das in der Tat sehr schlechte Nachrichten für das Computerschach.

Gruß
Günther
Parent - - By Wolfram Bernhardt Date 2009-10-20 02:57
[quote="Werner Schüle"]
Ab hier sind Experten gefragt. Ich habe folgendes verstanden (lasse mich aber gerne korrigieren):
Man kann eine .exe disassemblieren.
[/quote]

Hallo Werner et al.

Das ist nicht ganz falsch, aber da man an anderer Stelle zu diesem ganzen Thema immer wieder haarsträubenden Unfug liest, hier vielleicht mal etwas Hintergrund-Information zum Thema "Clonen", ganz so einfach ist es nämlich nun auch nicht.

Alle Programme, die auf unseren Computern laufen, müssen dort zum Zeitpunkt des Ausführens in Maschinensprache vorliegen. Ein
Programm in Maschinensprache besteht aus sehr, sehr, sehr vielen kleinen Mini-Befehlen, die der Computer (im Wesentlichen der
Prozessor und der Speicher) in rasender Geschwindigkeit ausführen - allerdings bewirkt jeder einzelne Befehl nicht viel.
Komplett Programme in Maschinensprache zu schreiben, ist prinzipiell möglich und wurde früher viel gemacht. Heutzutage sind
die Aufgaben jedoch meist so komplex, daß nicht mehr in Maschinensprache programmiert wird, der Code ist für Menschen schwer
zu lesen (schon aufgrund der Länge, da man auch für einfach Aufgaben viele, viele Zeilen braucht) und in vielerlei Hinsicht
unhandlich und unwirtschaftlich. Aber in Tat würde das ermöglichen, noch den letzten Geschwindigkeitskick herauszukitzeln.
Daher werden heute bei einigen Programm die wirklich ganz zeitkritischen Passagen nach wie vor in Maschinensprache
geschrieben, aber nie mehr das große Ganze.("Assembler" ist in diesem Zusammenhang nicht anderes als eine Darstellung von Maschinensprache, in der vor allem die Befehle
durch kurze Wörter repräsentiert sind, so daß es sich ein wenig besser lesen und schreiben lässt.)
Daher programmiert man seit geraumer Zeit in den sogenannten Hochsprachen, zu denen eigentlich alles gehört, was man unter
Programmiersprachen kennt: Basic, C-Varianten und -Derivate wie C selber und C++, aber auch Python, php und ähnlicher
Skriptsprachen. (Mit den Sprachen des .NET-Frameworks und auch mit Jave verrhält es sich noch etwas anders, das tut aber hier
nichts zur Sache.)

Eine Zeile Codes einer dieser Hochsprachen ist für Computer zunächst völlig unverständlich, sie muss immer erst in
Maschinensprache übersetzt werden. Der Vorgang und vor allem Zeitpunkt dieser Übersetzung wird klassich unterschieden in zwei
Kategorien:
1) Früher waren Sprachen (wohl vor allem Basic) dafür bekannt, daß sie "interpretiert" wurden. Dabei wird immer nur die
nächste auszuführende Zeile Codes der Hochsprache übersetzt und dann ausgeführt. Das heisst, während ein Programm läuft, ist
der Computer nicht nur mit der Ausführung des eigentlich gemeinten Programms beschäftigt, sondern auch ständig mit der
Übersetzung der nächsten. Oft nimmt die Übersetzung dabei mehr Zeit in Anspruch als das Ausführen des eigentlichen Programms.
Das und viele andere Nachteile (z.B. wird eine Zeile, die 100mal ausgeführt wird auch 100mal übersetzt, was 100mal neu Zeit
kostet) haben dazu geführt, daß man heute im Allgemeinen auch PCs lieber mit Möglichkeit 2 arbeitet. (Ich will allerdings
nicht verschweigen, daß "interpretieren" auch Vorteile hat, aber auch meiner Meinung nach überwiegen die Nachteile bei weitem)

2) Beim "Compilieren" wird das gesamte Programm vor der ausführen komplett in Maschinensprache übersetzt. Der Vorteil iegt auf
der Hand: Wenn das Programm dann erstmal läuft, wird keine kostbare Zeit mehr zum Übersetzen verbraucht. Dafür kann so eine
Compilierungsvorgang mitunter länger dauern, was beim Entwickeln auch nerven kann, wenn man mal schnell was testen will. Bei
Schachprogramm spielt das aber keine Rolle, da dürfte eine Compilierung nicht länger als 1-2 Sek. dauern.

Das Compilieren ist wie gesagt das Übersetzen von Quellcode einer Hochsprache in Maschinensprache. Die Programme, die das tun,
vollbringen dabei wahre Kunststücke. Denn sie möchten natürlich, daß der Maschinencode, der dabei am Ende herauskommt, so
"gut" wie möglich ist. Dabei kann "gut" bedeuten "möglichst schnell" oder auch "möglichst klein" oder "möglichst stabil".
Heutige Compiler haben ein riesiges Set von Optionen, die das Ergebnis der Compilierung zum Teil stark beeinflussen. Dazu
kommt, daß es Compiler von unterschiedlichen Herstellern gibt, die verschiedene Übersetzungsprobleme unterschiedlich lösen.

Es ist also klar, daß es nicht "das" Ergebnis gibt, wenn man von C nach Maschinensprache compiliert.

Der umgekehrte Weg ist noch ungleich schwieriger: Es ist extreeeem schwierig, aus compiliertem C-Code wieder den originalen
C-Code zu erhalten. Dazu müsste man den Compiler kennen, der den Maschinencode erzeugt hat, und die Optionen, die aktiv waren.

Auch kann man nicht wissen, was der Entwickler des C-Codes sich an vielen Stellen gedacht hat.
Und - war der originale Code überhaupt reines C? Oder war es Basic?
Theoretisch könnte man auch ein Basic-Programm compilieren und dann versuchen, aus dem erzeugen Maschinensprache-Code C zu
generieren. Das würde aber niemals gelingen, weil die Daten- und Programmstrukturen in Basic zum Teil grundsätzlich anders
sind.

(Das Wort "Disassemblieren" in diesem Zusammenhang wird oft nicht ganz richtig verwendet. Im ursprünglichen Sinne bedeutet es:
Aus Maschinensprache Assembler-Code zu generieren. Das ist nicht schwer und immer möglich, weil vor allem Zahlen gegen
Befehlsnamen ersetzt werden müssen. Dann lässt sich wie schon gesagt der Maschinencode ansatzweise besser lesen, aber dennoch
versteht man noch laaaaange nicht, was dort beabsichtig wurde.)

Aber gut, angenommen, man kennt den Compiler des ursprünglichen C-Entwicklers, hat sich viel Zeit genommen, seine
Compileroptionen zu erraten und man hat ein wirklich gutes Tool zur Rückgewinnung des Codes: Es fehlt immer noch alles, was
zum Verständnis des Programm beträgt: Zum Beispiel sind alle Kommentare des Originalcodes weg - da KOmmentare keine technische
Bedeutung haben, wirft der Compiler sie als allererstes weg und man kann sie unmöglich aus dem Maschinencode zurückgewinnen.

Als nächstes die Variablennamen. Variblen, die im Originalcode "Tiefenzaehlen" oder "Positionbewertung" hiessen, heissen nach
der Rückumwandlung "_A" und "_B" oder ähnlich. Was also herauskommt, ist im besten Fall syntaktisch korrekter code, der ohne
tiefe Kenntnis der Materie nicht erstmal nicht lesbar ist.

Fremden Programmcode zu verstehen ist auch unter guten Entwickler oft nicht einfach, ohne Kommentare noch schwieriger und wenn
jeder Hinweis fehlt, ist es wirklich sehr zeitaufwändig, sich da hineinzuarbeiten.

Was bedeutet das nun für die immer wieder auftauchenden Clone-Verdächte unserer Schach-Engines?
Wenn der original Quellcode irgendwo offenliegt, ist es recht einfach, etwas zu verändern ohne Schaden anzurichten und die
Spielstärke gravierend zu versauen. Auf der anderen Seite ist ein solcher "Clone" dann leicht erkennen, weil eben nicht viel
geändert wurde.

Bei solchen vermuteten "Rückcompilaten" ist es in jeder Hinsicht schwieriger. Zunächst muss das "Rückcompilat" wie beschrieben
erst einmal gelingen. Wenn das wirklich erreicht werden sollte, sieht das Ergebnis womöglich völlig anders aus als das
Original. Selbst für den Original-Autoren könnte es schwierig sein, zu zeigen, daß das eigentlich sein Code ist. Wenn der
Rückcompilierer sich jetzt viel Mühe gegeben hat, wird er den Variablen wieder vernünftige Namen, Kommentare einfügen und so
weiter - er wird also versuchen, das Rückcompilat wieder wie echten Quellcode aussehen zu lassen. Wenn er das gut machen will,
muss er den Code aber auch verstanden haben, was alleine im Fall von Rybka eine nicht zu unterschätzende Leitung sein dürfte.
Das Gemeine daran ist, daß es nach diesem Prozess für den original-Autoren wieder richtig viel Arbeit bedeutet, zu beweisen,
daß es sich ursprünglich um seinen Code gehandelt hat.

Ich will und kann hier (mangels Beschäftigung mit den Code, um den es geht) für keine Seite Partei ergreifen, doch mein Ergebnis ist aber leider dies:

Man kann eine neue starke Engine weder ernsthaft sofort in den Himmel jubeln, noch kann sofort "Clone!!!!" schreien, denn beides bedarf
einer Überprüfung, die mit dummerweise einigem Aufwand verbunden ist, wenn man es sorgfältig machen will.
Wer die Mühe auf sich nimmt und sorgfältig clonet (was halt auch viel Arbeit ist) soll als Lohn ruhig ein paar Wochen Ruhm und Aufmerksamkeit geniessen, auffliegen wird es ja doch und ist insofern letztlich für die Katz'.  Es mag aber jeder seine Zeit verschwenden, wie er am liebsten möchte...

Ciao,
    Wolfram
Parent - By Benno Hartwig Date 2009-10-21 16:34
Thanx, schöne Erklärung der Thematik!
Benno
Parent - - By Karl-Heinz Milaster Date 2009-10-20 10:04
[quote="Günther Höhne"]Wenn es ein Clone von Rybka ist, wäre die nächste Frage, wie erhält man einen C-Code einer Schach-Engine aus einer EXE-Datei ??[/quote]

Das ist der Schwachpunkt am Clone-Verdacht.
Ich kenne jedenfalls keinen Decompiler, der aus einer EXE einen C-Quellcode mit in der Schachprogrammierung benutzten Variablen- und Prozedur-Namen erzeugt.
Und aus einem Assembler-Quelltext solche Bezeichner zu rekonstruieren halte ich für unmöglich.
Kann es sein, dass nicht ein Clone, sondern das zugrunde liegende Wissen (C-Quelle) unterdrückt werden soll?
Jedenfalls sind die Argumente im Talkchess-Forum alles andere als überzeugend.
Und hier wird nach dem Motto verfahren: Weil wir es nicht wissen, entfernen wir den Link aufgrund einer Schuldvermutung (Schäuble-Syndrom).

Gruss,
khm
Parent - - By Günther Höhne Date 2009-10-20 11:58
Hallo,

der Autor von Stockfish ist sich fast sicher das es sich bei Ippolit um ein Reverse Engineering Produkt handelt, nach Angaben von Dan Corbit soll ein Tool die Montage in C ermöglichen.

http://www.talkchess.com/forum/viewtopic.php?t=30192&start=110

Gruß
Günther
Parent - - By Karl-Heinz Milaster Date 2009-10-20 12:11
[quote="Günther Höhne"]der Autor von Stockfish ist sich fast sicher das es sich bei Ippolit um ein Reverse Engineering Produkt handelt, nach Angaben von Dan Corbit soll ein Tool die Montage in C ermöglichen.[/quote]

Hallo Günther,

IdaPro (von dem Can Corbit schreibt) habe ich selbst, damit kann man EXE sehr gut decompilieren.
Aber das Programm erzeugt keine schachspezifischen Variablen- und Prozedur-/Funktions-Bezeichnungen.
Und es ist unmöglich, dass man aus den von IdaPro generierten Bezeichnern irgendeinen schachspezifischen Sinn ableiten kann.

Gruss,
khm
Parent - - By Peter Struwel Date 2009-10-20 13:16
Also wenn ich einen schachmotor clonen würde, dann würde ich von den besten engines die teile (proceduren)
herauspicken die am besten gecoded wurden und dann einfach wieder zu einer neuen engine zusammensetzen.

ist natürlich viel zu zeitaufwändig? und wie du schreibst auch nicht möglich, da das decompilieren nichts bringt?

Peter
Parent - - By Karl-Heinz Milaster Date 2009-10-21 01:30
[quote="Peter Struwel"]Also wenn ich einen schachmotor clonen würde, dann würde ich von den besten engines die teile (proceduren)
herauspicken die am besten gecoded wurden und dann einfach wieder zu einer neuen engine zusammensetzen. ist natürlich viel zu zeitaufwändig? und wie du schreibst auch nicht möglich, da das decompilieren nichts bringt?[/quote]

Bleiben wir mal bei Ippolit:
Der veröffentlichte C-Quellcode ist knapp 15000 Zeilen lang und aufgrund schachspezifischer Bezeichner einigermassen gut lesbar. Aber den Sinn der einzelnen Variablen, Prozeduren und Funktionen und ihre Abhängigkeiten muss man vollständig analysiert und durchschaut haben, um Teile des Programms in ein anderes Programm übernehmen zu können.
Es gibt Decompiler, die aus einer EXE einen C-Quellcode erzeugen. Aber die erzeugen notgedrungen synthetische Varbiablen-, Prozedur- und Funktionsnamen. Dadurch wird eine Funktionsanalyse ungleich schwerer und meiner Meinung nach unmöglich.

Übrigens versuche ich gerade, die Ippolit-EXE zu in C-Quellcode zu decompilieren, um festzustellen, ob die EXE wirklich ein Kompilat des veröffentlichten Quellcodes ist.

Gruss,
khm
Parent - - By Roland Rösler Date 2009-10-21 02:24
[quote="Karl-Heinz Milaster"]Übrigens versuche ich gerade, die Ippolit-EXE zu in C-Quellcode zu decompilieren, um festzustellen, ob die EXE wirklich ein Kompilat des veröffentlichten Quellcodes ist.[/quote]
Und warum kompilierst Du nicht einfach den veröffentlichten Quellcode und testest damit?
Parent - - By Karl-Heinz Milaster Date 2009-10-21 02:41
[quote="Roland Rösler"]Und warum kompilierst Du nicht einfach den veröffentlichten Quellcode und testest damit?[/quote]

Wie soll das funktionieren?
Ich will nicht eine EXE testen, sondern den veröffentlichten mit dem decompilierten Quellcode vergleichen.
Wenn ich den veröffentlichten Quellcode kompiliere, kann ich die so entstandene EXE zwar mit der Original-EXE vergleichen, aber da sind Abweichungen zwangsläufig, weil nicht jeder C-Compiler den gleichen Binär-Code erzeugt.

Gruss,
khm
Parent - - By Peter Struwel Date 2009-10-21 09:29
Hallo Karl-Heinz,

was Roland schrieb kann ich nachvollziehen. Es führt evtl. schneller zum Ergebnis.
Einfach den veröffentlichten Quelltext kompilieren, dann mit einigen Teststellungen
die engine outputs vergleichen.

P.S.

Du scheinst hier der kompetenteste Fachmann zu sein wie ich sehe, nicht wahr?
Ich möchte auch mal den Quelltext für Windows kompilieren, wie macht man das?
Für Linux hab ich es schon mal erfolgreich gemacht. Was brauche ich dazu und wie stelle ich das an?
Bitte eine Kurzanleintung, wenns nicht zu aufwändig ist.

Peter
Parent - - By Benno Hartwig Date 2009-10-21 16:42
[quote="Peter Struwel"]Ich möchte auch mal den Quelltext für Windows kompilieren, wie macht man das?[/quote]Dasselbe wie für Toga und Stockfish.
z.B.: VisualC++ (das Umsonst-Teil 2005 reicht.)
Die Sourcen-Dateien (ipp_eng.c und windows32.h, letztere umbenennen auf localdefs.h)

Und dann im VisualC++
Datei/neu/Projekt aus vorhandenem Code
ein paar Fragen beantworten, 'Konsolanwendung', ich binde MFC ein,
und ab geht die Post.

Benno
Parent - By Peter Struwel Date 2009-10-21 20:03
bei mir klappt das compilieren noch nicht, hast du das hinbekommen ippolit zu kompilieren? 

Peter
Parent - By Roland Rösler Date 2009-10-21 14:49
Das Kompilieren des veröffentlichten Quellcodes (mit kleinen Änderungen; b-Version) scheint schon von anderer Seite gemacht worden zu sein!
Siehe: http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?pid=190945;
Parent - - By Benno Hartwig Date 2009-10-21 07:05
[quote="Karl-Heinz Milaster"]Übrigens versuche ich gerade, die Ippolit-EXE zu in C-Quellcode zu decompilieren, um festzustellen, ob die EXE wirklich ein Kompilat des veröffentlichten Quellcodes ist.[/quote]Ist denn überhaupt zu erwarten, dass man aus einem Kompilat eine Source erhält, die wenigstens einigermaßen den Sourcen entspricht, aus denen das Kompilat entstand?
Ich meinte nun gerade verstanden zu haben, dass da durchaus erhebliche Unterschiede auftreten werden.
Aber interessant ist es sicher.

Benno

PS:
In de.rec.denksport gab es manchmal Rätsel, in denen superbekannte Textpassagen von Übersetzern z.B. in das Englische, dann Französische, dann wieder Englische und zurück ins Deutsche überstzt wurde. Und es war sauschwer, noch irgendwas zu erkennen. leicht ist es hier wohl auch nicht.
Parent - - By Peter Martan Date 2009-10-21 08:44
[quote="Benno Hartwig"]
Ist denn überhaupt zu erwarten, dass man aus einem Kompilat eine Source erhält, die wenigstens einigermaßen den Sourcen entspricht, aus denen das Kompilat entstand?
[/quote]

Genau das ist die Frage, Benno!
Ich weiß es natürlich auch nicht besser als du, denke aber halt, es wird dann der ursprüngliche Code wiederherstellbar sein durch das decompile, wenn dann auch wieder dieselben Interpretationen der Maschinenbefehle angewendet werden, wenn nicht, dann nicht.
Parent - By Karl-Heinz Milaster Date 2009-10-21 09:40
[quote="Peter Martan"]Genau das ist die Frage, Benno!
Ich weiß es natürlich auch nicht besser als du, denke aber halt, es wird dann der ursprüngliche Code wiederherstellbar sein durch das decompile, wenn dann auch wieder dieselben Interpretationen der Maschinenbefehle angewendet werden, wenn nicht, dann nicht.[/quote]

Hallo Peter,

deshalb habe ich ja auch "ich versuche" geschrieben.

Gruss,
khm
Parent - - By Peter Struwel Date 2009-11-18 09:07
[quote="Karl-Heinz Milaster"]
...

Übrigens versuche ich gerade, die Ippolit-EXE zu in C-Quellcode zu decompilieren, um festzustellen, ob die EXE wirklich ein Kompilat des veröffentlichten Quellcodes ist.

Gruss,
khm
[/quote]

hallo Karl-Heinz ,

darf ich mal nachfragen, wie weit du gekommen bist?

sehr interessierter peter.

Peter
Parent - By Karl-Heinz Milaster Date 2009-11-18 23:11
[quote="Peter Struwel"]darf ich mal nachfragen, wie weit du gekommen bist?[/quote]

Das habe ich bereits in diesem Forum an anderer Stelle gepostet: Die EXE ist mit Sicherheit kein Kompilat des Quell-Codes, da es bereits beim Parsen der UCI-Kommandos Abweichungen gibt.

Gruss,
khm
Parent - - By Gerhard Sonnabend Date 2009-10-19 18:51
Das Teil gibt laufend lustige Bewertungen aus, siehe:

6: Rybka 3 x64 1CPU - IPPOLIT 0.080a, Testmatch 2009
r5Rk/7p/3Bp1q1/3NP3/8/P5P1/6KP/5Q2 b - - 0 1

Code:

Analysis by IPPOLIT 0.080a:
[...snip...]
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  +-  (5.78)   Tiefe: 15/33   00:00:01  82kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  +-  (5.78)   Tiefe: 15/33   00:00:01  82kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  +-  (5.78)   Tiefe: 16/33   00:00:01  82kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  +-  (5.78)   Tiefe: 16/33   00:00:01  82kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  +-  (5.78)   Tiefe: 17/33   00:00:01  82kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  +-  (5.78)   Tiefe: 17/33   00:00:01  82kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  +-  (5.78)   Tiefe: 18/33   00:00:01  82kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  +-  (5.78)   Tiefe: 18/33   00:00:01  82kN

--->
--->
--->
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Kg8 54.Sxe6 Tb7 55.Sg5 Tb5 56.Kf3 Kg7 57.a4 Ta5 58.Se6+ Kh7 59.Sc5 Kg7 60.e6 Kf6 61.Ke4 g5 62.e7 Kf7 63.Kf5 g4 64.Kxg4 Ke8 65.Kg5 Ta8 66.h4
  =  (-0.01)   Tiefe: 19/33   00:00:01  87kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Tb7 54.Sxe6 Kg8 55.Sg5 Tb2+ 56.Kf3 Tb5 57.Kg4 Kg7 58.e6 Kf6 59.h4 Txg5+ 60.hxg5+ Kxe6 61.Lb4 Ke5 62.a4 Kd5 63.Lc3 Kc4 64.Kf4 Kc5 65.Ke4 Kb6
  =  (-0.01)   Tiefe: 19/33   00:00:01  114kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Tb7 54.Sxe6 Kg8 55.Sg5 Tb2+ 56.Kf3 Tb5 57.Kg4 Kg7 58.e6 Kf6 59.h4 Txg5+ 60.hxg5+ Kxe6 61.Lb4 Ke5 62.a4 Kd5 63.Lc3 Kc4 64.Kf4 Kc5 65.Ke4 Kb6
  =  (-0.01)   Tiefe: 19/40   00:00:02  931kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Tb7 54.Sxe6 Kg8 55.Sg5 Tb2+ 56.Kf3 Tb5 57.Kg4 Kg7 58.e6 Kf6 59.h4 Txg5+ 60.hxg5+ Kxe6 61.Lb4 Ke5 62.a4 Kd5
  =  (-0.01)   Tiefe: 19/43   00:00:04  4794kN
--->
--->
--->

50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Tb7 54.Sxe6 Kg8 55.Sg5 Tb2+ 56.Kf3 Tb5 57.h4 Tb3+ 58.Kg4 Tb7 59.e6 Ta7 60.e7 Ta8 61.Kf3 Kg7 62.Le5+ Kg8 63.a4 Te8 64.Ld6 Kg7 65.Le5+ Kg8
  +-  (6.28)   Tiefe: 19/46   00:00:07  7240kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Tb7 54.Sxe6 Kg8 55.Sg5 Tb2+ 56.Kf3 Tb5 57.h4 Tb3+ 58.Kg4 Tb7 59.e6 Ta7 60.e7 Ta8 61.Kf3 Kg7 62.Le5+ Kg8 63.a4 Te8 64.Ld6 Kg7 65.Le5+ Kg8
  +-  (6.28)   Tiefe: 19/46   00:00:07  8003kN
50...Txg8 51.Df6+ Tg7 52.Dxg6 hxg6 53.Sf4 Tb7 54.Sxe6 Kg8 55.Sg5 Tb2+ 56.Kf3 Tb5 57.h4 Tb3+ 58.Kg4 Tb7 59.e6 Ta7 60.e7 Ta8 61.Kf3 Kg7 62.Le5+ Kg8 63.a4 Te8 64.Ld6 Kg7 65.a5
  +-  (6.28)   Tiefe: 19/46   00:00:08  8184kN


So was kam bisher in jeder Partie vor

Viele Grüsse,
G.S.
Parent - - By Christopher Conkie Date 2009-10-19 19:02
Are you saying we should not buy Rybka because the rapidshare links to Ippolit are being provided above?



Christopher
Parent - By Karl-Heinz Milaster Date 2009-10-20 12:25
[quote="Christopher Conkie"]Are you saying we should not buy Rybka because the rapidshare links to Ippolit are being provided above?[/quote]
Are you saying we have buy Rybka, but not looking for any other free engine?
Parent - - By Thomas Müller Date 2009-10-19 19:21
naja clone hin oder her scheint das ding noch nicht so ganz lauffähig oder fertig zu sein?!
Was weiss man den über die "programmierer" ?
Code:
author Yakov Petrovich Golyadkin
copyright Yakov Petrovich Golyadkin, 92th year from Revolution, PUBLICDOMAIN (workers)
dedicatory To Vladimir Ilyich

nun denn...alles sehr merkwürdig, aber alles im ccc habe ich nicht gelesen...überblick verloren.

--
TM
Parent - - By Horst Wandersleben Date 2009-10-19 22:30
Parent - - By Werner Mueller Date 2009-10-25 16:47
[quote="Horst Wandersleben"]
Siehe auch:
http://de.wikipedia.org/wiki/Der_Doppelg%C3%A4nger_(Dostojewski)
[/quote]

Interessanter Stoff, werde ich mir demnächst mal zu Gemüte führen. Btw. (wenn ich schon offtopic bin) kam mir die Tage ein Uraltklassiker in die Finger: 'Der Zauberlehrling', ebenfalls ein interessanter Stoff
Damit die Jüngeren unter uns nicht erst googeln müssen:

Der Zauberlehrling

Hat der alte Hexenmeister
Sich doch einmal wegbegeben!
Und nun sollen seine Geister
Auch nach meinem Willen leben.
Seine Wort und Werke
Merkt ich und den Brauch,
Und mit Geistesstärke
Tu ich Wunder auch.
  Walle! walle
  Manche Strecke,
  Daß, zum Zwecke,
  Wasser fließe
  Und mit reichem, vollem Schwalle
  Zu dem Bade sich ergieße.

Und nun komm, du alter Besen,
Nimm die schlechten Lumpenhüllen!
Bist schon lange Knecht gewesen:
Nun erfülle meinen Willen!
Auf zwei Beinen stehe,
Oben sei ein Kopf,
Eile nun und gehe
Mit dem Wassertopf!
  Walle! walle
  Manche Strecke,
  Daß, zum Zwecke,
  Wasser fließe
  Und mit reichem, vollem Schwalle
  Zu dem Bade sich ergieße.

Seht, er läuft zum Ufer nieder;
Wahrlich! ist schon an dem Flusse,
Und mit Blitzesschnelle wieder
Ist er hier mit raschem Gusse.
Schon zum zweiten Male!
Wie das Becken schwillt!
Wie sich jede Schale
Voll mit Wasser füllt!
  Stehe! stehe!
  Denn wir haben
  Deiner Gaben
  Vollgemessen! -
  Ach, ich merk es! Wehe! wehe!
  Hab ich doch das Wort vergessen!

Ach, das Wort, worauf am Ende
Er das wird, was er gewesen.
Ach, er läuft und bringt behende!
Wärst du doch der alte Besen!
Immer neue Güsse
Bringt er schnell herein,
Ach! und hundert Flüsse
Stürzen auf mich ein!
Nein, nicht länger
  Kann ich's lassen;
  Will ihn fassen.
  Das ist Tücke!
  Ach, nun wird mir immer bänger!
  Welche Miene! welche Blicke!

O du Ausgeburt der Hölle!
Soll das ganze Haus ersaufen?
Seh ich über jede Schwelle
Doch schon Wasserströme laufen.
Ein verruchter Besen,
Der nicht hören will!
Stock, der du gewesen,
Steh doch wieder still!
  Willst's am Ende
  Gar nicht lassen?
  Will dich fassen,
  Will dich halten
  Und das alte Holz behende
  Mit dem scharfen Beile spalten.

Seht, da kommt er schleppend wieder!
Wie ich mich nur auf dich werfe,
Gleich, o Kobold, liegst du nieder;
Krachend trifft die glatte Schärfe.
Wahrlich! brav getroffen!
Seht, er ist entzwei!
Und nun kann ich hoffen,
Und ich atme frei!
  Wehe! wehe!
  Beide Teile
  Stehn in Eile
  Schon als Knechte
  Völlig fertig in die Höhe!
  Helft mir, ach! ihr hohen Mächte!

Und sie laufen! Naß und nässer
Wird's im Saal und auf den Stufen.
Welch entsetzliches Gewässer!
Herr und Meister! hör mich rufen! -
Ach, da kommt der Meister!
Herr, die Not ist groß!
Die ich rief, die Geister,
Werd ich nun nicht los.
  In die Ecke,
  Besen! Besen!
  Seid's gewesen.
  Denn als Geister
  Ruft euch nur, zu seinem Zwecke,
  Erst hervor der alte Meister.

Johann Wolfgang von Goethe


Und um nicht völlig offtopic zu bleiben: Was macht eigentlich Fabien Letouzy?
Parent - - By Benno Hartwig Date 2009-10-25 17:27
[quote="Goethe"]Die ich rief, die Geister,
Werd ich nun nicht los.[/quote]Welcher Bezug zur Engine-Thematik lässt sich finden?
Die veröffentlichten Sourcen fallen mir so ungefähr passend ein.
Denn die werden sich nicht wieder einfangen lassen. Auch wenn sich irgendein Meister bemüht.
Vas wird es ärgern. Und OK kann ich es sicher auch nicht finden!
Letztlich wird aber das Computerschach vermutlich nicht wirklich darunter leiden. (Im Gegenteil?)
Benno
Parent - By Werner Mueller Date 2009-10-25 17:43
[quote="Benno Hartwig"]
[quote="Goethe"]Die ich rief, die Geister,
Werd ich nun nicht los.[/quote]Welcher Bezug zur Engine-Thematik lässt sich finden?
Die veröffentlichten Sourcen fallen mir so ungefähr passend ein.
[/quote]

Als Bezug fällt mir da der Anspruch, 'quasi' aus dem Nichts die spielstärkste Engine geschaffen haben zu wollen, als noch passender ein.
Parent - - By Udo Kaiser Date 2009-10-20 00:17
so wie ich das verstanden habe ist "programmierer" wohl etwas zu HOCH gegriffen.
man hat Rybka 3 genommen, das durch software disassembliert und dann die C sourcen ins netz gestellt.
Fürs assemblieren gibt es programme.
Und Rybka3 , da ist der Programmierer von Rybka Urheber.
Insofern... wäre der Programmierer Vas Rajlich.

Wenn ich die "der Seewolf" auf holländisch übersetze verändere ich nix daran das Jack London der Autor ist.
Parent - - By Benno Hartwig Date 2009-10-20 06:31
[quote="Udo Kaiser"]Insofern... wäre der Programmierer Vas Rajlich.[/quote]
Da die ippolit-source nun auch im Netz steht, könnte (und wird wohl) Vas sich sehr schnell ein Bild machen.
Und wir werden vermutlich davon hören.
Soweit ich es verstand, ist das ippolit-Verhalten und die Engine-Ausgabe aber doch gravierend anders als bei R3.
Ähnlich wie R4? *spekulier*

Jetzt warte ich ab, ob Vas (oder auch ein anderer Top-Engine-Entwickler) den Finger hebt und ruft "Das sind meine Sourcen".
Wenn nicht, dann sollte ippolit nicht und wird auch nicht tabu sein.
(Aber ich rechne mit Vas Finger und einen Hinweis auf R4. Und er wird grübeln, wie das passieren konnte.)

Benno
Parent - - By Peter Martan Date 2009-10-20 07:08 Edited 2009-10-20 07:12
Larry Kaufman soll schon aufgezeigt haben und gesagt, es handle sich um Rybka- Code, welche Version, hat er, glaub ich, nicht gesagt.
Das macht die Sache ja so besonder spannend. Wie kann ein Clone besser sein als das Original, noch dazu mit soviel weniger .exe, somit wohl auch soviel weniger Code?
Und wer sollte eine spätere Version als R3 in die Finger bekommen und die Zeit (die Ausrüstung ist auch eine Frage, die angeblich Zeitvorteil bringt, aber die hat ja wohl bald jemand) noch vor Erscheinen von R4 ein R4- reversed engineering zu schaffen?
Überhaupt wird in der nächsten Zeit das Hörensagen wieder eine beliebte Wissensquelle werden, übrigens das einzige, was mit Verbreitungsschnelligkeit und Zuverlässigkeit mit Wikipedia mithalten kann.

Und schon bin ich wieder still.
Parent - - By Udo Kaiser Date 2009-10-20 10:36
schon eigentlich merkwürdig das von dem stärksten Programm der Welt ständig geklauter Quellcode im Netz kursiert. Sowas ähnliches habe ich also weder von Fritz noch von Shredder oder anderen Programmen jemals
gehört. Bei Rybka ist das schon das 2. mal das es heißt, sources wären abhanden gekommen.
Ich erinnere mich noch an die epische Schilderung in diesem Forum. Damals hatte jemand geschrieben er habe überraschend per email den Source-Code von Rybka zugeschickt bekommen und sei nun etwas irritiert was er damit machen soll.
Parent - By Peter Struwel Date 2009-10-20 10:51
[quote="Udo Kaiser"]
schon eigentlich merkwürdig das von dem stärksten Programm der Welt ständig geklauter Quellcode im Netz kursiert.
...
[/quote]
Du musst etwas vorsichtiger formulieren! Sonst könntest du allergrösste Probleme bekommen.

Peter
Up Topic Hauptforen / CSS-Forum / Engine Ippolit
1 2 3 4 Previous Next  

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill