|
|
@@ -12,202 +12,42 @@ import glob
|
|
|
import distutils.dir_util
|
|
|
|
|
|
|
|
|
-def script(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
|
|
|
- return
|
|
|
-
|
|
|
def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
|
|
|
- logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
|
|
|
-
|
|
|
- if channelSdkInfo['id'] == '549' or channelSdkInfo['id'] == '591':
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes19","com","haowanyou")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com","haowanyou")
|
|
|
- list_package = ["router","sdkaes","sdkpermission","session","tool","tracepath","xmltojson"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- if channelSdkInfo['id'] == '597':
|
|
|
- s1 = os.path.join(decompileDir, "smali")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new)
|
|
|
- list_package = ["androidx"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes2","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["samsung","sdk","splash","tencent","twobigears","unionpay","unity","unity3d","wysd","ycsdk","yulong","yysg","zndroid","zui"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes2","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["google","haowanyou","huawei","hwy","ipaynow","jaredrummler","luoshihai","mob","netease","onevcat","push"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes2","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["luoshihai","mob","netease","onevcat","push"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes2","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["hwy","ipaynow","jaredrummler"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes2","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["haowanyou"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes4")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new)
|
|
|
- list_package = ["com"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes5","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["faceunity","friendtime","friendtimes"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes7","androidx")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"androidx")
|
|
|
- list_package = ["appcompat","asynclayoutinflater","coordinatorlayout","cursoradapter","documentfile","fragment","arch","collection","core","customview","drawerlayout","interpolator"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes9","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["google","haowanyou","huawei","hwy","ipaynow","jaredrummler"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes9","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["google","huawei"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes9","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["hwy","ipaynow","jaredrummler"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes9","com","haowanyou")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com","haowanyou")
|
|
|
- list_package = ["application","channel","common","core","event","multibundle","react"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes9","com","haowanyou")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com","haowanyou")
|
|
|
- list_package = ["react_native","reactnative","router","sdkaes","sdkpermission","session","tool","tracepath","xmltojson"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes9","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["mob"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes16","com")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com")
|
|
|
- list_package = ["haowanyou"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
- s1 = os.path.join(decompileDir, "smali_classes20","com/haowanyou")
|
|
|
- if os.path.exists(s1):
|
|
|
- smali_classes_new = create_mutil_smali(decompileDir)
|
|
|
- s3 = os.path.join(decompileDir, smali_classes_new,"com/haowanyou")
|
|
|
- list_package = ["application","channel","common","core","event","multibundle","react","react_native","reactnative"]
|
|
|
- if not os.path.exists(s3):
|
|
|
- distutils.dir_util.mkpath(s3)
|
|
|
- move_package(s1, s3, list_package)
|
|
|
-
|
|
|
-
|
|
|
-def create_mutil_smali(decompileDir):
|
|
|
- f_idx = 2
|
|
|
- while True:
|
|
|
- # tmp = gw_file_system.get_full_path(os.path.join(decompileDir, 'smali_classes%d' % f_idx))
|
|
|
- tmp = os.path.join(decompileDir, 'smali_classes%d' % f_idx)
|
|
|
- tmp = tmp.replace('\\', '/')
|
|
|
- tmp = re.sub('/+', '/', tmp)
|
|
|
- if os.path.exists(tmp):
|
|
|
- f_idx += 1
|
|
|
- else:
|
|
|
- smali_classes2_dir = tmp
|
|
|
- break
|
|
|
- # endwhile
|
|
|
- os.mkdir(smali_classes2_dir)
|
|
|
- return smali_classes2_dir
|
|
|
-
|
|
|
-
|
|
|
-def move_package(s1, s3, list_package):
|
|
|
- for d in list_package:
|
|
|
- src = os.path.join(s1, d)
|
|
|
- if os.path.exists(src):
|
|
|
- dst = os.path.join(s3, d)
|
|
|
- distutils.dir_util.copy_tree(src, dst)
|
|
|
- distutils.dir_util.remove_tree(src)
|
|
|
-
|
|
|
+ fix_coolyun_application_getinstance_null_bug(decompileDir)
|
|
|
+
|
|
|
+
|
|
|
+def fix_coolyun_application_getinstance_null_bug(decompile_dir):
|
|
|
+ insert_str_list = [
|
|
|
+ '\n\t.locals 1\n\n',
|
|
|
+ '\tsget-object v0, Lcom/coolyun/framework/CoolYunApplication;->application:Landroid/content/Context;\n\n',
|
|
|
+ '\tcheck-cast v0, Lcom/coolyun/framework/CoolYunApplication;\n\n',
|
|
|
+ '\treturn-object v0\n\n']
|
|
|
+ for dirpath, dirnames, filenames in os.walk(decompile_dir):
|
|
|
+ if r'com\coolyun\framework' in dirpath and 'CoolYunApplication.smali' in filenames:
|
|
|
+ smali_path = os.path.join(dirpath, 'CoolYunApplication.smali')
|
|
|
+ with open(smali_path, 'r') as f:
|
|
|
+ smali_str_arr = f.readlines()
|
|
|
+ index_str = '.method public static getInstance()Lcom/coolyun/framework/CoolYunApplication;'
|
|
|
+ end_method_str = '.end method'
|
|
|
+ insert_str = ''.join(insert_str_list)
|
|
|
+ on_create_index = 0
|
|
|
+ insert_index = 0
|
|
|
+ for line in smali_str_arr:
|
|
|
+ if index_str in line:
|
|
|
+ on_create_index = smali_str_arr.index(line)
|
|
|
+ print('on_create_index', on_create_index, line)
|
|
|
+ break
|
|
|
+ for index, value in enumerate(smali_str_arr):
|
|
|
+ if index > on_create_index and end_method_str in value:
|
|
|
+ insert_index = index
|
|
|
+ print('insert_index', index)
|
|
|
+ break
|
|
|
+ print(on_create_index, insert_index)
|
|
|
+ del smali_str_arr[on_create_index + 1:insert_index]
|
|
|
+ smali_str_arr.insert(on_create_index + 1, insert_str)
|
|
|
+ with open(smali_path, 'w') as f:
|
|
|
+ f.write(''.join(smali_str_arr))
|
|
|
+ break
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
- replace_life_method("D:\\work\\xmy")
|
|
|
+ ""
|