Example #1
0
def signPackage(softid, type, subfolder):
    for item in type.split(';'):
        if item.lower() == 'baidusd_nobind' or item.lower() == 'qqmgr_nobind':
            fileop.main(4, ['fileop.py', 'kvsign',  conf.aladdin_installer_folder + 'unbind\\' + softid + '\\', '*.exe'])
            sign.main(3, ['sign.py', 'bdkv', conf.aladdin_installer_folder + 'unbind\\' + softid + '\\'])
        elif item.lower() == 'baidusd' or item.lower() == 'qqmgr':
            fileop.main(4, ['fileop.py', 'kvsign',  conf.aladdin_installer_folder + subfolder + '\\' + softid + '\\', '*.exe'])
            sign.main(3, ['sign.py', 'bdkv', conf.aladdin_installer_folder + subfolder + '\\' + softid + '\\'])
def generate(nf, nDll, iStart):
    #clean dll and pdb folder
    command = 'del /Q ' + output_folder + 'dll\\*.dll'
    os.system(command)
    command = 'del /Q ' + output_folder + 'pdb\\*.pdb'
    os.system(command)

    #update svn
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'basic'
    os.system(command)
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'client_proj'
    os.system(command)
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'stable_proj'
    os.system(command)

    for iCount in range(iStart,nDll + iStart):
        #write confusion.h
        fp = open(confusion_folder + 'confusion.h', 'w')
        fp.writelines('#pragma once\n')
        fp.writelines('#define _CODE_CONFUSION 1\n')
        for item in range(0,nf):
            n_cir = random.randint(32,64)
            n_api = random.randint(0,4)
            n_sb = random.randint(8,128) / 4 * 4
            n_hb = random.randint(64,512) / 4 * 4
            r_char = random.randint(0,255)

            fp.writelines('int CodeConfusion%d();\n' % item)

            fp.writelines('#define CallCodeConfusion%d \\\n' % item)
            fp.writelines('int _confusion_code_var_s = 0; \\\n')
            fp.writelines('for(int i=0;i<%d;++i){ \\\n' % n_cir)
            fp.writelines('_confusion_code_var_s += i;} \\\n')
            fp.writelines('_confusion_code_var_s += int(%s()); \\\n' % random_api[n_api])
            fp.writelines('char _confusion_code_var_szBuf[%d] = {0}; \\\n' % n_sb)
            fp.writelines('memset(_confusion_code_var_szBuf,%d,%d); \\\n' % (r_char,n_sb))
            fp.writelines('short *_confusion_code_var_spBuf = new short[%d]; \\\n' % n_hb)
            fp.writelines('memset(_confusion_code_var_spBuf,%d,%d * 2); \\\n' % (r_char,n_hb))
            fp.writelines('delete [] _confusion_code_var_spBuf;\n')
        fp.close()

        #write confusion.cpp
        fp = open(confusion_folder + 'confusion.cpp','w')
        fp.writelines('#include "stdafx.h"\n')
        fp.writelines('#include "confusion.h"\n')
        fp.writelines('#include <windows.h>\n')
        for item in range(0,nf):
            n_cir = random.randint(32,64)
            n_api = random.randint(0,4)
            n_sb = random.randint(8,128) / 4 * 4
            n_hb = random.randint(64,512) / 4 * 4
            r_char = random.randint(0,255)

            fp.writelines('int CodeConfusion%d(){\n' % item)
            fp.writelines('int _confusion_code_var_s = 0;\n')
            fp.writelines('for(int i=0;i<%d;++i){\n' % n_cir)
            fp.writelines('_confusion_code_var_s += i;}\n')
            fp.writelines('_confusion_code_var_s += int(%s());\n' % random_api[n_api])
            fp.writelines('char _confusion_code_var_szBuf[%d] = {0};\n' % n_sb)
            fp.writelines('memset(_confusion_code_var_szBuf,%d,%d);\n' % (r_char,n_sb))
            fp.writelines('short *_confusion_code_var_spBuf = new short[%d];\n' % n_hb)
            fp.writelines('memset(_confusion_code_var_spBuf,%d,%d * 2);\n' % (r_char,n_hb))
            fp.writelines('delete [] _confusion_code_var_spBuf;\n')
            fp.writelines('return _confusion_code_var_s;}\n')
        fp.close()

        #vcbuild
        command = 'vcbuild.exe ' + sln_folder + 'KVNetInstallerHelper_RD.sln "Release|Win32"'
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'KVNetInstallHelpler.dll ' + output_folder + 'dll\\KVNetInstallHelper_%d.dll' % iCount
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'KVNetInstallHelpler.pdb ' + output_folder + 'pdb\\KVNetInstallHelper_%d.pdb' % iCount
        os.system(command)

    #sign baidu
    sign.main(3, ['sign.py', 'bdkv', output_folder + 'dll\\'])
    
    #copy to archive
    command = 'copy /Y ' + output_folder + 'dll\\*.dll \\\\10.52.174.35\\public\\aladdin\\DailyBuild\\kvnetinstallhelper_bdmcombine\\'
    os.system(command)
