Create an Account
username: password:
 
  MemeStreams Logo

MemeStreams Discussion

search


This page contains all of the posts and discussion on MemeStreams referencing the following web page: Advanced binary analysis of CherryOS: proof of theft. You can find discussions on MemeStreams as you surf the web, even if you aren't a MemeStreams member, using the Threads Bookmarklet.

Advanced binary analysis of CherryOS: proof of theft
by Abaddon at 7:39 pm EST, Mar 30, 2005

just incase anyone didn't believe them already here goes the analysis (I do this sort of thing for a living) first off CherryOS.exe is what we call in the security industry "packed", that means that they have taken a compiled binary and run it through an obfuscator to make it hard to reverse engineer (or at least with hard if all you're doing is strings)...this is common for virus writers, worm writers, 31337 bot net kiddies, and on the legitimate side, game developers do this a lot...its not very common among the commercial (or free) legitimate software market (mostly because it doesn't work and doesn't do any good) so, the easiest way to defeat the packing is simply to let it start up (this one has several annoying checks for debuggers so its easiest to just attach after its loaded)...

the eula for this thing says its a violation to reverse engineer it, but if you do disassemble it you find they never had the rights to license it in the first place, so I don't feel worried to put this here...

if you want to follow along I downloaded a trial copy of CherryOS this morning and I got the latest version of pearpc as of this morning off of sourceforge (not from cvs, just the tarball), I am using windows XP with Interactive Disassembler (IDA)...

ready...here goes:

so the first thing we want to do is find some strings which are common to both, they will not in and of themselves give you the answer you're looking for but they will give us a good starting point, we will then use these to get a context on the code that uses these strings, we will then compare the functions (or in this case class methods) to see if they are similar (or in this case identical)

so, example number one lets look at something in the cpu emulation code (because that is the heart of the code)

direct your editor to cpu/cpu_jitc_x86/jitc.cc line 465 you will see the following small function

extern "C" void FASTCALL jitc_error_program(uint32 a, uint32 b) {
if (a != 0x00020000) { // Filter out trap exceptions, no need to report them
ht_printf("JITC Warning: program exception: %08x %08x\n", a, b);
}
}

first lets see if we can find the format string "JITC Warning: program exception: %08x %08x\n" somewhere in the core memory image of CherryOS

now if you're using IDA attach to an already running CherryOs.exe (not to be confused with mainCherryOs.exe) and regenerate strings or do a direct string search, and search for this exact string...

you will find it in the text segment located at .text:0040E890...now the fact that it exists alone is almost enough to pass summary judgment, but lets keep going so its painfully obvious...

in cherryos.exe at .text:0040E8C0 you will see a reference to the format string from pearpc the disassembled function at this address looks like this (don't worry details will be explained in a bit)

.text:0040E8C0 sub esp, 0Ch
.text:0040E8C3 cmp ... [ Read More (1.6k in body) ]


 
RE: Advanced binary analysis of CherryOS: proof of theft
by Decius at 8:01 pm EST, Mar 30, 2005

abaddon wrote:
] I think I have made it clear beyond a shadow of a doubt that
] CherryOS.exe, shipped as the core of cherryos is
] nothing but a recompiled version of PearPC...it has at most
] minor changes, most to strip attribution, hide the theft, or
] remove debugging output...

I think abaddon just won the award for most 'leet post to MemeStreams evar.


  
RE: Advanced binary analysis of CherryOS: proof of theft
by flynn23 at 2:07 pm EST, Mar 31, 2005

Decius wrote:
] abaddon wrote:
] ] I think I have made it clear beyond a shadow of a doubt that
]
] ] CherryOS.exe, shipped as the core of cherryos is
] ] nothing but a recompiled version of PearPC...it has at most
] ] minor changes, most to strip attribution, hide the theft, or
]
] ] remove debugging output...
]
] I think abaddon just won the award for most 'leet post to
] MemeStreams evar.

uh, hells yeah! Memestreams might just get Slashdotted. Which is irony at it's finest.


 
RE: Advanced binary analysis of CherryOS: proof of theft
by skullaria at 9:54 pm EST, Mar 30, 2005

Thanks for the good analysis and code comparison.


 
RE: Advanced binary analysis of CherryOS: proof of theft
by StankDawg at 10:22 am EST, Mar 31, 2005

abaddon wrote:
] Conclusion:
]
] I think I have made it clear beyond a shadow of a doubt that
] CherryOS.exe, shipped as the core of cherryos is
] nothing but a recompiled version of PearPC...it has at most
] minor changes, most to strip attribution, hide the theft, or
] remove debugging output...

Excellent analysis! I am impressed.


 
RE: Advanced binary analysis of CherryOS: proof of theft
by k at 5:27 pm EST, Mar 31, 2005

abaddon wrote:
] I think I have made it clear beyond a shadow of a doubt that
] CherryOS.exe, shipped as the core of cherryos is
] nothing but a recompiled version of PearPC...it has at most
] minor changes, most to strip attribution, hide the theft, or
] remove debugging output...

I think abaddon just won the award for most 'leet post to MemeStreams evar.

[ For real. I read that and in my head i heard "DOMINO, MOTHERFUCKER!" Nice work. -k]


 
Advanced binary analysis of CherryOS: proof of theft
by Dr. Nanochick at 6:37 pm EST, Mar 31, 2005

From Abaddon:
CherryOS.exe, shipped as the core of cherryos is

nothing but a recompiled version of PearPC...it has at most minor changes, most to strip attribution, hide the theft, or remove debugging output...

[My boyfriend is so freakin smart:) - Nano]


 
RE: Advanced binary analysis of CherryOS: proof of theft
by Rattle at 8:02 pm EST, Mar 31, 2005

Click through for an extremely good breakdown of how CherryOS stole Open Source code for their project.

You can try to steal GPL code, but you will be caught.


There are redundant posts not displayed in this view from the following users: bmitchell, jlang, Neoteric.
 
 
Powered By Industrial Memetics