Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Questions about disassembling

Author: Chrilly Donninger

Date: 03:27:34 02/17/06

Go up one level in this thread


On February 17, 2006 at 04:17:38, Vasik Rajlich wrote:

>On February 17, 2006 at 02:33:32, Jouni Uski wrote:
>
>>Is it possible to disassemble exe-file, which is zipped and/or copy protected
>>like Fruit 2.2.1? Where are disassemblers downloadable?
>>
>>thanks
>>
>>Jouni
>
>IDA Pro is easily the best.
Yes. IDA-Pro makes it a lot easier. One of the view pieces of Software I really
admire.

>
>Just a general comment though: it is _extremely_ hard to figure out the
>innovations in a program. Basically, I would say that in practice it is
>impossible. Yes, you can locate the move generator, because you already know
>what that looks like and what it does. But understanding the evaluation terms,
>or adjustments to search depth, would require an ungodly effort, especially for
>a complex program. Let me put it like this: every aspiring computer chess
>programmer has been very strongly tempted to try his hand at disassembling.

When I started computer chess in 1989 I did just a look at the GNU-Chess Code.
It came never in my mind to dissassemble another programm. I think today one
should study the Code of Fruit and Crafty. And should then make something else.
Doing Dissassembling as a beginner is completly pointless. The only chance to
get some usefull information from disassembling is when one knows what to look
for. One can only - with a reasonable amount of effort - disassembly a small
programm (e.g. a virus).

Stefan Meyer-Kahlen once remarked to me "There are a lot of people around which
dissassemble Shredder". I felt a little bit stupid that I have thought before
that this is impossible and that I had no idea how to do it. So I bought IDA-Pro
and learned it. Just to prove, that I am a real programmer.

From my experience it is relative straightforward to get a good picture of the
search. Not all the details, some flags/conditions why a given search is
done/not done are difficult to identify, but one gets the principial idea
behind. For Rybka I needed 2 days to get this overall picture.
Dissecting the whole programm is much too cumbersome. One gets crazy from this
extremly tedious work.

I think, it does not pay off. For me it is just an intellectual challenge. E.g.
its nice to spot the Mate-Bug in Rybka. But it does not improve at all one ones
programm.
Even if one knows the search algorithm, one can not directly use it. The parts
have to fit together. There is a close relation between the evaluation, the
playing style and the search. As a special case the Hydra architecture which its
seperation of the FPGA- and PC-search puts additional restrictions. Additionally
some tricks which work on a single-processor are a desaster for a parallel
program.
I think doing engine matches and improving the weak spots of the own programm is
the only productive way. Disassembling is just to have some fun between these
boring engine-matches.

Chrilly





This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.