security

Why DARPA Hopes To 'Distill' Old Binaries Into Readable Code – developers.slashdot.org


Researchers at Georgia Tech have developed a prototype pipeline for the Defense Advanced Research Projects Agency (DARPA) that can “distill” binary executables into human-intelligible code so that it can be updated and deployed in “weeks, days, or hours, in some cases.” The work is part of a five-year, $10 million project with the agency. The Register reports: After running an executable through the university’s “distillation” process, software engineers should be able to examine the generated HAR, figure out what the code does, and make changes to add new features, patch bugs, or improve security, and turn the HAR back into executable code, says GT associate professor and project participant Brendan Saltaformaggio. This would be useful for, say, updating complex software that was written by a contractor or internal team, the source code is no longer or never was to hand and neither are its creators, and stuff needs to be fixed up. Reverse engineering the binary and patching in an update by hand can be a little hairy, hence DARPA’s desire for something a bit more solid and automatic. The idea is to use this pipeline to freshen up legacy or outdated software that may have taken years and millions of dollars to develop some time ago.

Saltaformaggio told El Reg his team has the entire process working from start to finish, and with some level of stability, too. “DARPA sets challenges they like to use to test the capabilities of a project,” he told us over the phone. “So far we’ve handled every challenge problem DARPA’s thrown at us, so I’d say it’s working pretty well.” Saltaformaggio said his team’s pipeline disassembles binaries into a graph structure with pseudo-code, and presented in a way that developers can navigate, and replace or add parts in C and C++. Sorry, Java devs and Pythonistas: Saltaformaggio tells us that there’s no reason the system couldn’t work with other programming languages, “but we’re focused on C and C++. Other folks would need to build out support for that.” Along with being able to deconstruct, edit, and reconstruct binaries, the team said its processing pipeline is also able to comb through HARs and remove extraneous routines. The team has also, we’re told, baked in verification steps to ensure changes made to code within hardware ranging from jets and drones to plain-old desktop computers work exactly as expected with no side effects.



READ SOURCE

This website uses cookies. By continuing to use this site, you accept our use of cookies.