This is a powerful dos console extractor that extracts ANY pbo from CWR thru to VBS2 LITE (xbo files)

ExtractPbo uses a heuristic approach to output the best possible results to the best-possible output folder. While you can over-ride the default options the general scenario is that the extactor will

Derapify binarised content (mission.sqm, config.bin. *rvmat ,etc)
Decompress a pbo (ofp only)
Decrypt Elite and VBS2 Lite pbo's
Autodetect the type of pbo / xbo / ebo
Verify valid compression for p3d and paa content (eg)

In the specific case of non- ofp pbo's , the prefix is accounted for by writing a $PBOPREFIX$ file to the output.

A $PBOPREFIX$ file if detected in the pbo itself, is NEVER extracted.

Ordinarily, the name of the output folder, is, the name of the pbo

This destination can be changed in two ways

1) A destination folder can be specified AND/OR
2) An arma pbo can use it's prefix to add to, the output folder


Normally, extractPBO does two important things

1) it checks before over-writing a folder
2) it erases all output folder content in an 'all bets are off' approach before extracting the pbo

using the somewhere option causes these 2 features to be disabled.

if you have crap in the output folder(s). the crap will remain in the output folder(s)
if you specify an 'interesting' destination. you will get, 'interesting' results.


extractpbo [-options...] NameOfPbo[.pbo|.xbo|.ebo] [SomeFolder]

.extensions are not required.

options (optional, case insensitive)

  • L list only
  • LB brief dir style output
  • S silent (default)
  • N Noisy
  • D Derapify file(s) where relevant (default)
  • R Dont Derapify file(s) where relevant
  • Y Don't prompt if overwriting a folder
  • A Extract to prefix folder (arma only). otherwise no effect
  • V1 force extraction of vbs2 lite uk
  • V2 ditto us
    normally, the dll will detect which type it is. In extreme circumstances the heuristic model might fail, and you can force it to one, or the other.
    Note missions (pbo) and addons (xbo) are equivalent.
  • F filelist[,...] name(s) of file(s) to extract
    extracted file(s) will appear in their 'correct' position in the relevent output folder tree
    thus, multiple instances of config.cpp (eg) can be extracted.

    a minor form of wildcard the aster dot sequence can indicate 'all' extensions of that type

===Destination addresses===

extractpo thing

contents to thing\

extractpbo thing anywhere

contents to anywhere\

extractpbo -a thing

contents to 'prefix'\

extactpbo -a thing anywhere

contents to anywhere\'prefix'\

the last option is best used in building a p drive of (eg) the ca\ folders of arma1 and 2

====Other examples====

extractpbo thing

will extract thing.pbo to thing\ folder and derapify any content (such as mission.sqm) that has been binarised

extractpbo -f -r mission.sqm thing.pbo

will extract a single file (and NOT derapify)

extractpbo -L thing

does a dir listing of pbo content along with added info

extractpbo -f *.p3d nameofpbo

will extract ONLY p3d files
warning messages==
"1st/last entry has non-zero real_size, reserved, or BlockLength field"
"reserved field non zero anywhere in entry bodies (except xbo)"
Normally an attempt to prevent extraction and should present no issues. But, users should suspect something wonky in the author's implementation

"no shakey on arma";
early pbo makers did not create the appended 21 byte sha. This causes issues only if attempting to sign the pbo for MP play

"residual bytes in file" // throws an error anyway
something has been either misinterpreted, or the pbo maker is at fault

"arma pbo is missing a prefix (probably a mission)";
missions do not require prefix entries. But, as a matter of de-riguer, they normally have them.


ExtractPbo is sensitive to ArmA/Elite pbo headers. If detected, the prefix is written to $PBOPREFIX$ in the containing folder for reference purposes.

A $PBOPREFIX$ file if detected in the pbo itself, is NEVER extracted.

ExtractPbo.exe Version 1.42, Dll Version 1.72debug
Pbo Type is: Elite
Residual bytes(5)= 00F9F350F8
Type: "prefix" 
Name: "X\MPMissions\missionsTemp\XCamelDogFight.noe" 
Creating prefix file for X\MPMissions\missionsTemp\XCamelDogFight.noe

mission.sqm (1.8 kB) boogiemar, 02/23/2014 03:11