Skip to content
This repository was archived by the owner on Jul 8, 2025. It is now read-only.

Commit e658862

Browse files
authored
Merge pull request #97 from imbillow/ida750
Add IDA 7.[4-5] *.idb and *.i64 and some fix
2 parents 58de7fe + ac18737 commit e658862

File tree

8 files changed

+15
-10
lines changed

8 files changed

+15
-10
lines changed

tests/data/v7.4/x32/kernel32.idb

16.3 MB
Binary file not shown.

tests/data/v7.4/x64/kernel32.i64

18.8 MB
Binary file not shown.

tests/data/v7.5/x32/kernel32.idb

16.5 MB
Binary file not shown.

tests/data/v7.5/x64/kernel32.i64

19.1 MB
Binary file not shown.

tests/fixtures.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ def rundebug(request):
112112
750: "v7.5",
113113
}
114114
DefaultKern32Specs = [
115+
(500, 32, None),
115116
(630, 32, None),
116117
(630, 64, None),
117118
(640, 32, None),
@@ -132,6 +133,10 @@ def rundebug(request):
132133
(720, 64, None),
133134
(730, 32, None),
134135
(730, 64, None),
136+
(740, 32, None),
137+
(740, 64, None),
138+
(750, 32, None),
139+
(750, 64, None),
135140
]
136141

137142

tests/test_analysis.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import re
2+
import sys
23

34
import idb.analysis
45
from fixtures import *
@@ -299,6 +300,7 @@ def test_xrefs(kernel32_idb, version, bitness, expected):
299300
)
300301

301302

303+
@pytest.mark.skipif(six.PY2, reason="it consumes too much memory")
302304
@kern32_test()
303305
def test_fixups(kernel32_idb, version, bitness, expected):
304306
fixups = idb.analysis.Fixups(kernel32_idb).fixups

tests/test_idaapi.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -556,19 +556,17 @@ def test_get_mnem(kernel32_idb, version, bitness, expected):
556556

557557
@kern32_test()
558558
def test_functions(kernel32_idb, version, bitness, expected):
559-
if version <= 500:
560-
return
561-
562559
api = idb.IDAPython(kernel32_idb)
563560

564561
funcs = api.idautils.Functions()
565562
# exact number of detected functions varies by IDA version,
566563
# but the first and last addresses should remain constant.
567564
assert funcs[0] == 0x68901010
568-
assert funcs[-1] == 0x689BD410
565+
assert funcs[-1] == 0x689BD410 if version > 500 else 0x689CD6BA
569566

570567
# this is a function chunk. should not be reported.
571-
assert 0x689018E5 not in funcs
568+
if version > 500:
569+
assert 0x689018E5 not in funcs
572570

573571

574572
@kern32_test()

tests/test_netnode.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ def test_valobj(kernel32_idb, version, bitness, expected):
2222
# Out[29]: 'Z:\\home\\user\\Downloads\\kernel32\\kernel32.dll\x00'
2323
root = idb.netnode.Netnode(kernel32_idb, ROOT_NODEID)
2424
assert root.value_exists() is True
25-
if version > 500:
26-
assert root.valobj().endswith(b"kernel32.dll\x00")
27-
assert root.valstr().endswith("kernel32.dll")
28-
else:
25+
if version >= 740 or version == 500:
2926
assert root.valobj().endswith(
3027
b"ba1bc09b7bb290656582b4e4d896105caf00825b557ce45621e76741cd5dc262\x00"
3128
)
3229
assert root.valstr().endswith(
3330
"ba1bc09b7bb290656582b4e4d896105caf00825b557ce45621e76741cd5dc262"
3431
)
32+
else:
33+
assert root.valobj().endswith(b"kernel32.dll\x00")
34+
assert root.valstr().endswith("kernel32.dll")
3535

3636

3737
@kern32_test(
@@ -72,7 +72,7 @@ def test_alts(kernel32_idb, version, bitness, expected):
7272
uint(-1),
7373
]
7474
else:
75-
alts == [
75+
assert alts == [
7676
uint(-5),
7777
uint(-4),
7878
uint(-3),

0 commit comments

Comments
 (0)