Example #3
0
def generate(nf, nDll, iStart):
    #clean dll and pdb folder
    command = 'del /Q ' + output_folder + 'dll\\*.dll'
    os.system(command)
    command = 'del /Q ' + output_folder + 'pdb\\*.pdb'
    os.system(command)

    #update svn
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'basic'
    os.system(command)
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'avclient_proj'
    os.system(command)
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'stable_proj'
    os.system(command)

    for iCount in range(iStart, nDll + iStart):
        #write confusion.h
        fp = open(confusion_folder + 'confusion.h', 'w')
        fp.writelines('#pragma once\n')
        fp.writelines('#define _CODE_CONFUSION 1\n')
        for item in range(0, nf):
            n_cir = random.randint(32, 64)
            n_api = random.randint(0, 4)
            n_sb = random.randint(8, 128) / 4 * 4
            n_hb = random.randint(64, 512) / 4 * 4
            r_char = random.randint(0, 255)

            fp.writelines('int CodeConfusion%d();\n' % item)

            fp.writelines('#define CallCodeConfusion%d \\\n' % item)
            fp.writelines('int _confusion_code_var_s = 0; \\\n')
            fp.writelines('for(int i=0;i<%d;++i){ \\\n' % n_cir)
            fp.writelines('_confusion_code_var_s += i;} \\\n')
            fp.writelines('_confusion_code_var_s += int(%s()); \\\n' %
                          random_api[n_api])
            fp.writelines('char _confusion_code_var_szBuf[%d] = {0}; \\\n' %
                          n_sb)
            fp.writelines('memset(_confusion_code_var_szBuf,%d,%d); \\\n' %
                          (r_char, n_sb))
            fp.writelines(
                'short *_confusion_code_var_spBuf = new short[%d]; \\\n' %
                n_hb)
            fp.writelines('memset(_confusion_code_var_spBuf,%d,%d * 2); \\\n' %
                          (r_char, n_hb))
            fp.writelines('delete [] _confusion_code_var_spBuf;\n')
        fp.close()

        #write confusion.cpp
        fp = open(confusion_folder + 'confusion.cpp', 'w')
        fp.writelines('#include "stdafx.h"\n')
        fp.writelines('#include "confusion.h"\n')
        fp.writelines('#include <windows.h>\n')
        for item in range(0, nf):
            n_cir = random.randint(32, 64)
            n_api = random.randint(0, 4)
            n_sb = random.randint(8, 128) / 4 * 4
            n_hb = random.randint(64, 512) / 4 * 4
            r_char = random.randint(0, 255)

            fp.writelines('int CodeConfusion%d(){\n' % item)
            fp.writelines('int _confusion_code_var_s = 0;\n')
            fp.writelines('for(int i=0;i<%d;++i){\n' % n_cir)
            fp.writelines('_confusion_code_var_s += i;}\n')
            fp.writelines('_confusion_code_var_s += int(%s());\n' %
                          random_api[n_api])
            fp.writelines('char _confusion_code_var_szBuf[%d] = {0};\n' % n_sb)
            fp.writelines('memset(_confusion_code_var_szBuf,%d,%d);\n' %
                          (r_char, n_sb))
            fp.writelines(
                'short *_confusion_code_var_spBuf = new short[%d];\n' % n_hb)
            fp.writelines('memset(_confusion_code_var_spBuf,%d,%d * 2);\n' %
                          (r_char, n_hb))
            fp.writelines('delete [] _confusion_code_var_spBuf;\n')
            fp.writelines('return _confusion_code_var_s;}\n')
        fp.close()

        #vcbuild
        command = 'vcbuild.exe ' + sln_folder + 'KVNetInstallerHelper_RD.sln "KVRelease|Win32"'
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'KVNetInstallHelpler.dll ' + output_folder + 'dll\\KVNetInstallHelper_%d.dll' % iCount
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'KVNetInstallHelpler.pdb ' + output_folder + 'pdb\\KVNetInstallHelper_%d.pdb' % iCount
        os.system(command)

    #sign baidu
    sign.main(3, ['sign.py', 'bdkv', output_folder + 'dll\\'])

    #copy to archive
    command = 'copy /Y ' + output_folder + 'dll\\*.dll \\\\10.52.174.35\\public\\aladdin\\DailyBuild\\kvnetinstallhelper_pacific\\'
    os.system(command)
