50行python过字符串静态处理

2018-12-25  本文已影响0人  超哥__
  v36 = 0;
  v11 = 101;
  v30 = 46;
  v19 = 97;
  v9 = 28769;
  v23 = 111;
  v13 = 111;
  v25 = 97;
  v28 = 111;
  v17 = 46;
  v21 = 122;
  v26 = 116;
  v27 = 105;
  v35 = 116;
  v14 = 98;
  v15 = 105;
  v12 = 27950;
  v22 = 108;
  v34 = 115;
  v32 = 108;
  v33 = 105;
  v24 = 99;
  v10 = 12656;
  v20 = 119;
  v29 = 110;
  v16 = 25964;
  v8 = 778923875;
  v18 = 26217;
  v31 = 112;
  v5 = objc_msgSend(&OBJC_CLASS___NSString, "stringWithUTF8String:", &v8);
  v6 = (unsigned int)+[gAEfdwoIDCCQSqSbiVcStbigdskXDgpYvPcIQVzM jCKeedzMtBIZYvvqwHKQceVQlQcXDEpeLrdTrPEG:content:](
                       &OBJC_CLASS___gAEfdwoIDCCQSqSbiVcStbigdskXDgpYvPcIQVzM,
                       "jCKeedzMtBIZYvvqwHKQceVQlQcXDEpeLrdTrPEG:content:",
                       v5,
                       v4);

看到这种形式,就是打散字符串的处理方式,我们写个python脚本快速搞定

#-*- coding:utf-8 -*-
from tkinter import *
from tkinter.scrolledtext import ScrolledText

def parse(textin, textout):
  input = textin.get(0.0, END)
  d = dict()
  for line in input.split('\n'):
    if line.find('=') == -1:
      continue
    k, v = tuple(line.split('='))
    k = k.strip()
    v = v.strip().replace(';', '')
    try:
      if k.find('[') != -1:
        k = int(k.split('[')[1].split(']')[0])
        if v.startswith('0x') or v.startswith('0X'):
          v = int(v, base=16)
        else:
          v = int(v)
        d[k] = v
      elif k.find('_') != -1:
        k = int(k.split('_')[1], base=16)
        if v.startswith('0x') or v.startswith('0X'):
          v = int(v, base=16)
        else:
          v = int(v)
        d[k] = v
      elif k.startswith('v'):
        k = int(k.replace('v', ''))
        if v.startswith('0x') or v.startswith('0X'):
          v = int(v, base=16)
        else:
          v = int(v)
        d[k] = v
    except Exception as e:
      textout.insert(INSERT, str(e))
      return
  s = ''
  for item in sorted(d.keys()):
    v = d[item]
    while v != 0:
      s += chr(v & 255)
      v = (v >> 8)
  textout.insert(INSERT, s)

root = Tk()
textin = ScrolledText(root)
textin.pack()
btn = Button(root, text="parse")
btn.pack()
textout = ScrolledText(root)
textout.pack()
btn.bind("<Button-1>", lambda event:parse(textin, textout))
root.mainloop()
image.png
上一篇下一篇

猜你喜欢

热点阅读