script.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. # coding:utf8
  2. __author__ = '极无双'
  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. 'invoke-virtual {v0}, Lcom/kf/framework/KFApplication;->onLowMemory()V',
  11. 'invoke-virtual {v0}, Lcom/kf/framework/KFApplication;->onTerminate()V',
  12. 'invoke-virtual {v0, p1}, Lcom/kf/framework/KFApplication;->onTrimMemory(I)V',
  13. 'invoke-virtual {v0, p1}, Lcom/kf/framework/KFApplication;->onConfigurationChanged(Landroid/content/res/Configuration;)V']
  14. # def script_init(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
  15. # if channelSdkInfo["id"] == "549":
  16. # gw_data_center.pack_small = False
  17. # return
  18. def script_last(SDK, decompileDir, channelSdkInfo, new_game_channel_info, gameInfo):
  19. # logging.info('------------SDK:'+SDK)
  20. # logging.info('------------decompileDir:'+decompileDir)
  21. # logging.info('------------channelSdkInfo:'+str(channelSdkInfo))
  22. # logging.info('------------new_game_channel_info:'+str(new_game_channel_info))
  23. # logging.info('------------gameInfo:'+str(gameInfo))
  24. # logging.info("------rm baidu smali------")
  25. # restdir = decompileDir+"/"+"smali_classes2/com/baidu/gamesdk"
  26. # if os.path.exists(restdir):
  27. # shutil.rmtree(restdir)
  28. # s3 = decompileDir + "/smali_classes3"
  29. logging.info('------------channelSdkInfo:' + str(channelSdkInfo))
  30. if channelSdkInfo['SDKName'] == 'reverseforkupai':
  31. replace_kf_application(decompileDir)
  32. def replace_kf_application(extract_dir):
  33. goal_file = os.path.join(extract_dir, 'smali/com/kunlun/platform/android/KunlunApplication.smali')
  34. print(os.path.isfile(goal_file))
  35. if os.path.isfile(goal_file):
  36. logging.info('method_proceed: ' + 'goal_file')
  37. print(goal_file)
  38. with open(goal_file, 'r+') as f:
  39. cont = f.read()
  40. for line in lines:
  41. change_line = line.replace('Lcom/kf/framework/KFApplication', '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("C:\\Users\\Administrator\\Desktop\\xianjian")