24 replies
I have an .exe file that I want to decode and extract the data from.

I basically want to take this program, and use it on my server. But not using the program it came under.

Can anyone give me some pointers of how to do so?
Or anyone want to give me a hand?

I'm at a loss with this.
#decode #exe #file
  • Profile picture of the author seasoned
    Most people try to avoid extracting data from an EXE file. They arn't made for that, and some have methods to frustrate that.

    BESIDES, are you sure the data you want to extract is even there?

    Steve
    {{ DiscussionBoard.errors[8209237].message }}
    • Profile picture of the author WebTheorem
      Well I don't really need to extract the date. I just want the program recreated to run on my website.

      The .exe doesn't access any web files, so the data is in the program.
      {{ DiscussionBoard.errors[8209246].message }}
  • Profile picture of the author wayfarer
    .exe is a compiled binary file, that could have been created with any of a dozen different programming languages. What made you think it was even possible to "extract" it, then make it run in a web page? The environment of a desktop isn't similar to that of a web server. You'd have better luck hiring a developer to reproduce the functionality.

    If it's really just data you're after, the data is probably not even in the .exe, unless the .exe is the only file in that folder. Even then, compiled files have no limit to the number of ways they can store data, so good luck! You'd have to really find an expert at such things, it's not easy.

    You can try opening up the file in Notepad... mostly you'll just see a bunch of garbage, but it's possible some of it will be readable.

    Any way you spin it, your question is way too general for us to give a reasonable answer. If we knew what the file did or what functionality you needed, maybe we could be more helpful.
    Signature
    I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
    {{ DiscussionBoard.errors[8211133].message }}
  • Profile picture of the author SteveSRS
    hehe if you have a lot of time on your hands you can disassemble it to asm and then using C you can integrate the asm code to run it on your webserver.

    or of course ff you have a couple hundred gran for the reverse engineering etc
    {{ DiscussionBoard.errors[8212603].message }}
  • Profile picture of the author webwizdevelop
    You cannot modify exe file directly because once its corrypt you wont be able to run it but resource editor can be used to modify some text if its not compressed
    {{ DiscussionBoard.errors[8223931].message }}
  • Profile picture of the author seasoned
    EXE has only one format. THT is how windows can run it. Separating the data from the code is near impossible to automate. I HAVE made programs to find strings of characters in the code, and extract that. It was done to find keys, options, and error messages.

    Even a disassembler couldn't do a good job. BTW... Client programs are different from web.

    Steve
    {{ DiscussionBoard.errors[8225086].message }}
  • Profile picture of the author WebTheorem
    So what's the answer to get this data out of the program?
    {{ DiscussionBoard.errors[8230449].message }}
  • Profile picture of the author Andrew H
    The simple answer is: stop.

    Hire a developer to reproduce the functionality you are looking for in a web programming language.

    EDIT: if you are just looking for 'data' as in stored information. Just look through the files of the program. Also you can look in the registry to see any stored info there.
    Signature
    "You shouldn't come here and set yourself up as the resident wizard of oz."
    {{ DiscussionBoard.errors[8231648].message }}
  • Profile picture of the author Blakos
    A .exe is a compiled binary file. I doubt you cant extract it, reverse engineer it, and filter it to a web page. Try to work out what compiled it and decompile it, then you can at least work out what the code does.
    {{ DiscussionBoard.errors[8231967].message }}
  • Profile picture of the author TheApex
    If the program is made in .net framework (c#, vb, etc.) you still have a chance - there are programs that can decompile the application and show you the source code. This would be a great advantage since that source code can be easily embedded into a web page via asp.net.

    If it isn't, then it's more complicated: assuming the application isn't packed, you can see it's assembly code, which can give you some information about how it works. However you still need to rewrite the whole program...

    Anyway, good luck with it.
    {{ DiscussionBoard.errors[8235036].message }}
    • Profile picture of the author wayfarer
      Originally Posted by TheApex View Post

      If the program is made in .net framework (c#, vb, etc.) you still have a chance - there are programs that can decompile the application and show you the source code. This would be a great advantage since that source code can be easily embedded into a web page via asp.net.
      Misleading. Just because the same programming language happens to be used for both desktop and the web, doesn't make it "embeddable". Did you know that desktop applications (.exe, etc) can be made with PHP? That doesn't mean the resulting application can then be put onto the web without being completely rewritten. Completely different libraries are used when developing desktop vs web. Sure, a few low-level snippets could be reused, but that isn't very helpful, you might as well just rewrite the whole thing from the start.
      Signature
      I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
      {{ DiscussionBoard.errors[8238865].message }}
      • Profile picture of the author TheApex
        Originally Posted by wayfarer View Post

        Misleading. Just because the same programming language happens to be used for both desktop and the web, doesn't make it "embeddable". Did you know that desktop applications (.exe, etc) can be made with PHP? That doesn't mean the resulting application can then be put onto the web without being completely rewritten. Completely different libraries are used when developing desktop vs web. Sure, a few low-level snippets could be reused, but that isn't very helpful, you might as well just rewrite the whole thing from the start.
        What I was saying was that .NET programs can be decompiled back to their source code - of course you can't just copy-paste that into an asp.net page, but you can still use many algorithms found in there and also many classes from the framework.
        {{ DiscussionBoard.errors[8238945].message }}
  • Profile picture of the author novel
    i was in a similar situation where i wanted to reverse engineer it. i was fortunate to find a teenage computer wiz on a forum that was more than willing to spend hours and weeks on it, ended up creating a better ware for me.
    look thru forums where teenagers may hang, these kids r seriously smart these days.
    {{ DiscussionBoard.errors[8237123].message }}
  • Profile picture of the author wayfarer
    Any way you shake it, you're going to need a professional developer. And I'm highly skeptical there's anything useful in that .exe, outside pure demonstration of desired effect.
    Signature
    I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
    {{ DiscussionBoard.errors[8239311].message }}
  • Profile picture of the author AnkurJaiswal
    You could use any debugger like OllyDBG.
    {{ DiscussionBoard.errors[8239503].message }}
  • Profile picture of the author WebTheorem
    I mainly just want the data. It's information like this part number can cross to this part number. And this part number has these technical characteristics.

    So I'm not to concerned with the program for say. But more of the data in the program.

    I personally doubt this program is that locked down. You can actually right click on the tables and select to export. The issue is it would take weeks to do that for each table and section. So that's why I don't think it's that locked down and hard to crack for someone with the right knowledge and experience.

    Any takers want to take a peek at it? You have to be experienced at this, I don't want you to learn on my time. Message me.
    {{ DiscussionBoard.errors[8241268].message }}
    • Profile picture of the author wayfarer
      Originally Posted by WebTheorem View Post

      I mainly just want the data. It's information like this part number can cross to this part number. And this part number has these technical characteristics.
      That makes a little more sense. It definitely might be possible, especially if it keeps the information in an external format of some sort, which is pretty typical. I would take a look at it, but I don't usually use my Windows machine any more.

      It sounds like it's probably using a database of some sort, it doesn't make sense to keep a huge amount of information compiled together in an .exe like that, it wouldn't be very efficient. In the file system, is there any other file kept along with the .exe?
      Signature
      I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
      {{ DiscussionBoard.errors[8245962].message }}
    • Profile picture of the author seasoned
      Originally Posted by WebTheorem View Post

      I mainly just want the data. It's information like this part number can cross to this part number. And this part number has these technical characteristics.
      Any programmer that would put a large chunk of that into a program is just an IDIOT! It is harder to do, harder to maintain, harder to internationalize, can't be modified, etc... And you would need to make your program larger, etc... It is just NOT a good idea. Look at accounting programs, for example. Even the chart of ACCOUNTS is ELSEWHERE! Many programs today even store SMALLER things, like error messages and screen messages, to another file. WHY? It is easier to expand, and internationalize.

      I personally doubt this program is that locked down. You can actually right click on the tables and select to export.
      Although that can be done in the program, databases almost ALWAYS have that facility on most reports or even raw data.

      The issue is it would take weeks to do that for each table and section. So that's why I don't think it's that locked down and hard to crack for someone with the right knowledge and experience.
      It could take no time at all!

      Any takers want to take a peek at it? You have to be experienced at this, I don't want you to learn on my time. Message me.
      Heck, I'm probably more experienced than most, generally, on this. I HAVE analyzed data in programs. I have to tell you that it was to get COMMANDS, OPTIONS, SCREEN DATA, and ERROR MESSAGES, ****NOT**** the main data. I mean WHO stores that data in a program?

      As for the demand that people MUST be experienced, and must not learn on YOUR time. I assume that means you are paying? It shouldn't take long for a programmer to find strings you are looking for. HECK, I write programs to do that sort of thing ALL THE TIME. For one customer, I wrote a program to go into a program and find all the debug switch options it had because we were tired of calling support and after 2 days or WEEKS finding that the solution was to use such an option. They REFUSED to give us a list.

      If the data is stored in ASCII, in MOST cases, it is relatively easy to get. If it follows an inherent pattern, or you can find one from the programmer or compiler, it is relatively easy to clean. From what you are saying, it probably IS ASCII. EBCDIC is rare for a PC program, and it would be unlikely they encrypted or compressed it, because of it being as open as you indicate, etc... If they DID encrypt or compress it,finding things will be MUCH harder. Outside of a debugger, you would have to spot a pattern, or know more about how the compiler works.

      MY bet is that it pulls this data from the web, stores it in the registry, or stores it in another file/database. Have you even tried to run the program ALONE on a separate system(Do NOT install, merely copy the executable)? If we are right, unless it gets data from the web, it will probably NOT work! If YOU are right, there is a chance it will. Try THAT! ALSO, if you have an editor that can read everything to the end of the file, try going into the editor, and look for something you expect. You MAY even be able to have the EDITOR search. If it works, you're right! If it doesn't, we likely are. NOTE, many editors WILL only read PART of the file.

      Steve
      {{ DiscussionBoard.errors[8382663].message }}
  • Profile picture of the author wayfarer
    Actually, it probably makes more sense to look in your application data folder, it's probably somewhere like C:\Documents and Settings\{your username}\Application Data\{application name}
    Signature
    I build web things, server things. I help build the startup Veenome. | Remote Programming Jobs
    {{ DiscussionBoard.errors[8246002].message }}
  • Profile picture of the author WebTheorem
    Yeah it's in there. It's just getting it out and organizing it properly is my issue.
    {{ DiscussionBoard.errors[8381807].message }}
    • Profile picture of the author Delta90
      Originally Posted by WebTheorem View Post

      Yeah it's in there. It's just getting it out and organizing it properly is my issue.
      Have someone look at the files from the application folder, it might not be that hard to write a program that could use the files or atleast the data in them and present it on a web page.
      {{ DiscussionBoard.errors[8407815].message }}
  • Profile picture of the author Andrew H
    Yeah it's in there. It's just getting it out and organizing it properly is my issue.
    Be more specific and maybe we can help you.
    Signature
    "You shouldn't come here and set yourself up as the resident wizard of oz."
    {{ DiscussionBoard.errors[8381814].message }}
  • Profile picture of the author IdeaBox
    Send me a link to the files or at least one file and I'll tell you in detail how to organize it. Or I can write a small app to interface to it or one to reorganize in a modern format.
    {{ DiscussionBoard.errors[8408570].message }}

Trending Topics