Making Closed Software Act Like It's Open
The Installer writes "Researchers from the University of Washington have managed to add customization and accessibility options to proprietary software without ever touching the source code. Rather than alter program code, Prefab looks for the pixels associated with the blocks of code used to paint applications to a screen, grabs hold of them, and alters them according to whatever enhancements the user has chosen to apply. Any user input is then fed back to the original software, still running behind the enhanced interface."
Obligatory XKCD
Are we really that desperate to continue using closed software.
This is called a screen scraper, and likes to break with updates to the underlying program, right?
Now they just need to make a tool for web articles like this that customizes the UI to just show the article, without all that crap around it.
"Behave like open source": Freely customizable. "Open source" (FOSS) is sufficient for customizability, but not necessary.
If the original program's operation is not modified, then there is probably a second process which does the extra stuff. Perhaps the modification of the UI is innovative, but the act of using a second program to do stuff for another is not (at least not to anyone with 10 minutes of programming experience, even for a non-CS (math) like me).
This quote really made my day...
The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
Open Source as a development methodology has already won. It is more scalable: more features, custom features, localization, error removing all work better with it. It is also a lateral organization like a web which avoids some issues that the "Mythical Man Month" talks about which results from hierarchal organization. Close software will never go away but it's utility has already been greatly compromised by Open software. With Open software this extra translation layer is unnecessary you would just modify the source and have a more reliable program intrinsically. Code is Free, get over it.
Shh.
That has to add a lot of overhead to the already running process and to what benefit? If it's reading the code "as many as 20 times per second" that is going to add tons of CPU and RAM usage to the system that just isn't needed. F/OSS ftw!
"There is a way that seems right to a man, but its end is the way of death." Proverbs 16:25 (NKJV)
I remember doing hacks like this to Mac applications -- back when they had resource + data forks. The resource forks contained all their sounds, graphics, icons, forms, etc. With ResEdit you could simply open up (most) applications and tweak them to your hearts content :)
Why aren't you encrypting your e-mail?
The headline seems completely disconnected from text of the summary
Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
Chances are that such "enhancements" constitute a derivative work of the proprietary user interface. In many jurisdiction even using such a thing is illegal and distributing the enhancements without permission from the copyright owner most certainly is. Which, of course, is very different from free and open source software, where people are encouraged to share and improve the code.
OS Reviews: Free and Open Source Software
Tools like this have been around for ages, although they are usually called "GUI test frameworks" or "automation assistants". Such tools provide a way of scripting interactions with an existing GUI. However, they really only focus on mimicking pre-recorded user interactions--it seems like it would be quite time-consuming and fragile to reverse-engineer an arbitrary program's dialogue boxes in a robust way that would allow control to be significantly enhanced.
Also, on Windows, at least, there are tools that enhance the operation of dialogue boxes (for example, adding history and options to the File Open dialog). Those tools work at a more abstract level than snagging pixels, which is a lot more efficient--but that means they are ineffective on applications that have already customized those dialogues.
It seems like the fundamental non-breakthrough here is that the application actually must already include the functionality that you want to express in your modified UI--otherwise, you can modify the UI all you want, but the app will only do what it's capable of. So if you want it to display a bunch of different renderings in sub-windows automatically (to use their example), it had better be capable of that display already.
It seems to me the title should be "Making Closed Software Look like it's Open". But what do I know. Maybe the looks is all that's important in software nowadays.
Get off of my lawn and all that.
this is nothing new
WHY!!??
We show prisoners how to paint the bars on their windows the color of the sky and pretend that they are free.
Isn't this similar to how the old Game Genie and Gameshark systems used to work on console games, or am I way off mark here?
http://slashdot.org/comments.pl?sid=1607692&cid=31743626
Some closed source software explicitly prohibit modificatiion (unknown whether it counts in memory) and reverse-engineering. This is probably illegal.
Screen scraping is a very common activity. Everybody needs to use the Print Screen function eventually and it is a simple step to edit the result in the Gimp.
Excuse me, but please get off my Pennisetum Clandestinum, eh!
I wish them a lot of of fun - to make user input result into an improved software!
Exploits that do this are in the wild.
They hijack your client display when you access a banking page, fill in the account details and amount for you, while presenting you with interface to enter your target account, then replace the data on the confirmation page with whatever you entered while obscuring the data they entered. You sign the transaction with a token or OTP and instead of sending $15 to your aunt, $10k money gets transferred to the hijacker's account in Nigeria.
45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
How it was used to be made 13 years ago. http://www.nikse.dk/razzcripp.html
Method of "hooking" draw-calls and substituting those with your own methods has been around for as long as there have been "windowed" user interfaces.
What was the point of this article? Someone just found several decades old stuff and just assumed being the first?
Once upon a time, back in the dreaded days of America OnLine... we did something very similar to this. We would use a windows api hook along with a few other api tools to add menus to AOL's interface. This menu would basically link to our "proggies" (i.e. our collection of mass mailers, "punters", scrollers, faders, chat bots, TOSers, etc.) There's a lot you could do with the windows api.
All of this was between 10 and 15 years ago by a bunch of bored, VB programming teenagers. Those were the days.
I believe this kind of sourceless modifications for accessibility are very common indeed. Just download nocd/nodvd-crack to any game and you'll have the game a whole lot more accessible and playable. Though recent trends have been mostly to make games less accessible (with more DRM) and some games have evolved to a point where no amount of work can make them playable (ref. latest Ubisoft DRM).
the age old technique of screen-scraping, only probably a lot more error prone (if that's possible).
Sometimes the light at the end of the tunnel is the headlight of an oncoming train.
Grow some, kid. Posting as AC just makes you look even dumber.
I did this years ago back in 1998 when I had an issue getting my MAPI service provider working to provide an interface to my companies calendaring tool. I hijacked the Outlook calendar to create items in my software, while supporting regular Outlook email. Good stuff.
I do this all day every day.... Don't know if I'm allowed to name names but BLOODY SAGE!!!! Sold by people who know very little about it, to people who know even less. And then some poor sod has to warp this rigid, unhelpful software into something useable, which would be easy since there are a hundred and fifty million add-ons, if that person was given a budget. I found it easier to trick people into thinking they were on Excel than teaching them how to use SAGE.
. . . Like AutoIT and AutoHotKey have been able to both hook, and modify (add / replace elements) in other applications for years.
Lip stick on a pig
Paging Rube Goldberg. Please call the front desk Mr. Goldberg. Or maybe they are trying to win the code obfuscation award. Wouldn't there effort be better spent creating some thing that isn't broken by design?
Wait -- are you saying that any malware I write to steal people's paypal accounts with this architecture may not be portable?
Why's that "Submit" button look funny?...
the preceding comment is my own and in no way reflects the opinion of the Joint Chiefs of Staff
There was a shareware Windows program called "The Customizer" which recognized a parent window, then would move, resize, hide/show, enable/disable all the child windows (buttons, controls, etc) the way you want it every time that window appears. So you could completely rearrange a dialog box of a program, turn on some hidden controls, enable stuff that's supposed to be disabled, etc.
Then there's also resource file editing, you can change dialogs, or add shortcut keys to menu items or other dialog buttons. I've done that a few times to add shortcut keys to a program.
I'm just trying to imagine how ridiculous this must look to a Squeak/Smalltalk developer ;)
This will be popular for game bots. No more patching the code.
I'm waiting for a game 'bot which uses a camera to look at the screen. That would work on consoles, even ones that used HDCP displays. The future of gold farming is a dimly lit room with hundreds of shelves of game consoles, and cameras pointed at small screens, tied to a farm of 1U servers playing the games.
Is this article essentially describing a way to re-open the analog hole that HDMI is looking to close? I mean, if you could show your Blu-Ray movie over HDMI, then capture the pixels and save them to your hard drive, haven't you just opened a new hole for people to record content?
Funtime Candy Wow! - my plan for eventually conquering Japan.
The first thing I would do with this kind of technology is write a test script for my own software. It would be great if the testers could have an automated interface to my stuff.
Actually, he’s not a kid. He’s 45 years old. (Sad, isn’t it?)
And his shitty software looks just as hideous as his writing does.