the following string of bytes (in hex): 0,4D,0,8,0,53.  That is how we find them in the binary file.
the following two bytes (in hex): 0,4D This seems like a rather error prone method, so we'll also have to verify the total amount of armor we read from the .dbm file against the armor total listed in the .xml file. One place where (0,4D) can be found is the name/model area when a mechs name/model/etc starts with "M".  Another possiblility is c3 slave eqipment.
    private Vector readArmor(String fileName) throws EntityLoadingException {        /**           In a Drawing Board .dbm file, the bytes that hold the armor           distribution for each location seem to always be followed by           the following string of bytes (in hex): 0,4D,0,8,0,53.  That           is how we find them in the binary file.           Note: The above method for finding the armor is invalid for           clan omni mechs.  In the case of a clan omni mech, only the           following couple of bytes follow the armor (in hex): 0,4D.           This seems like a much more error prone method, but we'll           use it until the bug reports start rolling in :)           One place where (0,4D) can be found is the name/model area           when a mechs name/model/etc starts with "M".  So we won't           start looking for armor until address 100h or so in the           file.           Note2: Both above methods fail for quad mechs (isn't this           fun?).  The following two bytes seem to follow armor in           the case of a quad mech (in hex): 0, 41.        */        try {            File BASE = new File(Settings.mechDirectory);            File armorFile = new File(BASE, fileName.substring(0,fileName.lastIndexOf(".")) + ".dbm");            FileInputStream fStream = new FileInputStream(armorFile);            DataInputStream dStream = new DataInputStream(fStream);            Vector armorValues = new Vector(28);            int a = 0;            int keyByte;            if (chassisConfig.equals("Quad")) {                keyByte = 65; //hex 41            } else {                keyByte = 77; //hex 4d            }            for (int i = 0; i < 27; i++) {                armorValues.addElement(new Integer(dStream.readUnsignedByte()));                a++;            }             while (true) {                 armorValues.addElement(new Integer(dStream.readUnsignedByte()));                 a++;                 armorValues.removeElementAt(0);                                  //if (((Integer)armorValues.elementAt(26)).intValue() == 83 &&                 //    ((Integer)armorValues.elementAt(25)).intValue() == 0 &&                 //    ((Integer)armorValues.elementAt(24)).intValue() == 8 &&                 //    ((Integer)armorValues.elementAt(23)).intValue() == 0 &&                 //    ((Integer)armorValues.elementAt(22)).intValue() == 77 &&                 //    ((Integer)armorValues.elementAt(21)).intValue() == 0) {                 if (((Integer)armorValues.elementAt(22)).intValue() == keyByte &&                     ((Integer)armorValues.elementAt(21)).intValue() == 0 && a > 256) {                     break;                 }             }            return armorValues;        } catch (EOFException ex) {            throw new EntityLoadingException("Could not parse armor from Drawing Board (.dbm) file.  Premature end of file.");        } catch (IOException ex) {            throw new EntityLoadingException("Could not parse armor from Drawing Board (.dbm) file.  Note that both Drawing Board save files (.xml and .dbm) must be present for each Drawing Board mech.");        }    }