shadowbrokers-exploits/windows/Resources/Dsz/Scripts/Include/_StringIncludes.dsi

517 lines
14 KiB
Text
Raw Normal View History

@include "_Math.dsi";
@include "_Arrays.dsi";
#----------------------------------------------------
# _ParseStrings
# Returns an array of strings from an REG_MULTI_SZ
#----------------------------------------------------
sub _ParseStrings( IN string $blob, OUT string $values ) {
int $index = 0;
int $interest = 4;
int $nulls = 0;
int $empties = 0;
$values[0] = "";
while( defined($blob) && strlen( $blob ) > 0 ) {
string $first;
_SubString( $blob, 0, $interest, $first );
_SubString( $blob, $interest, $blob );
string $number, $null;
_SubString( $first, 0, 2, $number );
_SubString( $first, 2, $null );
string $suffix;
if( $null == "00" ) {
# we are good
if( $number == "00" ) {
if( $nulls == 0 ) {
$empties++;
}
} else {
$nulls = 0;
_HexToChar( $number, $suffix );
}
} else {
echo "Bad";
# not in our code page
}
if( defined( $suffix ) ) {
while( $empties > 0 ) {
$empties--;
$index++;
$values[$index] = "";
}
StrCat($values[$index], $suffix);
}
}
return true;
}
#----------------------------------------------------
sub _SubString( IN string $str, IN int $start, OUT string $substring ) {
if( !defined( $str ) ) {
return false;
}
return _SubString( $str, $start, strlen( $str ), $substring );
}
#----------------------------------------------------
sub _SubString( IN string $str, IN int $start, IN int $stop, OUT string $substring ) {
if( $start >= $stop || !defined( $str ) ) {
return false;
}
if( $start >= strlen( $str ) ) {
$substring = "";
return true;
}
int $diff;
_Subtract( $stop, $start, $diff);
return RegexMatch( ".{$start}(.{$diff}).*", $str, $substring );
}
#----------------------------------------------------
sub _StringToArray(IN string $str, OUT string $arrayOfString) {
if (!defined($str)) {
return false;
}
for (int $j = 0; $j < sizeof($str); $j++) {
string $line = $str[$j];
if (!defined($line)) {
continue;
}
string $temp;
while (RegexMatch("([^\\n]*)\\n(.*)", $line, $temp)) {
if (!defined($temp)) {
return false;
}
_AppendString($arrayOfString, $temp[0]);
$line = $temp[1];
}
}
return true;
}
#----------------------------------------------------
sub _HexToInt( IN string $hex, OUT int $value ) {
$value = 0;
while( defined( $hex ) && strlen( $hex ) > 0 ) {
string $first;
int $temp;
_SubString( $hex, 0, 1, $first );
_SubString( $hex, 1, $hex );
if( !defined( $first ) ) {
return false;
}
_Base16ToBase10( $first, $temp );
if( !defined( $temp ) ) {
return false;
}
$value *= 16;
$value += $temp;
}
return true;
}
#----------------------------------------------------
sub _Base16ToBase10( IN string $hex, OUT int $base10 ) {
$base10 = 0;
if( $hex == "a" || $hex == "A" ) {
$base10 = 10;
} else if( $hex == "b" || $hex == "B" ) {
$base10 = 11;
} else if( $hex == "c" || $hex == "C" ) {
$base10 = 12;
} else if( $hex == "d" || $hex == "D" ) {
$base10 = 13;
} else if( $hex == "e" || $hex == "E" ) {
$base10 = 14;
} else if( $hex == "f" || $hex == "F" ) {
$base10 = 15;
} else {
$base10 = <int> $hex;
}
return true;
}
#----------------------------------------------------
sub _HexToChar( IN string $hex, OUT string $value ) {
int $localInt;
if( !_HexToInt( $hex, $localInt ) || !defined( $localInt ) ) {
return false;
}
/*
if( $localInt == 0 ) {
} else if ( $localInt == 1 ) {
} else if ( $localInt == 2 ) {
} else if ( $localInt == 3 ) {
} else if ( $localInt == 4 ) {
} else if ( $localInt == 5 ) {
} else if ( $localInt == 6 ) {
} else if ( $localInt == 7 ) {
} else if ( $localInt == 8 ) {
} else if ( $localInt == 9 ) {
} else if ( $localInt == 10 ) {
} else if ( $localInt == 11 ) {
} else if ( $localInt == 12 ) {
} else if ( $localInt == 13 ) {
} else if ( $localInt == 14 ) {
} else if ( $localInt == 15 ) {
} else if ( $localInt == 16 ) {
} else if ( $localInt == 17 ) {
} else if ( $localInt == 18 ) {
} else if ( $localInt == 19 ) {
} else if ( $localInt == 20 ) {
} else if ( $localInt == 21 ) {
} else if ( $localInt == 22 ) {
} else if ( $localInt == 23 ) {
} else if ( $localInt == 24 ) {
} else if ( $localInt == 25 ) {
} else if ( $localInt == 26 ) {
} else if ( $localInt == 27 ) {
} else if ( $localInt == 28 ) {
} else if ( $localInt == 29 ) {
} else if ( $localInt == 30 ) {
} else if ( $localInt == 31 ) {
} else */
if ( $localInt == 32 ) {
$value = " ";
} else if ( $localInt == 33 ) {
$value = "!";
} else if ( $localInt == 34 ) {
$value = "\"";
} else if ( $localInt == 35 ) {
$value = "#";
} else if ( $localInt == 36 ) {
$value = "\$";
} else if ( $localInt == 37 ) {
$value = "\%";
} else if ( $localInt == 38 ) {
$value = "&";
} else if ( $localInt == 39 ) {
$value = "'";
} else if ( $localInt == 40 ) {
$value = "(";
} else if ( $localInt == 41 ) {
$value = ")";
} else if ( $localInt == 42 ) {
$value = "*";
} else if ( $localInt == 43 ) {
$value = "+";
} else if ( $localInt == 44 ) {
$value = ",";
} else if ( $localInt == 45 ) {
$value = "-";
} else if ( $localInt == 46 ) {
$value = ".";
} else if ( $localInt == 47 ) {
$value = "/";
} else if ( $localInt == 48 ) {
$value = "0";
} else if ( $localInt == 49 ) {
$value = "1";
} else if ( $localInt == 50 ) {
$value = "2";
} else if ( $localInt == 51 ) {
$value = "3";
} else if ( $localInt == 52 ) {
$value = "4";
} else if ( $localInt == 53 ) {
$value = "5";
} else if ( $localInt == 54 ) {
$value = "6";
} else if ( $localInt == 55 ) {
$value = "7";
} else if ( $localInt == 56 ) {
$value = "8";
} else if ( $localInt == 57 ) {
$value = "9";
} else if ( $localInt == 58 ) {
$value = ":";
} else if ( $localInt == 59 ) {
$value = ";";
} else if ( $localInt == 60 ) {
$value = "<";
} else if ( $localInt == 61 ) {
$value = "=";
} else if ( $localInt == 62 ) {
$value = ">";
} else if ( $localInt == 63 ) {
$value = "?";
} else if ( $localInt == 64 ) {
$value = "\@";
} else if ( $localInt == 65 ) {
$value = "A";
} else if ( $localInt == 66 ) {
$value = "B";
} else if ( $localInt == 67 ) {
$value = "C";
} else if ( $localInt == 68 ) {
$value = "D";
} else if ( $localInt == 69 ) {
$value = "E";
} else if ( $localInt == 70 ) {
$value = "F";
} else if ( $localInt == 71 ) {
$value = "G";
} else if ( $localInt == 72 ) {
$value = "H";
} else if ( $localInt == 73 ) {
$value = "I";
} else if ( $localInt == 74 ) {
$value = "J";
} else if ( $localInt == 75 ) {
$value = "K";
} else if ( $localInt == 76 ) {
$value = "L";
} else if ( $localInt == 77 ) {
$value = "M";
} else if ( $localInt == 78 ) {
$value = "N";
} else if ( $localInt == 79 ) {
$value = "O";
} else if ( $localInt == 80 ) {
$value = "P";
} else if ( $localInt == 81 ) {
$value = "Q";
} else if ( $localInt == 82 ) {
$value = "R";
} else if ( $localInt == 83 ) {
$value = "S";
} else if ( $localInt == 84 ) {
$value = "T";
} else if ( $localInt == 85 ) {
$value = "U";
} else if ( $localInt == 86 ) {
$value = "V";
} else if ( $localInt == 87 ) {
$value = "W";
} else if ( $localInt == 88 ) {
$value = "X";
} else if ( $localInt == 89 ) {
$value = "Y";
} else if ( $localInt == 90 ) {
$value = "Z";
} else if ( $localInt == 91 ) {
$value = "[";
} else if ( $localInt == 92 ) {
$value = "\\";
} else if ( $localInt == 93 ) {
$value = "]";
} else if ( $localInt == 94 ) {
$value = "^";
} else if ( $localInt == 95 ) {
$value = "_";
} else if ( $localInt == 96 ) {
$value = "`";
} else if ( $localInt == 97 ) {
$value = "a";
} else if ( $localInt == 98 ) {
$value = "b";
} else if ( $localInt == 99 ) {
$value = "c";
} else if ( $localInt == 100 ) {
$value = "d";
} else if ( $localInt == 101 ) {
$value = "e";
} else if ( $localInt == 102 ) {
$value = "f";
} else if ( $localInt == 103 ) {
$value = "g";
} else if ( $localInt == 104 ) {
$value = "h";
} else if ( $localInt == 105 ) {
$value = "i";
} else if ( $localInt == 106 ) {
$value = "j";
} else if ( $localInt == 107 ) {
$value = "k";
} else if ( $localInt == 108 ) {
$value = "l";
} else if ( $localInt == 109 ) {
$value = "m";
} else if ( $localInt == 110 ) {
$value = "n";
} else if ( $localInt == 111 ) {
$value = "o";
} else if ( $localInt == 112 ) {
$value = "p";
} else if ( $localInt == 113 ) {
$value = "q";
} else if ( $localInt == 114 ) {
$value = "r";
} else if ( $localInt == 115 ) {
$value = "s";
} else if ( $localInt == 116 ) {
$value = "t";
} else if ( $localInt == 117 ) {
$value = "u";
} else if ( $localInt == 118 ) {
$value = "v";
} else if ( $localInt == 119 ) {
$value = "w";
} else if ( $localInt == 120 ) {
$value = "x";
} else if ( $localInt == 121 ) {
$value = "y";
} else if ( $localInt == 122 ) {
$value = "z";
} else if ( $localInt == 123 ) {
$value = "{";
} else if ( $localInt == 124 ) {
$value = "|";
} else if ( $localInt == 125 ) {
$value = "}";
} else if ( $localInt == 126 ) {
$value = "~";
# } else if ( $localInt == 127 ) {
} else {
$value = "?";
}
/*
} else if ( $localInt == 128 ) {
} else if ( $localInt == 129 ) {
} else if ( $localInt == 130 ) {
} else if ( $localInt == 131 ) {
} else if ( $localInt == 132 ) {
} else if ( $localInt == 133 ) {
} else if ( $localInt == 134 ) {
} else if ( $localInt == 135 ) {
} else if ( $localInt == 136 ) {
} else if ( $localInt == 137 ) {
} else if ( $localInt == 138 ) {
} else if ( $localInt == 139 ) {
} else if ( $localInt == 140 ) {
} else if ( $localInt == 141 ) {
} else if ( $localInt == 142 ) {
} else if ( $localInt == 143 ) {
} else if ( $localInt == 144 ) {
} else if ( $localInt == 145 ) {
} else if ( $localInt == 146 ) {
} else if ( $localInt == 147 ) {
} else if ( $localInt == 148 ) {
} else if ( $localInt == 149 ) {
} else if ( $localInt == 150 ) {
} else if ( $localInt == 151 ) {
} else if ( $localInt == 150 ) {
} else if ( $localInt == 152 ) {
} else if ( $localInt == 153 ) {
} else if ( $localInt == 154 ) {
} else if ( $localInt == 155 ) {
} else if ( $localInt == 156 ) {
} else if ( $localInt == 157 ) {
} else if ( $localInt == 158 ) {
} else if ( $localInt == 159 ) {
} else if ( $localInt == 160 ) {
} else if ( $localInt == 161 ) {
} else if ( $localInt == 162 ) {
} else if ( $localInt == 163 ) {
} else if ( $localInt == 164 ) {
} else if ( $localInt == 165 ) {
} else if ( $localInt == 166 ) {
} else if ( $localInt == 167 ) {
} else if ( $localInt == 168 ) {
} else if ( $localInt == 169 ) {
} else if ( $localInt == 170 ) {
} else if ( $localInt == 171 ) {
} else if ( $localInt == 172 ) {
} else if ( $localInt == 173 ) {
} else if ( $localInt == 174 ) {
} else if ( $localInt == 175 ) {
} else if ( $localInt == 176 ) {
} else if ( $localInt == 177 ) {
} else if ( $localInt == 178 ) {
} else if ( $localInt == 179 ) {
} else if ( $localInt == 180 ) {
} else if ( $localInt == 181 ) {
} else if ( $localInt == 182 ) {
} else if ( $localInt == 183 ) {
} else if ( $localInt == 184 ) {
} else if ( $localInt == 185 ) {
} else if ( $localInt == 186 ) {
} else if ( $localInt == 187 ) {
} else if ( $localInt == 188 ) {
} else if ( $localInt == 189 ) {
} else if ( $localInt == 190 ) {
} else if ( $localInt == 191 ) {
} else if ( $localInt == 192 ) {
} else if ( $localInt == 193 ) {
} else if ( $localInt == 194 ) {
} else if ( $localInt == 195 ) {
} else if ( $localInt == 196 ) {
} else if ( $localInt == 197 ) {
} else if ( $localInt == 198 ) {
} else if ( $localInt == 199 ) {
} else if ( $localInt == 200 ) {
} else if ( $localInt == 201 ) {
} else if ( $localInt == 202 ) {
} else if ( $localInt == 203 ) {
} else if ( $localInt == 204 ) {
} else if ( $localInt == 205 ) {
} else if ( $localInt == 206 ) {
} else if ( $localInt == 207 ) {
} else if ( $localInt == 208 ) {
} else if ( $localInt == 209 ) {
} else if ( $localInt == 210 ) {
} else if ( $localInt == 211 ) {
} else if ( $localInt == 212 ) {
} else if ( $localInt == 213 ) {
} else if ( $localInt == 214 ) {
} else if ( $localInt == 215 ) {
} else if ( $localInt == 216 ) {
} else if ( $localInt == 217 ) {
} else if ( $localInt == 218 ) {
} else if ( $localInt == 219 ) {
} else if ( $localInt == 220 ) {
} else if ( $localInt == 221 ) {
} else if ( $localInt == 222 ) {
} else if ( $localInt == 223 ) {
} else if ( $localInt == 224 ) {
} else if ( $localInt == 225 ) {
} else if ( $localInt == 226 ) {
} else if ( $localInt == 227 ) {
} else if ( $localInt == 228 ) {
} else if ( $localInt == 229 ) {
} else if ( $localInt == 230 ) {
} else if ( $localInt == 231 ) {
} else if ( $localInt == 232 ) {
} else if ( $localInt == 233 ) {
} else if ( $localInt == 234 ) {
} else if ( $localInt == 235 ) {
} else if ( $localInt == 236 ) {
} else if ( $localInt == 237 ) {
} else if ( $localInt == 238 ) {
} else if ( $localInt == 239 ) {
} else if ( $localInt == 240 ) {
} else if ( $localInt == 241 ) {
} else if ( $localInt == 242 ) {
} else if ( $localInt == 243 ) {
} else if ( $localInt == 244 ) {
} else if ( $localInt == 245 ) {
} else if ( $localInt == 246 ) {
} else if ( $localInt == 247 ) {
} else if ( $localInt == 248 ) {
} else if ( $localInt == 249 ) {
} else if ( $localInt == 250 ) {
} else if ( $localInt == 251 ) {
} else if ( $localInt == 250 ) {
} else if ( $localInt == 252 ) {
} else if ( $localInt == 253 ) {
} else if ( $localInt == 254 ) {
} else if ( $localInt == 255 ) {
} else {
}
*/
return true;
}