📚 OpenRCE is preserved as a read-only archive. Launched at RECon Montreal in 2005. Registration and posting are disabled.








Flag: Tornado! Hurricane!

 Forums >>  Brainstorms - General  >>  Identifying string compression

Topic created on: January 11, 2011 16:39 CST by logik .

I have an example binary that generates some compressed text.  Fortunately it dumps the original text to disk first, so I do have copies of both.

The header for the compressed text is in the following format:

LL MM 40 00 00

LL and MM are the LSB and MSB giving the total length of compressed data.  0x40 is the third byte and is fixed.  The 00 00 might be the first "command".

And then portions of text start.  Other common "tokens" in the output which are obviously related to compression and not plaintext include:

03 xx  
04 xx   - 2 byte patterns, presumably 1st byte is a command and 2nd byte is some sort of length or offset
08 xx
09 xx

The data is compressed in 16KiB blocks.  Plaintext is included in the output and can be spotted fairly easily, from around 15 characters all the way down to single characters.

Can anybody identify if this is a common compression algorithm which has been reused?  I'd like to be able to decompress the data and get back some original text.

  NirIzr     July 23, 2012 17:17.26 CDT
it sounds like a dictionary compression algorithm, so this means your best bet is probably LZMA, LZ, LZO etc. since you seems to be looking for a blackbox method grub some of these and give your known input a go. googling for other dictionary compression algorithms might also be useful but you better start by reading about it if you're unfamiliar.
unfortunately I couldn't recognize the output by only the data you've given, sorry if I wasn't helpful...

btw, what about the basics? have you googled strings? why not reverse the algorithm?

Note: Registration is required to post to the forums.

There are 31,328 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06
Question about memor...
Dec/12


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit