35
35
36
36
## Introduction ([ 中文] ( /README_zh.md ) )
37
37
38
+ dexbox is a lightweight dex file parsing library.
39
+
38
40
If you want to know more, please refer to:
39
41
40
42
* [ Documents] ( https://xmake.io/#/home )
@@ -52,6 +54,106 @@ XMake installed on the system. Available [here](https://github.com/xmake-io/xmak
52
54
$ xmake
53
55
```
54
56
57
+ ## Run tests
58
+
59
+ ``` console
60
+ $ xmake run dexdump tests/tests.dex
61
+ .file _cast.java
62
+ .class _cast
63
+ .super Object
64
+ .method public void <init>()
65
+ .register 1
66
+ .argument 1
67
+ .catches 0
68
+ .prologue
69
+ 0x000b0c: 7010 4e00 0000 |0000: invoke-direct {v0}, Object.<init>()void
70
+ 0x000b12: 0e00 |0003: return-void
71
+
72
+ .method public int main(java.lang.String[])
73
+ .register 7
74
+ .argument 1
75
+ .catches 0
76
+ .prologue
77
+ 0x000b24: 6200 0500 |0000: sget-object v0, System.out:PrintStream
78
+ 0x000b28: 1a01 a800 |0002: const-string v1, "test: ==============================================================="
79
+ 0x000b2c: 6e20 4800 1000 |0004: invoke-virtual {v0, v1}, PrintStream.println(String)void
80
+ 0x000b32: 6200 0500 |0007: sget-object v0, System.out:PrintStream
81
+ 0x000b36: 1a01 a900 |0009: const-string v1, "test: cast: .."
82
+ 0x000b3a: 6e20 4800 1000 |000b: invoke-virtual {v0, v1}, PrintStream.println(String)void
83
+ 0x000b40: 6200 0500 |000e: sget-object v0, System.out:PrintStream
84
+ 0x000b44: 1a01 0000 |0010: const-string v1, ""
85
+ 0x000b48: 6e20 4800 1000 |0012: invoke-virtual {v0, v1}, PrintStream.println(String)void
86
+ 0x000b4e: 12f0 |0015: const/4 v0, #-1 // #ff
87
+ 0x000b50: 8102 |0016: int-to-long v2, v0
88
+ 0x000b52: 6201 0500 |0017: sget-object v1, System.out:PrintStream
89
+ 0x000b56: 2204 2400 |0019: new-instance v4, StringBuilder
90
+ 0x000b5a: 7010 5100 0400 |001b: invoke-direct {v4}, StringBuilder.<init>()void
91
+ 0x000b60: 1a05 9d00 |001e: const-string v5, "num = "
92
+ 0x000b64: 6e20 5600 5400 |0020: invoke-virtual {v4, v5}, StringBuilder.append(String)StringBuilder
93
+ 0x000b6a: 0c04 |0023: move-result-object v4
94
+ 0x000b6c: 6e30 5500 2403 |0024: invoke-virtual {v4, v2, v3}, StringBuilder.append(long)StringBuilder
95
+ 0x000b72: 0c02 |0027: move-result-object v2
96
+ 0x000b74: 6e10 5700 0200 |0028: invoke-virtual {v2}, StringBuilder.toString()String
97
+ 0x000b7a: 0c02 |002b: move-result-object v2
98
+ 0x000b7c: 6e20 4800 2100 |002c: invoke-virtual {v1, v2}, PrintStream.println(String)void
99
+ 0x000b82: 8f01 |002f: int-to-short v1, v0
100
+ 0x000b84: 6202 0500 |0030: sget-object v2, System.out:PrintStream
101
+ 0x000b88: 2203 2400 |0032: new-instance v3, StringBuilder
102
+ 0x000b8c: 7010 5100 0300 |0034: invoke-direct {v3}, StringBuilder.<init>()void
103
+ 0x000b92: 1a04 9d00 |0037: const-string v4, "num = "
104
+ 0x000b96: 6e20 5600 4300 |0039: invoke-virtual {v3, v4}, StringBuilder.append(String)StringBuilder
105
+ 0x000b9c: 0c03 |003c: move-result-object v3
106
+ 0x000b9e: 6e20 5400 1300 |003d: invoke-virtual {v3, v1}, StringBuilder.append(int)StringBuilder
107
+ 0x000ba4: 0c01 |0040: move-result-object v1
108
+ 0x000ba6: 6e10 5700 0100 |0041: invoke-virtual {v1}, StringBuilder.toString()String
109
+ 0x000bac: 0c01 |0044: move-result-object v1
110
+ 0x000bae: 6e20 4800 1200 |0045: invoke-virtual {v2, v1}, PrintStream.println(String)void
111
+ 0x000bb4: 8e01 |0048: int-to-char v1, v0
112
+ 0x000bb6: 6202 0500 |0049: sget-object v2, System.out:PrintStream
113
+ 0x000bba: 2203 2400 |004b: new-instance v3, StringBuilder
114
+ 0x000bbe: 7010 5100 0300 |004d: invoke-direct {v3}, StringBuilder.<init>()void
115
+ 0x000bc4: 1a04 9d00 |0050: const-string v4, "num = "
116
+ 0x000bc8: 6e20 5600 4300 |0052: invoke-virtual {v3, v4}, StringBuilder.append(String)StringBuilder
117
+ 0x000bce: 0c03 |0055: move-result-object v3
118
+ 0x000bd0: 6e20 5400 1300 |0056: invoke-virtual {v3, v1}, StringBuilder.append(int)StringBuilder
119
+ 0x000bd6: 0c01 |0059: move-result-object v1
120
+ 0x000bd8: 6e10 5700 0100 |005a: invoke-virtual {v1}, StringBuilder.toString()String
121
+ 0x000bde: 0c01 |005d: move-result-object v1
122
+ 0x000be0: 6e20 4800 1200 |005e: invoke-virtual {v2, v1}, PrintStream.println(String)void
123
+ 0x000be6: 8d00 |0061: int-to-byte v0, v0
124
+ 0x000be8: 6201 0500 |0062: sget-object v1, System.out:PrintStream
125
+ 0x000bec: 2202 2400 |0064: new-instance v2, StringBuilder
126
+ 0x000bf0: 7010 5100 0200 |0066: invoke-direct {v2}, StringBuilder.<init>()void
127
+ 0x000bf6: 1a03 9d00 |0069: const-string v3, "num = "
128
+ 0x000bfa: 6e20 5600 3200 |006b: invoke-virtual {v2, v3}, StringBuilder.append(String)StringBuilder
129
+ 0x000c00: 0c02 |006e: move-result-object v2
130
+ 0x000c02: 6e20 5400 0200 |006f: invoke-virtual {v2, v0}, StringBuilder.append(int)StringBuilder
131
+ 0x000c08: 0c00 |0072: move-result-object v0
132
+ 0x000c0a: 6e10 5700 0000 |0073: invoke-virtual {v0}, StringBuilder.toString()String
133
+ 0x000c10: 0c00 |0076: move-result-object v0
134
+ 0x000c12: 6e20 4800 0100 |0077: invoke-virtual {v1, v0}, PrintStream.println(String)void
135
+ 0x000c18: 1600 ffff |007a: const-wide/16 v0, #-1 // #ffff
136
+ 0x000c1c: 6202 0500 |007c: sget-object v2, System.out:PrintStream
137
+ 0x000c20: 2203 2400 |007e: new-instance v3, StringBuilder
138
+ 0x000c24: 7010 5100 0300 |0080: invoke-direct {v3}, StringBuilder.<init>()void
139
+ 0x000c2a: 1a04 9d00 |0083: const-string v4, "num = "
140
+ 0x000c2e: 6e20 5600 4300 |0085: invoke-virtual {v3, v4}, StringBuilder.append(String)StringBuilder
141
+ 0x000c34: 0c03 |0088: move-result-object v3
142
+ 0x000c36: 8400 |0089: long-to-int v0, v0
143
+ 0x000c38: 6e20 5400 0300 |008a: invoke-virtual {v3, v0}, StringBuilder.append(int)StringBuilder
144
+ 0x000c3e: 0c00 |008d: move-result-object v0
145
+ 0x000c40: 6e10 5700 0000 |008e: invoke-virtual {v0}, StringBuilder.toString()String
146
+ 0x000c46: 0c00 |0091: move-result-object v0
147
+ 0x000c48: 6e20 4800 0200 |0092: invoke-virtual {v2, v0}, PrintStream.println(String)void
148
+ 0x000c4e: 6200 0500 |0095: sget-object v0, System.out:PrintStream
149
+ 0x000c52: 1a01 0000 |0097: const-string v1, ""
150
+ 0x000c56: 6e20 4800 1000 |0099: invoke-virtual {v0, v1}, PrintStream.println(String)void
151
+ 0x000c5c: 6200 0500 |009c: sget-object v0, System.out:PrintStream
152
+ 0x000c60: 1a01 aa00 |009e: const-string v1, "test: cast: ok"
153
+ 0x000c64: 6e20 4800 1000 |00a0: invoke-virtual {v0, v1}, PrintStream.println(String)void
154
+ 0x000c6a: 1200 |00a3: const/4 v0, #0 // #0
155
+ 0x000c6c: 0f00 |00a4: return v0
156
+ ```
55
157
56
158
## Contacts
57
159
0 commit comments