Re: RosAsm - exports issue with some DLLs



Gerry_uk <gerry666uk@xxxxxxxxx> écrivait news:1163246896.14631.0
@demeter.uk.clara.net:

It's important if the list tool isn't working properly in hexacode. Of
course if they're both broken (as they were at the time of writing) it
makes it even more difficult to check them against each other.

Well, i gave you the fix, but i fail to understand the reason
why you would need the Hexa form, if you can't solve the other
problems... What help do you expect form the Hexa, anyway?


The list tool also doesn't show the address, not sure why. The case I
described before where two exports can have different ordinals but
point
to the same address would be hard to spot in the list tool right now,
but WOULD show up in the DLL scanner tool.

The DLLScanner is a simple toy for viewing the Exports of a DLL.

The [List]/[Exports] is a kind of "Search" Function showing nothing
but what is found inside the Source. These are Functions of the
Sources Editor. It is just more "friendly" than a regular search
on "::".


I know you said it's not possible to have two exports pointing to the
same address but having the scanning tool working will enable me to
check this.

The only explanation i could imagine for having such a case, would
be about downward compatibility purposes. That is, two old Functions
would have been grouped into a single one... with two different
Names...

Admitting this would be the case, what relationship would this have
with the research of the types of Parameters, passed by the caller?

I understand that you search for a Tool that would tell you what
a DLL Function expects to eat, but there does not exist any, able
to do this: There is no "escape way" out of what you have been told
before. That is:

* You see i the DLL that 'Function1' expects 3 Parameters (ret 0C)

* you see in the original:

push 1
...
push Address
push D§Value
...
call 'DllName.Function1'

* Then, you like it or not, you _have_ to track up what these pushed
things are.

For example, you can guess that '1' is a Flag, like &TRUE, and see,
in the DLL, if you see something like:

Function1::
...
cmp D§ebp+8 1 | je Here
cmp D§ebp+8 0 | jne There

Then, you can make a bet for it to be either &TRUE of &FALSE, but
this can be nothing but a _bet_. There can be as many interpretation
as the human brain is able to invent...

For things like 'Address' or 'D§Value', there does not exist any
way, but to go and see, in the caller, what these things are. If
'Address' is the one of a String, this is easy. If 'D§Value' holds
a pointer to a pointer, you are in the ++ hell... and need to make
node in your head, at tracking _what_ it is, instead of seaching
for a tool that will do it for you: It does not exist.


Betov.

< http://rosasm.org >

PS. About another question, you asked, no, RosAsm cannot debug
the caller and the callee, in two different processes, at once.
At best, when stepping inside the caller, you can enter the DLL
Function with [F7]... which will not help you much, if you have
no cue on what is on the Stack, at this given time.




.



Relevant Pages

  • Re: Importing a Class define in a Dll
    ... pointer as an extra parameter passed to each non-static ... It is specially useful for the ARM platform as the ... MyClass() {... ... Build the DLL containing your class in the same ...
    (microsoft.public.windowsce.embedded.vc)
  • Re: Exception handling for loading of dependency library?
    ... typedef int (const CString & s, ... A common technique for doing this is to declare it as a global variable, ... the handle for a given dll all in one place. ... pointless because ANSI C does not require dereferencing function pointer variables. ...
    (microsoft.public.vc.mfc)
  • Re: How to program plugin DLLs
    ... build the descriptor you mentioned. ... That class is the "only" element to be exported from the DLL. ... pointer to that class and then call something like this: ... > What I might consider here is a method which fills in a popup menu. ...
    (microsoft.public.vc.mfc)
  • Re: Pointers and DLLs/shared libraries
    ... These pointer variables will point to data in the main program. ... subroutine set_pointer ... (DLLs and shared libraries do not always behave like ordinary ... ....the DLL effectively becomes a part of all of the client programs that use it. ...
    (comp.lang.fortran)
  • Re: dll load address
    ... Marco Ventanas ... >> I'm trying to read the dll import table using a pointer initialized to ... >> but as I read the first byte pointed by this pointer, ... but the displayed Base Addr is the same for all ...
    (microsoft.public.windowsce.platbuilder)