def generate(nf, nDll, iStart):
    #clean dll and pdb folder
    command = 'del /Q ' + output_folder + 'dll\\*.dll'
    os.system(command)
    command = 'del /Q ' + output_folder + 'pdb\\*.pdb'
    os.system(command)

    #update svn
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'basic'
    os.system(command)
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'avclient_proj'
    os.system(command)
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'stable_proj'
    os.system(command)

    for iCount in range(iStart, nDll + iStart):
        #write confusion.h
        fp = open(confusion_folder + 'confusion.h', 'w')
        xor_token = "0x%x%x%x%x%x%x%x%x" % (random.randint(
            0, 15), random.randint(0, 15), random.randint(
                0, 15), random.randint(0, 15), random.randint(
                    0, 15), random.randint(0, 15), random.randint(
                        0, 15), random.randint(0, 15))
        fp.writelines('#pragma once\n')
        fp.writelines('#define _CODE_CONFUSION 1\n')
        fp.writelines('#define _DLL_CONFUSION_KEY %s\n' % xor_token)
        for item in range(0, nf):
            n_cir = random.randint(32, 64)
            n_api = random.randint(0, 4)
            n_sb = random.randint(8, 128) / 4 * 4
            n_hb = random.randint(64, 512) / 4 * 4
            r_char = random.randint(0, 255)

            fp.writelines('int CodeConfusion%d();\n' % item)

            fp.writelines('#define CallCodeConfusion%d \\\n' % item)
            fp.writelines('int _confusion_code_var_s = 0; \\\n')
            fp.writelines('for(int i=0;i<%d;++i){ \\\n' % n_cir)
            fp.writelines('_confusion_code_var_s += i;} \\\n')
            fp.writelines('_confusion_code_var_s += int(%s()); \\\n' %
                          random_api[n_api])
            fp.writelines('char _confusion_code_var_szBuf[%d] = {0}; \\\n' %
                          n_sb)
            fp.writelines('memset(_confusion_code_var_szBuf,%d,%d); \\\n' %
                          (r_char, n_sb))
            fp.writelines(
                'short *_confusion_code_var_spBuf = new short[%d]; \\\n' %
                n_hb)
            fp.writelines('memset(_confusion_code_var_spBuf,%d,%d * 2); \\\n' %
                          (r_char, n_hb))
            fp.writelines('delete [] _confusion_code_var_spBuf;\n')
        fp.close()

        #19个里面随机取7个
        r_list = []
        while True:
            r_item = random.randint(0, 65535) % 31 + 1
            if r_item not in r_list:
                r_list.append(r_item)
            if len(r_list) == 7:
                break

        print 'confusion selection list : '
        print r_list

        #confusion OnlineWnd.cpp
        file_r = open(confusion_folder + 'OnlineWnd.cpp')
        lines = file_r.readlines()
        file_r.close()
        for index in range(len(lines)):
            iStart = lines[index].find('CodeConfusion')
            if iStart == -1:
                continue
            else:
                iStart = iStart + 12
            iNum = 0
            if lines[index][iStart + 1] == '(':
                iNum = int(lines[index][iStart + 1:iStart + 1])
            elif lines[index][iStart + 2] == '(':
                iNum = int(lines[index][iStart + 1:iStart + 2])
            elif lines[index][iStart + 3] == '(':
                iNum = int(lines[index][iStart + 1:iStart + 3])

            token = 'CodeConfusion%d' % iNum
            rtoken = 'CodeConfusion%d' % random.randint(0, 255)
            if lines[index].find('CodeConfusion') != -1:
                lines[index] = lines[index].replace(token, rtoken)
        file_w = open(confusion_folder + 'OnlineWnd1.cpp', "w")
        file_w.writelines(lines)
        file_w.close()

        #write confusion.cpp
        fp = open(confusion_folder + 'confusion.cpp', 'w')
        fp.writelines('#include "stdafx.h"\n')
        fp.writelines('#include "confusion.h"\n')
        fp.writelines('#include <windows.h>\n')
        for item in range(0, nf):
            n_cir = random.randint(32, 256)
            m_lp1 = random.randint(0, 4)
            m_lp2 = random.randint(0, 8)
            m_lp3 = random.randint(0, 16)
            m_lp4 = random.randint(0, 32)
            m_lp5 = random.randint(0, 64)

            fp.writelines('int CodeConfusion%d(){\n' % item)
            fp.writelines('int _confusion_sum = 0;')

            #后面从这7个里面随机
            for item in range(0, m_lp1):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[
                    (random.randint(0, 65535) % 7)]
                fp.writelines(
                    comm.getMsg(confusion_file).replace(
                        '$a', str(random.randint(0, 64))))
            for item in range(0, m_lp2):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[
                    (random.randint(0, 65535) % 7)]
                fp.writelines(
                    comm.getMsg(confusion_file).replace(
                        '$a', str(random.randint(0, 32))))
            for item in range(0, m_lp3):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[
                    (random.randint(0, 65535) % 7)]
                fp.writelines(
                    comm.getMsg(confusion_file).replace(
                        '$a', str(random.randint(0, 16))))
            for item in range(0, m_lp4):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[
                    (random.randint(0, 65535) % 7)]
                fp.writelines(
                    comm.getMsg(confusion_file).replace(
                        '$a', str(random.randint(0, 8))))
            for item in range(0, m_lp5):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[
                    (random.randint(0, 65535) % 7)]
                fp.writelines(
                    comm.getMsg(confusion_file).replace(
                        '$a', str(random.randint(0, 4))))
            fp.writelines('return _confusion_sum;}\n')
        fp.close()

        #vcbuild
        command = 'vcbuild.exe ' + sln_folder + 'KVNetInstallerHelper_RD.sln "KVRelease|Win32"'
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'KVNetInstallHelpler.dll ' + output_folder + 'dll\\KVNetInstallHelper_%d.dll' % iCount
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'KVNetInstallHelpler.pdb ' + output_folder + 'pdb\\KVNetInstallHelper_%d.pdb' % iCount
        os.system(command)

    #sign baidu
    sign.main(3, ['sign.py', 'bdkv', output_folder + 'dll\\'])

    #copy to archive
    command = 'copy /Y ' + output_folder + 'dll\\*.dll \\\\10.52.174.35\\public\\aladdin\\DailyBuild\\kvnetinstallhelper_adapt\\'
    os.system(command)
