Finding New Obfuscated Strings in ZeuS 2.x Variants
ZeuS is one of the most notorious info-stealing malwares. Last year, ZeuS source code was leaked but some variants still continue to infect many machines and update their functions.
I wrote an IDAPython script to decode obfuscated strings in ZeuS 2.x variants. The script decodes all strings included in the specified data structure, then compare with strings of leaked version (2.0.8.9). If you find new command strings like this, you should analyze the new function.
Before use, you should configure the following values.
- decode_structure_array: the name of a structure (key, size, ptr to encoded string) array
- func_getA: the function name to decode ASCII strings
- func_getW: the function name to decode Unicode strings
Limitation:
- The script is only effective to Zeus variants using fastcall convention (1st arg=ecx, 2nd arg=edx).
- The script fails to resolve data references to some strings (no xrefs) because the script needs array ID for tracking cross-reference, but in some cases like non-constant values or condition branchings, it's difficult to determine the ID statically. I may improve the algorithm later.








最近のコメント