473,795 Members | 3,215 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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 3695
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
2777
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
675
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 and get the source nicety, although there have comeout with some "obfuscators" solution, but the structure still remain exactly same as the source after obfuscate. me unable to understand what the benefit will IL bring to me, is that benefit of...
7
5168
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 structure. ie. main() defined in a.c | ----------------> init_comms() defined in b.c
6
9518
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
1985
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 there any free code available on net ---need hel ----seash
3
8138
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
5089
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 that i could retrieve my code from my applications after i compile it so i need to know to prevent this from happening to my applications Thanx in advance
4
1791
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 System.ComponentModel.CancelEventHandler MyEvent; protected virtual void OnMyEvent (System.ComponentModel.CancelEventArgs e) {
2
4262
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 Diagram, Sequence Diagram, Collaboration Diagram, Activity Diagram. I've installed Visio 2003 and I'm trying to reverse engineering my project to get the conceptual design of it. When I start Visio, it exstracts and decodes correctly the...
7
5337
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? For unpacking I used IsXunpack. But which one should I use to repack the files into an all-in-one exe again? Maybe I should use InstallShield itself, but how?
0
9519
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 effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10439
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10215
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10165
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10001
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7541
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
5437
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4113
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3727
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

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.