-
Notifications
You must be signed in to change notification settings - Fork 0
/
Appunti creazione network
84 lines (53 loc) · 2.12 KB
/
Appunti creazione network
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Regole di creazione network, in base alle diverse istruzioni di branching:
IF:
- Rewrite dell'istruzione, trasformandola in modo da portarla sempre in positivo
- Tabella di conversione tra if, tutto uguale e maggiore :
Trovato --> Diventa -- Modifica
if-eq -- Uguale
if-ge -- Uguale
if-gt -- Uguale
if-eqz -- Uguale
if-gez -- Uguale
if-gtz -- Uguale
if-lez if-gtz Inverto destinazione salto
if-ne if-eq Inverto destinazione salto
if-lt if-ge Inverto destinazione salto
if-nez if-eqz Inverto destinazione salto
if-ltz if-gez Inverto destinazione salto
if-le if-gt Inverto destinazione salto
if-eq vx,vy,target
Jumps to target if vx == vy. vx and vy are integer values.
if-ne vx,vy,target
Jumps to target if vx != vy. vx and vy are integer values.
if-lt vx,vy,target
Jumps to target is vx < vy. vx and vy are integer values.
if-ge vx, vy,target
Jumps to target if vx >= vy. vx and vy are integer values.
if-gt vx,vy,target
Jumps to target if vx > vy. vx and vy are integer values.
if-le vx,vy,target
Jumps to target if vx <= vy. vx and vy are integer values.
if-eqz vx,target
Jumps to target if vx == 0. vx is an integer value.
if-nez vx,target
Checks vx and jumps if != vx
if-ltz vx,target
Checks vx and jumps if vx < 0
if-gez vx,target
Checks vx and jumps if vx >= 0
if-gtz vx,target
Checks vx and jumps if vx > 0
if-lez vx,target
Checks vx and jumps if vx <= 0
Cose non gestite:
- Alcuni tipi di istruzioni contengono dei commenti che devono essere strippati (floatm double), altre contengono dei cancelletti che non vanno tolti (Strings literal)
Cose varie:
- Verificare attributo 'varargs' dei methodi
- Scrivere unit-test per il creatore di grafi di metodi
- Aggiungere comparazione ricorsiva delle funzioni nel codice
- Aggungere gestione dei blocchi ':array_X'
- Integrare backsmali per non inserire i commenti e togliere il codice che rimuove i commenti
Cose da ignorare nelle comparazioni:
Ottimizzazioni:
- Aggiungere il multithreading per il parsing dei file smali
- Passare a cython