|
-
Feb 26th, 2003, 05:32 PM
#1
Thread Starter
Frenzied Member
C++ expert needed for binary patch software
Sorry if I'm not supposed to post this here. If I'm not, any recommendations on where to post would be appreciated.
I have been trying like mad to find source code to a binary patch creation/application program without luck.
If you can create such a product, please contact me so we can negotiate.
Thanks,
Dan
-
Feb 26th, 2003, 08:22 PM
#2
Addicted Member
Not really interrested (monitarily speaking), but what the heck is a "binary patch software"?
If your referring to opening a binary\exe file and changing known bytes at that location...then I guess I know what your referring to in which case there are a BUNCH of "cracking" programs\source available.
Phil
-
Feb 26th, 2003, 09:56 PM
#3
Thread Starter
Frenzied Member
What I'm referring to is taking the binary difference file 1 and 2 and creating a patch file out of that containing only the difference. then, I need to apply that patch to file 1 on end user machines to bring it up to file 2's version.
Can you refer me to any of these that you know of?
-
Feb 27th, 2003, 02:05 AM
#4
New Member
Why cant you directly place new version files there ???
-
Feb 27th, 2003, 06:57 AM
#5
Frenzied Member
Because patch files are smaller, since they only contain the bytes that are changed... but if it are small programs I think you might as well replace the whole exe.
Jop - validweb.nl
Alcohol doesn't solve any problems, but then again, neither does milk.
-
Feb 27th, 2003, 07:11 AM
#6
That's why most large applications are split up into an exe and several dlls. When you need to patch something simply replace the one file you need to replace.
All the buzzt
 CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Feb 27th, 2003, 11:42 AM
#7
Thread Starter
Frenzied Member
Actually, we have switched to Delphi because we were sick and tired of the DLL hell inherent in other languages, such as Delphi. We have moved entirely the route of compiling libraries directly into the executable. It makes for larger files, but the end result is 100% customer satisfaction when their apps install perfectly everytime.
That is why patching is critical. To compensate for the much larger files sizes, we would like to just offer patches as updates since we realize not all our customers are on T1 lines.
-
Feb 27th, 2003, 11:55 AM
#8
You can link statically in C++ too.
But that's not the point, isn't it?
Sorry, don't know of any resources.
All the buzzt
 CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Feb 27th, 2003, 12:11 PM
#9
Addicted Member
could you not just write a program that reads some bits it one at a time and compares each bit from each .exe file and if there is a difference it would note where the diference was found and what to change the bit to (either a 1 or a 0). then you could just rite a .exe file that would open up the old .exe and go through it and change the bits. Or at lease i think it could be done.
say you open the file and read in some bits....10001000101010
and the other file has 10010000101010. the program could find the different bits and tell their position. then change the bit when told to.
-
Feb 27th, 2003, 01:01 PM
#10
Thread Starter
Frenzied Member
Yes, the concept is simple, but implementing it is a whole different monster I believe.
Regarding statically linking in C++, I know about that, but I was a VB programmer and I just didn't get C++ no matter how hard I tried. I found Delphi to be a pretty smooth transition from VB and there was a VB to Delphi translation tool I found which also helped out tremendously.
-
Feb 27th, 2003, 01:31 PM
#11
Addicted Member
i am working on something for you. check back in a day or so and i will see if i can get it to work. so far it will read in a *.exe now i just have to get it to compare 2 *.exe's and note the needed changes.
I will see what i can manage and get back w/ you.
-
Feb 27th, 2003, 04:47 PM
#12
Won't work. Why should the new exe be the same size?
All the buzzt
 CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Feb 27th, 2003, 04:59 PM
#13
Thread Starter
Frenzied Member
Who says it has to be the same size?? In fact, it will almost always be a different size between the 2 exes.
-
Feb 27th, 2003, 05:02 PM
#14
Frenzied Member
That's what CB means right?
actually, I've been thinking about this subject a while ago... when something in the beginning gets added to the file.. that means that all bits are a bit further in the file, resulting in the program thinking that all bits are different... well if it doesn't the file is corrupt then anyway isn't it? So this approach doesn't work... not that I can think of a good algorythm for this problem though...
Jop - validweb.nl
Alcohol doesn't solve any problems, but then again, neither does milk.
-
Feb 27th, 2003, 05:03 PM
#15
A comparison as Buy2Easy is proposing will only work with equally-sized exes.
All the buzzt
 CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
