473,386 Members | 1,610 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Reverse Engineering of Windows Distribution

I have a Python software for Windows, packed into a single exe file and
accompanied with a few dll and package files.

Is there any way to reverse engineer this packet by extracting the
source files so they can be used on Linux/Unix? I have checked the exe
but it seems to be compressed by zlib.

Some people on the mailing lists told my friend it's possible to get the
code once you can "unpack" the files from the exe.

Anyone?

Markus

Jul 18 '05 #1
2 3679
Markus Stenzel wrote:

I have a Python software for Windows, packed into a single exe file and
accompanied with a few dll and package files.

Is there any way to reverse engineer this packet by extracting the
source files so they can be used on Linux/Unix? I have checked the exe
but it seems to be compressed by zlib.

Some people on the mailing lists told my friend it's possible to get the
code once you can "unpack" the files from the exe.


It seems likely that the source to this program would be available
to you already, wouldn't it? It *is* open source, right?

If it is, you can probably find the source on the web, or just
contact the author for it.

If it is not, you are probably violating your license agreement in
trying to do this. Did it come with a license?

Technically it is possible, but it's not trivial, and seems like
a pretty bizarre thing to do if the author didn't intend it to
be used on Linux in the first place. (Which we can infer from the
choice of distribution method.)

-Peter
Jul 18 '05 #2
Markus Stenzel wrote:

Product : Experimental BitTorrent Client (c)Bram Cohen
Modified: Eike Frost http://ei.kefro.st/projects/btclient/
License : MIT
Source : Available (3.1-CVS-4, 3.2-1, 3.2.1b-1, 3.2.1b-2)

The Experimental BitTorrent is a GUI upgrade of the well known
BitTorrent file swarming application (c)Bram Cohen and released under
the MIT license.

Eike Frost modified the software to allow "bandwidth capping" to be
selected from the GUI to allow ACK messages to pass the upstream during
normal operation thus increasing overall efficiency.

However all versions mentioned above in the line starting with "Source"
_DO NOT_ run on Linux. 3.1-CVS-3, 3.2-1 and 3.2.1b-1 produce error
messages due to a few bugs handling the command line parameters.

The 3.2.1b-2 client DOES work on Linux but is running slowly and works
for single files only. When working with "batch torrents" it routinely
hangs during operation (even if it's not touched after it's launch)

The author Eike Frost doesn't offer the pre-3.1-CVS-3 source.

The windows version we have installed on Win32 is a pre 3-1-CVS-4
version. Now guess what.. ;))
> Technically it is possible, but it's not trivial, and seems like
> a pretty bizarre thing to do if the author didn't intend it to
> be used on Linux in the first place. (Which we can infer from the
> choice of distribution method.)


I hope the additional background info might make you giving a few little
hints? *hopes*


So basically the problem is that the versions for which source is available
do not work, but you have a version which works, so you'd like to try getting
it running under Linux. (?)

If that's so, maybe you can isolate the problem to a single file? Extracting
a single .pyc file from the .exe might be relatively easy, even if you had
to basically do it manually.

The packaging process used might be useful to know: was it py2exe, or the
Macmillan Installer?

Note, in case you weren't aware, that you won't actually get back the
*source*, such that you could easily modify it and recompile. You'll
get back the compiled (bytecode) file, which you could put into a .pyc
file and run in place of the "bad" .py file which you have... at least
in theory.

Retrieving the source itself is even more involved. It requires
decompiling (see "decompyle"), although if you go that route you should
get back something very close to the original. Maybe even enough for you
to do a "diff" and patch the latest version to work again?

Sounds like a lot of work though. Wouldn't it be easier to work with
the author to fix the problem in the supported versions, and use them?

-Peter
Jul 18 '05 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Weird-beard | last post by:
Is there a uml reverse engineering tool for php? I am using argo uml, but it only has support for java reverse engineering, I remember that poseidon is same too. Thanks.
8
by: xiao zhang yu | last post by:
me was sorry if this question are present before DotNet, no matter VB.Net or C# all they are compiled to IL, and yes, that IL will totally same as "open-sourse", every IL will easy to decompile...
7
by: Martin | last post by:
Hi, I am trying to reverse engineer some software in C. Ideally I would like to use a free program that would scan for function calls and map the route of function calls in programs in a tree...
6
by: bluekarthik | last post by:
Hi , Hi, has anyone tried reverse engineering a .drv / .dll file ? Plz tell me some techniques to reverse engineer .drv / .dll files !! karthik bala guru
2
by: seash | last post by:
H I developed an windows form application(visual c#), i want to protect it against copying(only licensed should be able to use) and i heard a topic like reverse engineering(c# decompilers) etc...Is...
3
by: Sérgio Almeida | last post by:
greetings it is possible to use reverse engineering on a .NET Dll? If so, how? TIA Almeida
15
by: Fady Anwar | last post by:
Hi while browsing the net i noticed that there is sites publishing some software that claim that it can decompile .net applications i didn't bleave it in fact but after trying it i was surprised...
4
by: Alessandro Riolo | last post by:
I've got a weird thing when reverse engineering a c# project which is declaring and then using an event of type CancelEventHandler as in the following snippet: ... public event...
2
by: mary | last post by:
Hi, for my thesis at the university I'm working on a Visual c++ 6.0 source code, to understand better it I need to extract the UML graphics: Class Diagram, Object Diagram, Use Case Diagram, State...
7
by: Gui | last post by:
Hi folks, I have unpacked an all-in-one exe produced by InstallShield. I've made the necessary changes and now I'm ready to repack the files. How can I do that? Which program should I use? ...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.