1

To find an Assembly programmer is very hard to help me

I'm a established Delphi programmer that has an old copy of Delphi that is not .net And I have a *.dll that I'm converting into Delphi code for .net I'm on a big learning curve hear as i know little of .net yet. I've just got a computer with .net today!!!!!!

I've run the *.dll through a dissembler and started putting jump links in as writing in Delphi assembly you do not do any addressing, just reference links.

The file has fixed string structures (i think C++) ASCII & ANSI strings 1/ I do not know how to identify how the code references these structures

2/ and I do not know were the functions begin and what shape they look like

The code is free for any one to look at their is not many functions in it. but I have to email it as stack over flow will not allow me to display it.

Can you tech me or can you refer me to a friend you may know please to tech me?

Marc Gravell
  • 1,026,079
  • 266
  • 2,566
  • 2,900
lexdean
  • 151
  • 1
  • 2
  • 13
  • 3
    You're trying to reverse engineer a DLL and re-implement in .NET? Do you have a spec for what the DLL does? How will you test that your new version works correctly - i.e. what is correct? I would advise drawing up a spec for your dll and re-implemnting without using reverse engineering. If you're reimplementing using asm, I don't see what you are gaining for all your effort. As to posting code, you can use http://pastebin.com – mdma Jun 09 '10 at 09:22
  • Why is the DLL source code unavailable? – Caleb Hattingh Jun 09 '10 at 10:31
  • 2
    Delphi.NET is EOL ? Why now start porting to it? – Marco van de Voort Jun 09 '10 at 11:33
  • @mdma: Your "comment" is good enough to be an answer. You should post it as one and get some rep for the upvotes. – Mason Wheeler Jun 09 '10 at 12:47
  • Lex, your previous question indicates that your DLL is a .Net DLL. If you're planning on using it in Delphi for .Net, then you don't need to convert anything at all. Delphi for .Net should be fully capable of using the DLL you already have. But you also previously said you only have Delphi 4. Disassembly is *not* the way to go if you want to use that DLL in Delphi 4. You've seen a project that allows use of .Net code in Delphi 5 and above. Your best bet (besides upgrading to a version of Delphi *less* than a decade old) is to adapt *that* project to work with your version of Delphi. – Rob Kennedy Jun 09 '10 at 14:30
  • Reimplement code based on reverse engineering seems like a very time-expensive operation, and even a highly skilled programmer will have difficulties getting all the details correct. Are you aware that you can call a normal win32 DLL from .NET using the DllImport attribute? http://msdn.microsoft.com/en-us/library/aa984739%28VS.71%29.aspx – Ville Krumlinde Jul 05 '10 at 13:43

2 Answers2

5

I know that it's not good etiquette to just give an answer that says, "do something else", but I can't give you direct advice for coding 8086, as this is out of the scope of what can be succinctly given here.

If you don't have a spec, I would advise drawing one up, so you have a clear idea of the functionality that you want to achieve. You can then re-implement the code without using reverse engineering.

As it is, you're reimplementing using asm copied from the DLL, and I don't see what you are gaining for all your effort. And maintaining all that asm is going to be pretty painful in the short and long term!

mdma
  • 56,943
  • 12
  • 94
  • 128
  • I need a communication link into the dotnetexec.dll The dumbest thing is to decomplie a windows dll I have no documentation but I found this small dll at the same time it would be good to get to learn some principles of assembly. if you have no interest to help i understand Lex Dean. – lexdean Jun 10 '10 at 23:38
  • 1
    If you understand Lex Dean, you're the only one. – JasonFruit Feb 16 '11 at 17:08
0

Your disassembler should have identified the code and data portions of the DLL. If not, then try using a different one. You shouldn't have any problem figuring out what the entry points are and where the various functions begin and end. If the DLL wasn't compiled with debugging information, then sorting out the data structures may be a problem.

TMN
  • 3,060
  • 21
  • 23