-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathls_ldbdump.py
36 lines (29 loc) · 850 Bytes
/
ls_ldbdump.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import base64
import subprocess
import sys
if __name__ == '__main__':
ldb_file = sys.argv[1]
stdout = subprocess.getoutput("./ldbdump_base64 " + ldb_file)
for row in stdout.splitlines()[1:]:
row = row.replace('"', "").replace(',', "")
k, v = row.split(": ")
k_ = base64.b64decode(k)
v_ = base64.b64decode(v)
print("Key:", k_)
print("Value bytes:", v_)
if len(v_) < 2:
print()
print("=" * 10)
continue
flag = v_[0]
value = v_[1:]
if flag == 0:
true_value = value.decode("utf_16_le")
elif flag == 1:
true_value = value.decode()
else:
print("Unknown Format")
true_value = value
print("Value:", true_value)
print()
print("=" * 10)