Linux - SoftwareThis forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
so.... in the great move from Windows to linux i hit one minor snag.
there is no open source route planner / travel manager. and i dont like the online ones.
so i decided to try wine. A win32 API compatability layer for UNIX.
it runs counter strike, Internet explorer, MS Office, so why not "TNT TravelManager GB"
everything works except for one tiny almost insignificant problem.
the Assembly Instruction 'INT15' is not supported by Wine.
its an annoying timer call that controlls how long the splash screen stays on screen.
because it is not supported, the splash screen stays up permenantly. and controll never goes to the main application window.
this INT15 only exists twice in the whole binary, one to Start the timer, and once to stop the timer.
before i give up and pay the whopping £3 for wineX (which might not work either)
i want to try hacking the program a little.
since i dont know enough about wine or the win32 api to implement this API Call, i was thinking of removing it from the Win32 exe.
Replaceing this INT15 instruction with an ADD 0, or a JUMP to nex instruction Instruction.
any idea's what will happen ?
im hopeing that without a call to the timer, the splash screen will pop uo, then instantly close.
also.... which to you think would be easyer.... doing it with a Hexeditor, or reverse engineering to windows Assembly, then re-asembling ?
I'm not sure how much I can go into here...basically you are asking:
How do I reverse engineer Win32 applications
I appreciate here it is for a legitimate use - what you'll have to do is use a Win32 Disassembler (Windasm (aka Wdasm) is the newbie tool; IDAPro for ...pros...) - find the call and remove it by NOPing it out. (So long as that call doesn't contain any useful code such as the declaration of variables etc - I've seen it happen)
There's no "reassembling" as such - the disassembler will show you the ASM code - you can then find the offset of the call and just edit the call --> 90s
Easier said than done. You may encounter anti cracking techniques in the program or CRC checks...and of course it's still not easy without those things.
All in all, I think it's a case of you going to google; getting the tools; learning ASM and Windows API better than the back of your hand; reading tons of guides on "Cracking" or "Reverse engineering"
Of course an another thing you could do is mail the guys at wine and talk about your problem - instead of learning the redundant win32 stuff, how about learning to program in linux and fix the problem yourself :D
Thanx... hey, i bin linuxing so long i forgot that not everything is open source... lol.
here's what ive done so far...
i opened the EXE with a Hex editor and found 2 'CD 15' instructions (which are the compiled Hex versions of the assembly 'int 15'), and replaced them with '90 90' (which is the NOP)
as i expected, this caused the splash screen to instantly close, However the main window did not function correctly....
if you have ever programmed in raw Windows API, and you forget to call the message handler loop.... well, that happened. the window does not re-draw its space when covered / un-covered.
i wonder, why is it that wine have implimented all the complexities of DirecX sound, and other things, but have not done somthing as simple as a timer call... ?
oh well... looks like i will have to try wineX. (whatever its new name is)
doing anything more is waaaaay beyond my ability.
Originally posted by qwijibow icedega is a grape used to make PORT WINE.... clever :p
+5 informative :)
That is far too clever - maybe if they didn't pay people to work on new names and
got on with getting good games to work (well; games i like anyway :) ) it'd be a lot
better :D
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.