#include <Obfuscator.h>
Definition at line 50 of file Obfuscator.h.
Public Member Functions | |
virtual | ~RenameVariable () |
virtual void | operator() (tree< AstNode > &, MapClasses *classes=0, MapVariables *vars=0, MapFunctions *func=0) |
virtual RenameVariable::~RenameVariable | ( | ) | [inline, virtual] |
void RenameVariable::operator() | ( | tree< AstNode > & | tr, | |
MapClasses * | classes = 0 , |
|||
MapVariables * | vars = 0 , |
|||
MapFunctions * | func = 0 | |||
) | [virtual] |
Implements Obfuscator.
Definition at line 251 of file Obfuscator.cpp.
References tree< T, tree_node_allocator >::begin(), tree< T, tree_node_allocator >::end(), and generateName().
00251 { 00252 00253 // for every names in the class, generate a new *unique* name 00254 map<string, string> varNames; 00255 for (MapVariables::iterator iter = vars->begin(); iter != vars->end(); ++iter) 00256 { 00257 string newName = "$" + generateName(); 00258 varNames.insert(make_pair(iter->first, newName)); 00259 } 00260 map<string, string>::iterator cter; 00261 for (tree<AstNode>::iterator iter=tr.begin(); iter!=tr.end(); ++iter) 00262 { 00263 if (iter->getType() == "text" && ((cter=varNames.find(iter->getValue())) != varNames.end())) { 00264 // rename the currenet node 00265 iter->setValue(cter->second); 00266 } 00267 } 00268 }