def pwnstallerGenerateUtilsH(methodSubs):
 code = '#include "launch.h"\n'
 code += 'void init_launcher(void);\n'
 code += ('int get_thisfile(char *%s, const char *%s);\n' % (helpers.randomString(), helpers.randomString()))
 code += ('int CreateActContext(char *%s, char *%s);\n' % (helpers.randomString(), helpers.randomString()))
 code += 'void ReleaseActContext(void);\n'
 code += ('int get_thisfilew(LPWSTR %s);\n' % helpers.randomString())
 code += ('void get_homepath(char *%s, const char *%s);\n' % (helpers.randomString(), helpers.randomString()))
 code += ('void get_archivefile(char *%s, const char *%s);\n' % (helpers.randomString(), helpers.randomString()))
 code += ('int set_environment(const ARCHIVE_STATUS *%s);\n' % helpers.randomString())
 code += ('int spawn(LPWSTR %s);\n' % helpers.randomString())
 for m in methodSubs:
  code = code.replace(m[0], m[1])
 return code

def pwnstallerGenerateUtilsH ( methodSubs ) : code = '#include "launch.h"\n' code += 'void init_launcher(void);\n' code += ( 'int get_thisfile(char *%s, const char *%s);\n' % ( helpers . randomString ( ) , helpers . randomString ( ) ) ) code += ( 'int CreateActContext(char *%s, char *%s);\n' % ( helpers . randomString ( ) , helpers . randomString ( ) ) ) code += 'void ReleaseActContext(void);\n' code += ( 'int get_thisfilew(LPWSTR %s);\n' % helpers . randomString ( ) ) code += ( 'void get_homepath(char *%s, const char *%s);\n' % ( helpers . randomString ( ) , helpers . randomString ( ) ) ) code += ( 'void get_archivefile(char *%s, const char *%s);\n' % ( helpers . randomString ( ) , helpers . randomString ( ) ) ) code += ( 'int set_environment(const ARCHIVE_STATUS *%s);\n' % helpers . randomString ( ) ) code += ( 'int spawn(LPWSTR %s);\n' % helpers . randomString ( ) ) for m in methodSubs : code = code . replace ( m [ 0 ] , m [ 1 ] ) return code
generate an obfuscated version of pwnstallers utils .