forked from androguard/androguard
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_session.py
63 lines (51 loc) · 2.56 KB
/
test_session.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import unittest
import sys
from androguard.core.bytecodes.apk import APK
PATH_INSTALL = "./"
sys.path.append(PATH_INSTALL)
from androguard import session
class SessionTest(unittest.TestCase):
def testSessionDex(self):
s = session.Session()
with open("examples/android/TestsAndroguard/bin/classes.dex",
"rb") as fd:
s.add("examples/android/TestsAndroguard/bin/classes.dex", fd.read())
self.assertEqual(len(s.analyzed_apk), 0)
self.assertEqual(len(s.analyzed_files), 1)
self.assertEqual(len(s.analyzed_digest), 1)
self.assertEqual(len(s.analyzed_dex), 1)
def testSessionAPK(self):
s = session.Session()
with open("examples/android/TestsAndroguard/bin/TestActivity.apk",
"rb") as fd:
s.add("examples/android/TestsAndroguard/bin/TestActivity.apk",
fd.read())
self.assertEqual(len(s.analyzed_apk), 1)
self.assertEqual(len(s.analyzed_files), 1)
self.assertEqual(len(s.analyzed_digest), 2)
self.assertEqual(len(s.analyzed_dex), 1)
def testSessionSave(self):
s = session.Session()
with open("examples/android/TestsAndroguard/bin/TestActivity.apk",
"rb") as fd:
s.add("examples/android/TestsAndroguard/bin/TestActivity.apk",
fd.read())
session.Save(s, "test_session")
def testSessionLoad(self):
s = session.Session()
with open("examples/android/TestsAndroguard/bin/TestActivity.apk",
"rb") as fd:
s.add("examples/android/TestsAndroguard/bin/TestActivity.apk",
fd.read())
session.Save(s, "test_session")
self.assertIn('2f24538b3064f1f88d3eb29ee7fbd2146779a4c9144aefa766d18965be8775c7', s.analyzed_dex.keys())
self.assertIn('3bb32dd50129690bce850124ea120aa334e708eaa7987cf2329fd1ea0467a0eb', s.analyzed_apk.keys())
x = s.analyzed_apk['3bb32dd50129690bce850124ea120aa334e708eaa7987cf2329fd1ea0467a0eb'][0]
self.assertIsInstance(x, APK)
nsession = session.Load("test_session")
self.assertIn('2f24538b3064f1f88d3eb29ee7fbd2146779a4c9144aefa766d18965be8775c7', nsession.analyzed_dex.keys())
self.assertIn('3bb32dd50129690bce850124ea120aa334e708eaa7987cf2329fd1ea0467a0eb', nsession.analyzed_apk.keys())
y = nsession.analyzed_apk['3bb32dd50129690bce850124ea120aa334e708eaa7987cf2329fd1ea0467a0eb'][0]
self.assertIsInstance(y, APK)
if __name__ == '__main__':
unittest.main()