Example #5
0
from sign import main, get_config, schedule

if __name__ == '__main__':
    main(**get_config())
    try:
        schedule().start()
    except (KeyboardInterrupt, SystemExit):
        pass
    exit()
Example #6
0
import sign

for i in range(0, 20):
    sign.main(
        3,
        ['sign.py', 'bdkv', 'E:\\XBUILD\\bdm_combine_v488\\confusion\\dll\\'])
    #sign.main(3, ['sign.py', 'bdkv', 'E:\\XBUILD\\bdm_combine_v488\\confusion\\dll\\'])
def generate(nf, nDll, iStart):
    #clean dll and pdb folder
    command = 'del /Q ' + output_folder + 'exe\\*.exe'
    os.system(command)
    command = 'del /Q ' + output_folder + 'pdb\\*.pdb'
    os.system(command)

    #remove confusion dll
    command = 'del /Q ' + dll_resource_folder + '*.dll'
    os.system(command)
    #update svn
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'basic'
    os.system(command)
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'avclient_proj'
    os.system(command)
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 ' + svn_root_folder + 'stable_proj'
    os.system(command)

    for iCount in range(iStart,nDll + iStart):
        #write confusion.h
        fp = open(confusion_folder + 'confusion.h', 'w')
        xor_token = "0x%x%x%x%x%x%x%x%x" % (random.randint(0,15), random.randint(0,15), random.randint(0,15), random.randint(0,15), random.randint(0,15), random.randint(0,15), random.randint(0,15), random.randint(0,15))
        fp.writelines('#pragma once\n')
        fp.writelines('#define _CODE_CONFUSION 1\n')
        fp.writelines('#define _DLL_CONFUSION_KEY %s\n' % xor_token)
        for item in range(0,nf):
            n_cir = random.randint(32,64)
            n_api = random.randint(0,4)
            n_sb = random.randint(8,128) / 4 * 4
            n_hb = random.randint(64,512) / 4 * 4
            r_char = random.randint(0,255)

            fp.writelines('int CodeConfusion%d();\n' % item)

            fp.writelines('#define CallCodeConfusion%d \\\n' % item)
            fp.writelines('int _confusion_code_var_s = 0; \\\n')
            fp.writelines('for(int i=0;i<%d;++i){ \\\n' % n_cir)
            fp.writelines('_confusion_code_var_s += i;} \\\n')
            fp.writelines('_confusion_code_var_s += int(%s()); \\\n' % random_api[n_api])
            fp.writelines('char _confusion_code_var_szBuf[%d] = {0}; \\\n' % n_sb)
            fp.writelines('memset(_confusion_code_var_szBuf,%d,%d); \\\n' % (r_char,n_sb))
            fp.writelines('short *_confusion_code_var_spBuf = new short[%d]; \\\n' % n_hb)
            fp.writelines('memset(_confusion_code_var_spBuf,%d,%d * 2); \\\n' % (r_char,n_hb))
            fp.writelines('delete [] _confusion_code_var_spBuf;\n')
        fp.close()

        #40个里面随机取7个
        r_list = []
        while True:
            r_item = random.randint(0,65535) % 51 + 1
            if r_item not in r_list:
                r_list.append(r_item)
            if len(r_list) == 7:
                break

        print 'confusion selection list : '
        print r_list

        #confusion OnlineWnd.cpp
        file_r = open(confusion_folder + 'OnlineWnd.cpp')
        lines = file_r.readlines()
        file_r.close()
        for index in range(len(lines)):
            iStart = lines[index].find('CodeConfusion')
            if iStart == -1:
                continue
            else:
                iStart = iStart + 12
            iNum = 0
            if lines[index][iStart+1] == '(':
                iNum = int(lines[index][iStart+1:iStart+1])
            elif lines[index][iStart+2] == '(':
                iNum = int(lines[index][iStart+1:iStart+2])
            elif lines[index][iStart+3] == '(':
                iNum = int(lines[index][iStart+1:iStart+3])

            token = 'CodeConfusion%d' % iNum
            rtoken = 'CodeConfusion%d' % random.randint(0,255)
            if lines[index].find('CodeConfusion') != -1:
                    lines[index] = lines[index].replace(token,rtoken)
        file_w = open(confusion_folder + 'OnlineWnd1.cpp', "w")
        file_w .writelines(lines)
        file_w .close()

        #write confusion.cpp
        fp = open(confusion_folder + 'confusion.cpp','w')
        fp.writelines('#include "stdafx.h"\n')
        fp.writelines('#include "confusion.h"\n')
        fp.writelines('#include <windows.h>\n')
        for item in range(0,nf):
            n_cir = random.randint(32,256)
            m_lp1 = random.randint(0,4)
            m_lp2 = random.randint(0,8)
            m_lp3 = random.randint(0,16)
            m_lp4 = random.randint(0,32)
            m_lp5 = random.randint(0,64)

            fp.writelines('int CodeConfusion%d(){\n' % item)
            fp.writelines('int _confusion_sum = 0;')

            #后面从这7个里面随机
            for item in range(0,m_lp1):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[(random.randint(0,65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace('$a',str(random.randint(0,64))))
            for item in range(0,m_lp2):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[(random.randint(0,65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace('$a',str(random.randint(0,32))))
            for item in range(0,m_lp3):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[(random.randint(0,65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace('$a',str(random.randint(0,16))))
            for item in range(0,m_lp4):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[(random.randint(0,65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace('$a',str(random.randint(0,8))))
            for item in range(0,m_lp5):
                confusion_file = '.\\code_confusion\\%d.cpp' % r_list[(random.randint(0,65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace('$a',str(random.randint(0,4))))

            fp.writelines('return _confusion_sum;}\n')
        fp.close()
        
        #dll confusion
        dllConfusion(xor_token)

        #generte random data to cu.dll, 3M random data
        fp = open(confusion_folder + 'dllResource\\cu.dll','w')
        for i in range(1, random.randint(0, 6144)):
            for j in range(0,15):
                fp.write(''.join(random.sample(string.ascii_letters + string.digits, 32)))
        fp.close()

        #vcbuild
        command = 'vcbuild.exe /rebuild ' + sln_folder + 'AladdinBind.sln "KVRelease|Win32"'
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'bind.exe ' + output_folder + 'exe\\bind%d.exe' % iCount
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'bind.pdb ' + output_folder + 'pdb\\bind%d.pdb' % iCount
        os.system(command)
        
        #pack upx shell
        command = '..\\bin\\upx.exe -1 -v ' + output_folder + 'exe\\bind%d.exe' % iCount
        os.system(command)

    #sign baidu
    sign.main(3, ['sign.py', 'bdkv', output_folder + 'exe\\'])
    
    #copy to archive
    command = 'copy /Y ' + output_folder + 'exe\\*.exe \\\\10.52.174.35\\public\\aladdin\\DailyBuild\\aladdin_bind_v1092\\'
    os.system(command)
Example #8
0
def generate(nf, nDll, iStart):
    # clean dll and pdb folder
    command = "del /Q " + output_folder + "dll\\*.dll"
    os.system(command)
    command = "del /Q " + output_folder + "pdb\\*.pdb"
    os.system(command)

    # update svn
    command = (
        "svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 "
        + svn_root_folder
        + "basic"
    )
    os.system(command)
    command = (
        "svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 "
        + svn_root_folder
        + "avclient_proj"
    )
    os.system(command)
    command = (
        "svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk272 "
        + svn_root_folder
        + "stable_proj"
    )
    os.system(command)

    for iCount in range(iStart, nDll + iStart):
        # write confusion.h
        fp = open(confusion_folder + "confusion.h", "w")
        fp.writelines("#pragma once\n")
        fp.writelines("#define _CODE_CONFUSION 1\n")
        for item in range(0, nf):
            n_cir = random.randint(32, 64)
            n_api = random.randint(0, 4)
            n_sb = random.randint(8, 128) / 4 * 4
            n_hb = random.randint(64, 512) / 4 * 4
            r_char = random.randint(0, 255)

            fp.writelines("int CodeConfusion%d();\n" % item)

            fp.writelines("#define CallCodeConfusion%d \\\n" % item)
            fp.writelines("int _confusion_code_var_s = 0; \\\n")
            fp.writelines("for(int i=0;i<%d;++i){ \\\n" % n_cir)
            fp.writelines("_confusion_code_var_s += i;} \\\n")
            fp.writelines("_confusion_code_var_s += int(%s()); \\\n" % random_api[n_api])
            fp.writelines("char _confusion_code_var_szBuf[%d] = {0}; \\\n" % n_sb)
            fp.writelines("memset(_confusion_code_var_szBuf,%d,%d); \\\n" % (r_char, n_sb))
            fp.writelines("short *_confusion_code_var_spBuf = new short[%d]; \\\n" % n_hb)
            fp.writelines("memset(_confusion_code_var_spBuf,%d,%d * 2); \\\n" % (r_char, n_hb))
            fp.writelines("delete [] _confusion_code_var_spBuf;\n")
        fp.close()

        # write confusion.cpp
        fp = open(confusion_folder + "confusion.cpp", "w")
        fp.writelines('#include "stdafx.h"\n')
        fp.writelines('#include "confusion.h"\n')
        fp.writelines("#include <windows.h>\n")
        for item in range(0, nf):
            n_cir = random.randint(32, 256)
            m_lp1 = random.randint(0, 4)
            m_lp2 = random.randint(0, 8)
            m_lp3 = random.randint(0, 16)
            m_lp4 = random.randint(0, 32)
            m_lp5 = random.randint(0, 64)

            fp.writelines("int CodeConfusion%d(){\n" % item)
            fp.writelines("int _confusion_sum = 0;")
            # 19个里面随机取7个
            r_list = []
            while True:
                r_item = random.randint(0, 65535) % 19 + 1
                if r_item not in r_list:
                    r_list.append(r_item)
                if len(r_list) == 7:
                    break

            # 后面从这7个里面随机
            for item in range(0, m_lp1):
                confusion_file = ".\\code_confusion\\%d.cpp" % r_list[(random.randint(0, 65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace("$a", str(random.randint(0, 64))))
            for item in range(0, m_lp2):
                confusion_file = ".\\code_confusion\\%d.cpp" % r_list[(random.randint(0, 65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace("$a", str(random.randint(0, 32))))
            for item in range(0, m_lp3):
                confusion_file = ".\\code_confusion\\%d.cpp" % r_list[(random.randint(0, 65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace("$a", str(random.randint(0, 16))))
            for item in range(0, m_lp4):
                confusion_file = ".\\code_confusion\\%d.cpp" % r_list[(random.randint(0, 65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace("$a", str(random.randint(0, 8))))
            for item in range(0, m_lp5):
                confusion_file = ".\\code_confusion\\%d.cpp" % r_list[(random.randint(0, 65535) % 7)]
                fp.writelines(comm.getMsg(confusion_file).replace("$a", str(random.randint(0, 4))))
            fp.writelines("return _confusion_sum;}\n")
        fp.close()

        # vcbuild
        command = "vcbuild.exe " + sln_folder + 'KVNetInstallerHelper_RD.sln "KVRelease|Win32"'
        os.system(command)
        command = (
            "copy /Y "
            + plugin_folder
            + "KVNetInstallHelpler.dll "
            + output_folder
            + "dll\\KVNetInstallHelper_%d.dll" % iCount
        )
        os.system(command)
        command = (
            "copy /Y "
            + plugin_folder
            + "KVNetInstallHelpler.pdb "
            + output_folder
            + "pdb\\KVNetInstallHelper_%d.pdb" % iCount
        )
        os.system(command)

    # sign baidu
    sign.main(3, ["sign.py", "bdkv", output_folder + "dll\\"])

    # copy to archive
    command = (
        "copy /Y " + output_folder + "dll\\*.dll \\\\10.52.174.35\\public\\aladdin\\DailyBuild\\kvnetinstallhelper\\"
    )
    os.system(command)
Example #9
0
def buildV1020Installer(bCopy, num, version):
    #clean local and remote folder
    online_subfolder = 'online'
    tools_folder = conf.v1020_tools_folder
    if version == '1020':
        online_subfolder = 'online_v1020'
        tools_folder = conf.v1020_tools_folder
    elif version == '1055':
        online_subfolder = 'online_v1055'
        tools_folder = conf.v1055_tools_folder
    elif version == '1092':
        online_subfolder = 'online_v1092'
        tools_folder = conf.v1092_tools_folder
        
    #update tools folder
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk ' + tools_folder
    os.system(command)
        
    command = 'del /Q /S ..\\output\\aladdin\\installers\\' + online_subfolder + '\\*.exe'
    os.system(command)
    if bCopy:
        command = 'del /Q /S ' + conf.aladdin_archive_folder + online_subfolder + '\\*.exe'
        os.system(command)
    
    iNum = int(num)
    for i in range(0,iNum):
        #change outfile to online folder
        nsiFile = tools_folder + 'kvsetupscript\\BDKV_setup.nsi'
        file_r = open(nsiFile)
        lines = file_r.readlines()
        file_r.close()
        randomVer = randomVersion()
        installer = ''
        for index in range(len(lines)):
            if lines[index].find('OutFile') != -1:
                lines[index] = 'OutFile "..\\..\\..\\..\\autopack\\output\\aladdin\\installers\\' + online_subfolder + '\\Baidusd_Setup_%s.exe"\r\n' % randomVer
                installer = 'Baidusd_Setup_%s.exe' % randomVer
            if lines[index].find('VIProductVersion') != -1:
                lines[index] = 'VIProductVersion "%s"\r\n' % randomVer
            if lines[index].find('File /oname=$PLUGINSDIR\\BDMSkin.dll    			"res\\BDMSkin.dll"') != -1:
                lines[index] = lines[index] + '\r\n' + lines[index].replace('BDMSkin.dll','random.dat') + '\r\n'
        file_w = open(nsiFile, "w")
        file_w .writelines(lines)
        file_w .close()
        
        #create random.dat(64k~512k random data)
        createRandomData(tools_folder + 'kvsetupscript\\res\\random.dat')

        icoFile = tools_folder + 'kvsetupscript\\res\\setup.ico'
        
        #backup ico
        command = 'copy /Y ' + icoFile + ' ' + icoFile + '.bk'
        os.system(command)
        
        #change ico
        command = conf.modify_icon_exe + ' ' + icoFile + ' ' + icoFile
        os.system(command)

        #build installer
        command = tools_folder + 'nsis\\makensis.exe ' + ' /X"SetCompressor /FINAL /SOLID lzma" ' + tools_folder + 'kvsetupscript\\BDKV_setup.nsi'
        os.system(command)

        #recover nsh
        file_r = open(nsiFile)
        lines = file_r.readlines()
        file_r.close()
        randomVer = randomVersion()
        for index in range(len(lines)):
            if lines[index].find('File /oname=$PLUGINSDIR\\random.dat    			"res\\random.dat"') != -1:
                lines[index] = '\r\n'
        file_w = open(nsiFile, "w")
        file_w .writelines(lines)
        file_w .close()
        
        #remove random.dat
        command = 'del /Q /S ' + tools_folder + 'kvsetupscript\\res\\random.dat'
        os.system(command)

        #recover ico
        command = 'copy /Y ' + icoFile + '.bk ' + icoFile
        os.system(command)
        command = 'del /Q /S ' + icoFile + '.bk'
        os.system(command)

        #sign driver sign
        command = conf.sign_driver_exe + ' /s ..\\output\\aladdin\\installers\\' + online_subfolder + '\\' + installer
        os.system(command)

        #sign kav sign
        command = conf.sign_kav_exe + ' /s"..\\output\\aladdin\\installers\\' + online_subfolder + '\\' + installer + '" /u"..\\tools\\bin\\keys\\PrivateKey.sgn"'
        os.system(command)

    #sign baidu sign
    sign.main(3, ['sign.py', 'bdkv', '..\\output\\aladdin\\installers\\' + online_subfolder])
Example #10
0
def regenerateBind():
    #update folder first
    command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk ..\\..\\sharemem\\basic\\tools'
    os.system(command)

    randName = tempfile.mktemp()
    randName = randName[randName.rfind('\\')+1:]
    for item in range(0,10000):
        if os.path.isfile(conf.aladdin_kvnetinstallhelper_folder + 'kvnetinstallhelper_%d.dll' % item):
            command = 'copy /Y ' + conf.aladdin_kvnetinstallhelper_folder + 'kvnetinstallhelper_%d.dll ..\\..\\sharemem\\basic\\tools\\nsis\\plugins\\%s.dll' % (item,randName)
            os.system(command)
            command = 'del /Q /S ' + conf.aladdin_kvnetinstallhelper_folder + 'kvnetinstallhelper_%d.dll' % item
            os.system(command)
            break

    #change outfile to bind.exe
    nsiFile = conf.sharemem_tools_folder + 'kvnetinstall\\kvnetinstall.nsi'
    file_r = open(nsiFile)
    lines = file_r.readlines()
    file_r.close()
    for index in range(len(lines)):
        if lines[index].find('OutFile') != -1:
            lines[index] = 'OutFile "..\\..\\..\\..\\autopack\\res\\baidusd\\bind.exe"\r\n'
        if lines[index].find('VIProductVersion') != -1:
            lines[index] = 'VIProductVersion "%s"\r\n' % randomVersion()
        if lines[index].find('KVNetInstallHelper') != -1:
            lines[index] = lines[index].replace('KVNetInstallHelper',randName)
    file_w = open(nsiFile, "w")
    file_w .writelines(lines)
    file_w .close()

    icoFile = conf.sharemem_tools_folder + 'kvnetinstall\\res\\setup.ico'
    
    #backup ico
    command = 'copy /Y ' + icoFile + ' ' + icoFile + '.bk'
    os.system(command)
    
    #change ico
    command = conf.modify_icon_exe + ' ' + icoFile + ' ' + icoFile
    os.system(command)

    #create random.dat(64k~512k random data)
    createRandomData(conf.sharemem_tools_folder + 'kvnetinstall\\res\\random.dat')

    #build bind.exe
    command = conf.sharemem_tools_folder + 'nsis\\makensis.exe ' + ' /X"SetCompressor /FINAL /SOLID lzma" ' + conf.sharemem_tools_folder + 'kvnetinstall\\kvnetinstall.nsi'
    os.system(command)
    
    #recover nsi
    file_r = open(nsiFile)
    lines = file_r.readlines()
    file_r.close()
    for index in range(len(lines)):
        if lines[index].find(randName) != -1:
            lines[index] = lines[index].replace(randName,'KVNetInstallHelper')
    file_w = open(nsiFile, "w")
    file_w .writelines(lines)
    file_w .close()

    #recover ico
    command = 'copy /Y ' + icoFile + '.bk ' + icoFile
    os.system(command)
    command = 'del /Q /S ' + icoFile + '.bk'
    os.system(command)

    #remove random.dat
    command = 'del /Q /S ' + conf.sharemem_tools_folder + 'kvnetinstall\\res\\random.dat'
    os.system(command)

    #modify bind pe
    #command = conf.modify_pe_exe + ' ..\\res\\baidusd\\bind.exe'
    #os.system(command)

    #sign driver sign
    command = conf.sign_driver_exe + ' /s ..\\res\\baidusd\\bind.exe'
    os.system(command)

    #sign kav sign
    command = conf.sign_kav_exe + ' /s"..\\res\\baidusd\\bind.exe" /u"..\\tools\\bin\\keys\\PrivateKey.sgn"'
    os.system(command)

    #sign baidu sign
    sign.main(3, ['sign.py', 'bdkv', conf.baidusd_res_folder])

    #auto modify last byte of bind.exe
    fp = open('..\\res\\baidusd\\bind.exe', 'r+b')
    fp.seek(-1, os.SEEK_END)
    fp.write(struct.pack('c', chr(random.randint(1,255))))
    fp.close()

    #overwrite bind.xml
    md5Value = calcFileMd5(conf.baidusd_res_folder + '\\bind.exe')
    try:
        dom = xml.dom.minidom.parse(conf.baidusd_res_folder + '\\bind.xml')
        root = dom.documentElement
        tsoftMD5 = root.getElementsByTagName('SoftMD5')[0]
        tsoftMD5.childNodes[0].data = md5Value

        writer = open(conf.baidusd_res_folder + '\\bind.xml', 'w')
        dom.writexml(writer)
        writer.close()
    except Exception, e:
        logging.error('error when update bind.xml')
        logging.error(e)
Example #11
0
from sign import main, get_config

if __name__ == '__main__':
    exit(main(**get_config()))
Example #12
0
File: csign.py Project: liuheng/byp
import sign

for i in range(0,20):
    sign.main(3, ['sign.py', 'bdkv', 'E:\\XBUILD\\bdm_combine_v488\\confusion\\dll\\'])
    #sign.main(3, ['sign.py', 'bdkv', 'E:\\XBUILD\\bdm_combine_v488\\confusion\\dll\\'])
def generate(nf, nDll, iStart):
    #clean dll and pdb folder
    command = 'del /Q ' + output_folder + 'exe\\*.exe'
    os.system(command)
    command = 'del /Q ' + output_folder + 'pdb\\*.pdb'
    os.system(command)

    #update svn
    #command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk ' + svn_root_folder + 'basic'
    #os.system(command)
    #command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk ' + svn_root_folder + 'avclient_proj'
    #os.system(command)
    #command = 'svn update --non-interactive --no-auth-cache --username buildbot --password bCRjzYKzk ' + svn_root_folder + 'stable_proj'
    #os.system(command)

    for iCount in range(iStart,nDll + iStart):
        #write confusion.h
        fp = open(confusion_folder + 'confusion.h', 'w')
        xor_token = "%x%x%x%x" % (random.randint(0,15), random.randint(0,15), random.randint(0,15), random.randint(0,15))
        fp.writelines('#pragma once\n')
        fp.writelines('#define _CODE_CONFUSION 1\n')
        fp.writelines('#define _DLL_CONFUSION_KEY %s\n' % xor_token)
        for item in range(0,nf):
            n_cir = random.randint(32,64)
            n_api = random.randint(0,4)
            n_sb = random.randint(8,128) / 4 * 4
            n_hb = random.randint(64,512) / 4 * 4
            r_char = random.randint(0,255)

            fp.writelines('int CodeConfusion%d();\n' % item)

            fp.writelines('#define CallCodeConfusion%d \\\n' % item)
            fp.writelines('int _confusion_code_var_s = 0; \\\n')
            fp.writelines('for(int i=0;i<%d;++i){ \\\n' % n_cir)
            fp.writelines('_confusion_code_var_s += i;} \\\n')
            fp.writelines('_confusion_code_var_s += int(%s()); \\\n' % random_api[n_api])
            fp.writelines('char _confusion_code_var_szBuf[%d] = {0}; \\\n' % n_sb)
            fp.writelines('memset(_confusion_code_var_szBuf,%d,%d); \\\n' % (r_char,n_sb))
            fp.writelines('short *_confusion_code_var_spBuf = new short[%d]; \\\n' % n_hb)
            fp.writelines('memset(_confusion_code_var_spBuf,%d,%d * 2); \\\n' % (r_char,n_hb))
            fp.writelines('delete [] _confusion_code_var_spBuf;\n')
        fp.close()

        #write confusion.cpp
        fp = open(confusion_folder + 'confusion.cpp','w')
        fp.writelines('#include "stdafx.h"\n')
        fp.writelines('#include "confusion.h"\n')
        fp.writelines('#include <windows.h>\n')
        for item in range(0,nf):
            n_cir = random.randint(32,64)
            n_api = random.randint(0,4)
            n_sb = random.randint(8,128) / 4 * 4
            n_hb = random.randint(64,512) / 4 * 4
            r_char = random.randint(0,255)
            r_x = random.randint(0,10)

            fp.writelines('int CodeConfusion%d(){\n' % item)
            fp.writelines('int _confusion_code_var_s = 0;\n')
            fp.writelines('for(int i=0;i<%d;++i){\n' % n_cir)
            fp.writelines('_confusion_code_var_s += i;}\n')
            fp.writelines('_confusion_code_var_s += int(%s());\n' % random_api[n_api])
            fp.writelines('char _confusion_code_var_szBuf[%d] = {0};\n' % n_sb)
            fp.writelines('memset(_confusion_code_var_szBuf,%d,%d);\n' % (r_char,n_sb))
            fp.writelines('short *_confusion_code_var_spBuf = new short[%d];\n' % n_hb)
            fp.writelines('memset(_confusion_code_var_spBuf,%d,%d * 2);\n' % (r_char,n_hb))
            fp.writelines('delete [] _confusion_code_var_spBuf;\n')
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('{int a=1; a++; int b=a+%d;}\n' % r_x)
            fp.writelines('return _confusion_code_var_s;}\n')
        fp.close()
        
        #dll confusion
        print xor_token
        #dllConfusion(xor_token)

        #vcbuild
        command = 'vcbuild.exe ' + sln_folder + 'AladdinBind.sln "KVRelease|Win32"'
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'bind.exe ' + output_folder + 'exe\\bind%d.exe' % iCount
        os.system(command)
        command = 'copy /Y ' + plugin_folder + 'bind.pdb ' + output_folder + 'pdb\\bind_%d.pdb' % iCount
        os.system(command)

    #sign baidu
    sign.main(3, ['sign.py', 'bdkv', output_folder + 'exe\\'])
    
    #copy to archive
    command = 'copy /Y ' + output_folder + 'exe\\*.exe \\\\10.52.174.35\\public\\aladdin\\DailyBuild\\aladdin_bind_v1092\\'
    os.system(command)