-
Feb 27th, 2003, 05:08 PM
#16
Frenzied Member
Yes, and that's why this approach does work when cracking a program.. the 'patch/hack' checks if the filesize is the same, and knows where to modify some bits.. that's why cracks are usually so small (not that I've ever used any of those cracks.. cracks? what are those? :P)
Jop - validweb.nl
Alcohol doesn't solve any problems, but then again, neither does milk.
-
Feb 27th, 2003, 05:23 PM
#17
Thread Starter
Frenzied Member
I need to compare 2 different size files. Why would anyone want to compare 2 files of the same size?? If anything has changed, it will most likely affect the file size, right??
-
Feb 27th, 2003, 05:30 PM
#18
Frenzied Member
Exactely, so that's why I think it's going to be a lot of trouble to patch your program...
I personally think it's better to devide the app in components and take some time to manage it, and be really careful when deploying your app. It's not only the thing of replacing some files... putting things in several dll's also reduces memory usage since you only have to load the dlls you're using at that time. Now you're loading all your code into memory at once..
Jop - validweb.nl
Alcohol doesn't solve any problems, but then again, neither does milk.
-
Feb 27th, 2003, 06:20 PM
#19
Addicted Member
then could you search the file from the end and go to the front?
or maybe you could find similarities and use some kind of algorithm to find what exactly is changed and just add it where needed???
could you possibly look for all the possible similarities in a file and then just add and subtract stuff as needed to the file. I think that it is possible. it might take me a week or so to do it. but i believe it can be done.
it is a good challenge and i like chalanges.
why don't we help this guy out a little bit and give it a shot. if you write a little peice of code that you think might be helpful then post it and then lets just see what we can come up with. i mean who actually likes answering a post that you have answered a million times already.
I am sure there are some of you who know c++ good enough that it would not be impossible for you.
-
Feb 27th, 2003, 06:30 PM
#20
Frenzied Member
I totally agree with you, it's one hell of a challenge... and I would be glad to give it a try, but I'm too busy with my own work at the moment to put enough effort into it to come even close to making it work... Also I think my knowledge of C/C++ and algorithm in general is insufficiant to make this thing work within a reasonable amount of time.
I wish you all the luck needed, and since I'm really interested in this subject, please let us know how it is going! Even if stuff doesn't work out, please post your problems over here so we might be able to help you out / think with you...
Good luck!
Jop - validweb.nl
Alcohol doesn't solve any problems, but then again, neither does milk.
-
Feb 27th, 2003, 07:49 PM
#21
Thread Starter
Frenzied Member
You guys sound like this is an impossible feat. Have you ever realized how many commerical pacthcing products are out there? It can be done.. Why can these companies do it but not anyone on these boards? I mean afterall, it is individuals that work for these companies that create these products. Are there just very few people out there that know how to do this sort of thing and those companies just happened to snatch them all up??
Come on guys, there's got to be someone out there that can do this...
-
Feb 28th, 2003, 04:57 AM
#22
There are commercial products out there, and I'm sure you could even find some.
The problem is: we're all busy. The people who developed those programs are professional programmers who did this as part of their job.
I'm a student. I have many other things to do. Most people here have many other things to do.
It's not impossible, it's just time consuming. It requires good knowledge of the PE format, machine code etc. Every change in size affects more than you would think: memory addresses need to be remapped, offsets newly calculated. The PE files have such places as export tables, relocation tables etc. You'd have to understand all of them and know how your change affects them.
An example of such a program is the BNet Updater by Blizzard. 200k large, and this app is compact.
All the buzzt
 CornedBee
"Writing specifications is like writing a novel. Writing code is like writing poetry."
- Anonymous, published by Raymond Chen
Don't PM me with your problems, I scan most of the forums daily. If you do PM me, I will not answer your question.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|