| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- import sys
- import json
- import os
- import re
- import shutil
- import subprocess
- import xml.etree.ElementTree as ET
- import zipfile
- import win32api
- import win32con
- import yaml
- print("一起来修仙Y-小绵羊")
- print(sys.argv)
- decompile_dir_path = sys.argv[1]
- print(decompile_dir_path)
- def copy_new_sdk_delay_smali_kf():
- promoter_path = os.path.join(decompile_dir_path,'smali/com/yulong/sdk/promoter')
- delay_login_path = r'D:\special_problem\新版本酷派快发初始化未完成就登录\com\yulong\sdk\promoter'
- print(promoter_path)
- if os.path.exists(promoter_path):
- for file_item in os.listdir(delay_login_path):
- print(file_item)
- smali_file_path = os.path.join(delay_login_path, file_item)
- print(smali_file_path)
- shutil.copy(smali_file_path, promoter_path)
- else:
- print('promoter 不在smali文件夹')
- shutil.copytree(delay_login_path, promoter_path)
- copy_new_sdk_delay_smali_kf()
- # 新版sdk取消登录调不起登录
- def modify_cancel_login_and_fubiao(decompile_dir):
- insert_str_list = [
- '\n\tinvoke-static {}, Lcom/yog/kothoth/YogSDK;->getInstance()Lcom/yog/kothoth/YogSDK;\n\n',
- '\tmove-result-object v0\n\n',
- '\tiget-object v1, p0, Lcom/yulong/sdk/promoter/PromoterGameAuthApi$4;->val$activity:Landroid/app/Activity;\n\n',
- '\tcheck-cast v1, Landroid/content/Context;\n\n',
- '\tinvoke-virtual {v0, v1}, Lcom/yog/kothoth/YogSDK;->login(Landroid/content/Context;)V\n\n']
- for dirpath, dirnames, filenames in os.walk(decompile_dir):
- if r'com\yulong\sdk\promoter' in dirpath and 'PromoterGameAuthApi$4.smali' in filenames:
- smali_path = os.path.join(dirpath, 'PromoterGameAuthApi$4.smali')
- print(smali_path)
- with open(smali_path, 'r', encoding='utf-8') as f:
- smali_str_arr = f.readlines()
- index_str = r'sdk\u767b\u9646\u5931\u8d25:'
- end_method_str = 'Lcom/yulong/sdk/promoter/PromoterGameAuthApi;->showLog(Ljava/lang/String;)V'
- 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)
- smali_str_arr.insert(insert_index+1, insert_str)
- with open(smali_path, 'w', encoding='utf-8') as f:
- f.write(''.join(smali_str_arr))
- if r'com\yog\kothoth\floatwindow' in dirpath and 'YogFloatWindow.smali' in filenames:
- smali_path = os.path.join(dirpath, 'YogFloatWindow.smali')
- with open(smali_path, 'r', encoding='utf-8') as f:
- smali_str_arr = f.readlines()
- for line in smali_str_arr:
- if '0x1f4' in line:
- smali_str_arr[smali_str_arr.index(line)] = line.replace('0x1f4', '0xa')
- break
- with open(smali_path, 'w', encoding='utf-8') as f:
- f.write(''.join(smali_str_arr))
- if r'com\yog\kothoth\data\bean' in dirpath and 'UserResult.smali' in filenames:
- smali_path = os.path.join(dirpath, 'UserResult.smali')
- with open(smali_path, 'r', encoding='utf-8') as f:
- smali_str_arr = f.readlines()
- index_str = '.method public constructor <init>(ZLjava/lang/String;)V'
- end_method_str = '.end method'
- 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
- for index, value in enumerate(smali_str_arr):
- if on_create_index < index < insert_index:
- if '0x0' in value:
- print(value)
- smali_str_arr[index] = value.replace('0x0', '0x1')
- break
- with open(smali_path, 'w', encoding='utf-8') as f:
- f.write(''.join(smali_str_arr))
- if r'com\yog\kothoth' in dirpath and 'YogSDKSelf.smali' in filenames:
- smali_path = os.path.join(dirpath, 'YogSDKSelf.smali')
- with open(smali_path, 'r', encoding='utf-8') as f:
- smali_str_arr = f.readlines()
- index_str = '.method public static isFastDoubleClick(J)Z'
- end_method_str = '.end method'
- 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
- for index, value in enumerate(smali_str_arr):
- if on_create_index < index < insert_index:
- if '0x1' in value:
- print(value)
- smali_str_arr[index] = value.replace('0x1', '0x0')
- break
- with open(smali_path, 'w', encoding='utf-8') as f:
- f.write(''.join(smali_str_arr))
- # modify_cancel_login_and_fubiao(decompile_dir_path)
|