Is it possible to find in what language a dll has been programmed?

S

Santi

Hi,
Is there anyway to find if a dll or exe has been compiled from C++ or Delphi
or whatever language?
 
V

Victor Bazarov

Santi said:
Is there anyway to find if a dll or exe has been compiled from C++ or Delphi
or whatever language?

Generally speaking, no, it's not possible.

V
 
R

rossum

Hi,
Is there anyway to find if a dll or exe has been compiled from C++ or Delphi
or whatever language?
1 Sometimes "Properties" will give you this sort of information.

2 Sometimes a utility to extract printable ASCII strings will show up
some relevant information.

3 Neither of these is guaranteed to work.

rossum
 
L

Le Chaud Lapin

Santi said:
Hi,
Is there anyway to find if a dll or exe has been compiled from C++ or Delphi
or whatever language?

As everyone else has said, no. However, depending on how desperate
you are, there are some ways of gaining a statistical indication:

In the absence of function type qualifiers (_declspec, etc) the
calling convention is determined by the language. In C, caller pushes
arguments, caller, pops. In Pascal, the caller pushes, but the callee
pops. Naturally, you would have to sample many functions in the EXE
to gain some certainty about the language. There is also the matter
of virtual functions. C++ has a distinct sequences of instructions
for accessing a pointer in the virtual function table. This sequence
might be different from other OO languagues.

If you pick 4 or 5 things to check for, then you could derive
stochastic answer to your question. Do not try to do this
programmatically, as you will discover that there no such thing as a
quick-and-dirty disassembler.

-Chaud Lapin-
 
S

Socket

I agree with Chaud Lapin
But beside compiler specific of code generation,
sometime there is possibility to differ 2 compilers based at
register, register code of operations.

All register, register 80x86 commands (such as MOV al,bl CMP edx,ebx)
may be presented by 2 set of codes, for example:
31C0 XOR EAX,EAX
33C0 XOR EAX,EAX
in the first case bit direction is 0 in the second 1.
Some compiler prefers to clear this bit in reg, reg OP, other ones likes to
set it to 1.

Regards, Alex
http://smike.ru
http://ircdb.org
 
H

Howard

Le Chaud Lapin said:
-Chaud Lapin-

Did you know your name is "(The) heat rabbit"? :)

If you were trying for "(The) hot rabbit", that would be "(Le) lapin chaud".

Backwards the French everything write.

:)

-Howard
 
R

rossum

Did you know your name is "(The) heat rabbit"? :)

If you were trying for "(The) hot rabbit", that would be "(Le) lapin chaud".

Backwards the French everything write.

Which is why they call NATO OTAN.

rossum
 
P

Peter van Merkerk

Howard said:
Did you know your name is "(The) heat rabbit"? :)

If you were trying for "(The) hot rabbit", that would be "(Le) lapin chaud".

Backwards the French everything write.

Not everything, there are exceptions like grand, petit, jeune, joli,
beau, mauvais, nouveau, autre, vieux...etc which should be put in front
of the noun.

If you think C++ is a difficult language try learning french!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,053
Latest member
BrodieSola

Latest Threads

Top