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"
Clone detecting tech
Moderators: hgm, Rebel, chrisw