The Great Zero Challenge
A challenge for data-recovery companies to recover data from a hard drive that has been written with zeros once using the dd command. While the company is very small beans, it would be nice if this was picked up by someone more legit, such as Wired, who could offer more prize money and exposure to the idea.
A challenge to confirm whether or not a professional data recovery firm or any individual(s) or organization(s) can recover data from a hard drive that has been overwritten with zeros once. We used the 32 year-old Unix dd command using /dev/zero as input to overwrite the drive. Three data recover companies were contacted. All three are listed on this page. Two companies declined to review the drive immediately upon hearing the phrase ‘dd’, the third declined to review the drive after we spoke to second level phone support and they asked if the dd command had actually completed (good question). Here is their response… paraphrased from a phone conversation:
“According to our Unix team, there is less than a zero percent chance of data recovery after that dd command. The drive itself has been overwritten in a very fundamental manner. However, if for legal reasons you need to demonstrate that an effort is being made to recover some or all of the data, go ahead and send it in and we’ll certainly make an effort, but again, from what you’ve told us, our engineers are certain that we cannot recover data from the drive. We’ll email you a quote.”
Polyglot
In the context of computing, a polyglot is a computer program or script written in a valid form of multiple programming languages, which performs the same operations or output independently of the programming language used to compile or interpret it.
Generally polyglots are written in a combination of C which allows redefinition of tokens with a preprocessor and a scripting programming language such as Lisp, Perl or sh.
The two most commonly used techniques for constructing a polyglot program are to make liberal use of languages which use different characters for comments and to redefine various tokens as others in different languages. Often good use is made of quirks of syntax. These are demonstrated in this public domain polyglot written in ANSI C, PHP and bash:
#define a /*
#< ?php
echo "\010Hello, world!\n"// 2> /dev/null > /dev/null \ ;
// 2> /dev/null; x=a;
$x=5 // 2> /dev/null \ ;
if (($x))
// 2> /dev/null; then
return 0;
// 2> /dev/null; fi
#define e ?>
#define b */
#include
#define main() int main()
#define printf printf(
#define true )
#define function
function main()
{
printf “Hello, world!\n”true/* 2> /dev/null | grep -v true*/;
return 0;
}
#define c /*
main
#*/