Normally B::Deobfuscate reads an internal dictionary of easily pronounced
keywords. If you would like to specify a different dictionary follow the -d
parameter with the path to the dictionary file. The path may not have commas
in it and only lines in the dictionary that do not match /\W/ will be used.
The entire dictionary will be loaded into memory at once.
|<B>-DB>B::Deobfuscate::Dict:: module||B::Deobfuscate defaults to using the dictionary at B::Deobfuscate::Dict::PGPHashWords. You can ask it to load any other module under the B::Deobfuscate::Dict:: namespace by using the -D... parameter.|
Supply a different regular expression for deciding which symbols to rename.
The default value is /\A[[:lower:][:digit:]_]+\z/. Your expression must be
delimited by the / characters and you may not use that character within the
expression. That shouldnt be an issue because / isnt valid in a symbol
print two <B>YAMLB> documents to STDOUT instead of the deparsed source code.
The first document is a configuration document suitable for use with the <B>-cB>
parameter. The second document is the deparsed source code. Use this feature
to generate a configuration document for further, iterative reverse
The intention here is that you could write some software to read this YAML document, present the information to the user, accept some alterations to the configuration and re-run the deobfuscator with the new input.
|<B>-cB>FILENAME||Supply a filename to a YAML configuration file. Normally you would generate this file by saving the results of the <B>-yB> parameter to a file. You can then edit the file to provide your own names for symbols and not rely on the random symbol picker in <B>B::DeobfuscateB>. You may create your own YAML configuration file as well.|
The B::Deobfuscation symbol renamer can be controlled with by a configuration file. Use of this feature requires the YAML module be installed.
dictionary: /usr/share/dict/propernames global_regex: (?:) globals: kSDsfDS: Slartibartfast HGFdsfds: Triantaphyllos lexicals: $SdfSd: $No $GsdDd: $Ed $Ksdfs: $Ji
<B>dictionaryB> This is a filename path to the operative dictionary.
<B>global_regexB> This regular expression tests global symbols. Only symbols that match this expression may be renamed. The default value is \A[[:lower:][:digit:]_]\z/. In perl, global symbols are independent of their sigil so the values being tested are bare. Future versions of B::Deobfuscate may add the sigil to the symbol name.
<B>globalsB> This is a hash detailing symbol names as used in the original source and the name used in the deobfuscated source. For example - if the original source has a variable named @z12345 and you wish to rename all occurrances to @URLList then the hash would associate z12345 with URLList. The dictionary picker fills these values in automatically.
globals: catfile: ~ opt_n: ~ opt_t: ~ opt_u: ~ z1234567890: Postprocesser z2345678901: Constructable z3456789012: Photosynthesises z4567890123: Undiscriminate z5678901234: Parenthesises z6789012345: Animadvertion
<B>lexicalsB> Lexicals is a hash exactly like globals except that all the symbol names include the sigil which doesnt currently happen for globals.
lexicals: $k1234567890: $ivs $k2345678901: $ehs $k3456789012: $ans $k4567890123: $ons $k5678901234: $ofs $k6789012345: $gos $k7890123456: $dus $k8901234567: $iis $k9012345678: $ats $k0123456780: $ets
Joshua ben Jore <firstname.lastname@example.org>
B::Deparse <http://www.perlmonks.org/index.pl?node_id=243011> <http://www.perlmonks.org/index.pl?node_id=244604> YAML
|perl v5.20.3||B::DEOBFUSCATE (3)||2007-01-10|