Python code obfuscator
The BitBoost ‘bobs’ obfuscator renames most of the variables, functions, classes, etc. defined by your code. How can you make this renaming more annoying?
Two methods you can combine are:
Below is a collection of settings to help achieve this. You can use or adapt them for placement in your own project’s .poi file. You might want to change the names in _example_confusion_names to be more relevant to your own project, although you will want to keep to the restrictions laid out in the comments.
You can adjust the length of the generated names by changing the countstart_renaming setting of your poi file.
When adjusting countstart_renaming in the example settings below, you need to also understand the digits_renaming setting of your .poi file.
# # Example code; Copyright 2018 by Chris Niswander. # # The settings below tell the BitBoost 'bobs' obfuscator # to generate renames by concatenating # words from the _example_confusion_names string # with and without underscore '_' characters. # # Be careful to choose the names in _example_confusion_names # such that they cannot be *concatenated* with or without '_' # to make each other, # or to make other names used in your code, # or to make the same result from two different concatenations. # # For example, *don't* use the string '''aaa bbb aaaaaa''', # because 'aaa' and 'aaa' can be combined to make 'aaaaaa' # which is another of the names in that string. # Similarly, *don't* use '''aaa bb bbb aa', # because you can concatenate # 'aaa'+'aa' --> 'aaaaa' # to get the same result as # 'aa'+'aaa' --> 'aaaaa'. # It's ok if these are not all really sacred names; # but sacred names used in your code # can be a good source of ideas for words to concatenate # to generate confusing renames. # (If I get motivated requests from enough users, # I could then write code to automate # extraction and choosing of these words, # although any such automation must be # must be cautiously sophisticated to avoid causing errors.) _example_confusion_names = set(''' os sys applekit xuid stringkit sha256 encode decode recode uiud sashlib sha255 sho255 sho256 bexdigest texdigest answer secret command key swander license authorization auhtorization authorisation authorize autherise autherize authourize modem '''.split()) namebases = list(set( [x+'_' for x in _example_confusion_names] )) digits_renaming = list(set( [x for x in _example_confusion_names] + [x+'_' for x in _example_confusion_names] )) countstart_renaming = len(namebases) + 2
See the python obfuscator manual, or contact us.
© Copyright 2018 by BitBoost
BitBoost, BitBoost Systems, and 'bobs' are trademarks and/or service marks of BitBoost