script.py 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # coding:utf8
  2. __author__ = 'dong'
  3. import os
  4. import logging
  5. import xml.dom.minidom
  6. import re
  7. import shutil
  8. import glob
  9. lines = ['invoke-virtual {v0}, Lcom/kf/framework/KFApplication;->onCreate()V']
  10. def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
  11. # logging.info('------------SDK:'+SDK)
  12. # logging.info('------------decompileDir:'+decompileDir)
  13. # logging.info('------------channelSdkInfo:'+str(channelSdkInfo))
  14. # logging.info('------------new_game_channel_info:'+str(new_game_channel_info))
  15. # logging.info('------------gameInfo:'+str(gameInfo))
  16. # logging.info("------rm baidu smali------")
  17. # restdir = decompileDir+"/"+"smali_classes2/com/baidu/gamesdk"
  18. # if os.path.exists(restdir):
  19. # shutil.rmtree(restdir)
  20. # s3 = decompileDir + "/smali_classes3"
  21. logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
  22. logging.info('------------channelSDKName:' + channelSdkInfo['SDKName'])
  23. # 小绵羊
  24. if (channelSdkInfo['SDKName'] == 'reverseforachannel'):
  25. logging.info('------------channelSdkID:' + channelSdkInfo['id'])
  26. replace_kf_application(decompileDir)
  27. def replace_kf_application(extract_dir):
  28. goal_file_list = glob.glob(os.path.join(extract_dir, 'smali*/com/shenghe/wzcq/coolpad/HTApplication.smali'))
  29. if len(goal_file_list) == 0:
  30. logging.info("goal_file is null")
  31. return
  32. goal_file = goal_file_list[0]
  33. print(os.path.isfile(goal_file))
  34. if os.path.isfile(goal_file):
  35. logging.info('method_proceed: ' + 'goal_file')
  36. print(goal_file)
  37. with open(goal_file, 'r+') as f:
  38. cont = f.read()
  39. for line in lines:
  40. change_line = line.replace('Lcom/kf/framework/KFApplication',
  41. 'Landroid/app/Application')
  42. cont = cont.replace(line, change_line)
  43. logging.info('replace_str: ' + cont)
  44. with open(goal_file, 'w+') as tf:
  45. tf.write(cont)
  46. if __name__ == '__main__':
  47. replace_kf_application("D://work//yxmy")