Clone detecting tech

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Sergei Markoff

Clone detecting tech

Post by Sergei Markoff »

I suggest such a way. Let's try to make dump of processes of two engines. Then we will calculate a diff between this dumps. Here is the examples:

1) SmarThink r427 - SmarThink r907t (first compiled using VC6, second with VC7). Dump sizes 23 and 22 Mb, diff size (using xdelta utility) 248 000 bytes.
2) Rybka 1.0beta - Strelka. Dumps 50 and 49 Mb, diff size is 991 Kb.
3) Rybka 1.0beta - SmarThink r427. Diff size is 812 413 bytes.

Download two free utilities:

xdelta: http://xdelta.org/
pmdump: http://www.xakep.ru/post/26154/default.asp

Here is the algorythm.
1. Run engine under Windows as separate process
2. "pmdump -list >list.txt"
3. In "list.txt" you can found engine process PID
4. "pmdump PID engine.dmp" (for example: "pmdump 1472 smarthink.dmp")
5. Repeat 1-4 for the second engine
6. "xdelta30q.exe -s engine1.dmp engine2.dmp engines.diff"