Skip to content

Commit adf53ba

Browse files
committed
Remove hexViewer
1 parent 98f7afb commit adf53ba

File tree

100 files changed

+110
-7091
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+110
-7091
lines changed

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,13 @@ An android app which can load .so files to find symbols and vtables.
77
> [MCPE-Dumper v1.2][3]<br>
88
> [ELFIO v3.9][1]<br>
99
> [HexViewer v1.14][2]<br>
10-
> [Elf-Editor v2.0][4]<br>
1110
>
1211
[1]: https://github.com/serge1/ELFIO
1312
[2]: https://github.com/Keidan/HexViewer
1413
[3]: https://github.com/uebian/MCPE-Dumper
15-
[4]: https://github.com/ha1vk/Elf-Editor
1614

1715
# License
18-
Copyright (C) 2019-2021 Иван Тимашков
16+
Copyright (C) 2019-2022 Иван Тимашков
1917

2018
Licensed under the Apache License, Version 2.0 (the "License");
2119
you may not use this file except in compliance with the License.

app/build.gradle

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ android {
1313
minSdk 21
1414
//noinspection OldTargetApi
1515
targetSdk 29
16-
versionCode 31
17-
versionName "3.1"
16+
versionCode 32
17+
versionName "3.2"
1818
ndk {
1919
abiFilters 'armeabi-v7a', 'x86', 'arm64-v8a', 'x86_64'
2020
}
@@ -43,7 +43,6 @@ android {
4343
dependencies {
4444
implementation fileTree(dir: 'libs', include: ['*.jar'])
4545
implementation project(':filepicker')
46-
//implementation project(':hexviewer')
4746
implementation project(':translator')
4847
implementation project(':materialdesign')
4948
implementation 'androidx.cardview:cardview:1.0.0'

app/src/main/java/com/mcal/disassembler/util/HeaderGenerator.java

Lines changed: 81 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,10 @@ public String[] generate() {
128128

129129
for (DisassemblerSymbol symbol : getVtables()) {
130130
try {
131-
String mname = getVirtualMethodDefinition(symbol);
132-
lines.addElement(" " + mname + "// " + symbol.getName());
131+
if (symbol != null) {
132+
String mname = getVirtualMethodDefinition(symbol);
133+
lines.addElement(" " + mname + "// " + symbol.getName());
134+
}
133135
} catch (Exception e) {
134136
e.printStackTrace();
135137
}
@@ -141,17 +143,21 @@ public String[] generate() {
141143
lines.addElement(" //Methods");
142144

143145
for (DisassemblerSymbol symbol : getMethods()) {
144-
String mname = getMethodDefinition(symbol);
145-
lines.addElement(" " + mname + "// " + symbol.getName());
146+
if (symbol != null) {
147+
String mname = getMethodDefinition(symbol);
148+
lines.addElement(" " + mname + "// " + symbol.getName());
149+
}
146150
}
147151
}
148152

149153
if (getObjects() != null) {
150154
lines.addElement("public:");
151155
lines.addElement(" //Objects");
152156
for (DisassemblerSymbol symbol : getObjects()) {
153-
String mname = getObjectDefinition(symbol);
154-
lines.addElement(" " + mname + "// " + symbol.getName());
157+
if (symbol != null) {
158+
String mname = getObjectDefinition(symbol);
159+
lines.addElement(" " + mname + "// " + symbol.getName());
160+
}
155161
}
156162
}
157163
lines.addElement("};//" + className);
@@ -164,8 +170,9 @@ public String[] generate() {
164170
e.printStackTrace();
165171
}
166172
String[] ret = new String[lines.size()];
167-
for (int i = 0; i < lines.size(); ++i)
173+
for (int i = 0; i < lines.size(); ++i) {
168174
ret[i] = lines.get(i);
175+
}
169176
return ret;
170177
}
171178

@@ -178,115 +185,150 @@ private String getObjectDefinition(@NotNull DisassemblerSymbol symbol) {
178185
@NotNull
179186
private String getMethodDefinition(@NotNull DisassemblerSymbol symbol) {
180187
String name = symbol.getDemangledName().substring(disassemblerClass.getName().length() + 2);
181-
if (name.startsWith("~" + className))
188+
if (name.startsWith("~" + className)) {
182189
return name + ";";
183-
if (name.startsWith(className))
190+
}
191+
if (name.startsWith(className)) {
184192
return name + ";";
193+
}
185194
return "void " + name + ";";
186195
}
187196

188197
@NotNull
189198
private String getVirtualMethodDefinition(@NotNull DisassemblerSymbol symbol) throws Exception {
190199
String name_ = symbol.getDemangledName();
191-
if (name_.equals("__cxa_pure_virtual"))
200+
if (name_.equals("__cxa_pure_virtual")) {
192201
return "//pure virtual method";
193-
if (!name_.startsWith(disassemblerClass.getName()))
202+
}
203+
if (!name_.startsWith(disassemblerClass.getName())) {
194204
throw new Exception("No owned vtable");
205+
}
195206
String name = symbol.getDemangledName().substring(disassemblerClass.getName().length() + 2);
196-
if (name.startsWith("~" + className))
207+
if (name.startsWith("~" + className)) {
197208
return "virtual " + name + ";";
198-
if (name.startsWith(className))
209+
}
210+
if (name.startsWith(className)) {
199211
return "virtual " + name + ";";
212+
}
200213
return "virtual void " + name + ";";
201214
}
202215

216+
@androidx.annotation.Nullable
203217
@Nullable
204218
private DisassemblerSymbol[] getObjects() {
205219
Vector<DisassemblerSymbol> symbols = new Vector<>();
206-
for (DisassemblerSymbol symbol : disassemblerClass.getSymbols())
207-
if (isObjectItem(symbol))
220+
for (DisassemblerSymbol symbol : disassemblerClass.getSymbols()) {
221+
if (isObjectItem(symbol)) {
208222
symbols.addElement(symbol);
223+
}
224+
}
209225
DisassemblerSymbol[] ret = new DisassemblerSymbol[symbols.size()];
210-
for (int i = 0; i < symbols.size(); ++i)
226+
for (int i = 0; i < symbols.size(); ++i) {
211227
ret[i] = symbols.get(i);
212-
if (symbols.isEmpty())
228+
}
229+
if (symbols.isEmpty()) {
213230
return null;
231+
}
214232
return ret;
215233
}
216234

235+
@androidx.annotation.Nullable
217236
@Nullable
218237
private DisassemblerSymbol[] getVtables() {
219-
if (vtable == null)
238+
if (vtable == null) {
220239
return null;
221-
if (vtable.getVtables().isEmpty())
240+
}
241+
if (vtable.getVtables().isEmpty()) {
222242
return null;
243+
}
223244
Vector<DisassemblerSymbol> symbols = vtable.getVtables();
224-
for (DisassemblerSymbol symbol : symbols)
225-
if (hasItemInList(symbols, symbol))
245+
for (DisassemblerSymbol symbol : symbols) {
246+
if (hasItemInList(symbols, symbol)) {
226247
symbols.addElement(symbol);
248+
}
249+
}
227250
symbols = moveConOrDesToStart(symbols);
228251
DisassemblerSymbol[] ret = new DisassemblerSymbol[symbols.size()];
229-
for (int i = 0; i < symbols.size(); ++i)
252+
for (int i = 0; i < symbols.size(); ++i) {
230253
ret[i] = symbols.get(i);
254+
}
231255

232256
return ret;
233257
}
234258

259+
@androidx.annotation.Nullable
235260
@Nullable
236261
private DisassemblerSymbol[] getMethods() {
237262
Vector<DisassemblerSymbol> symbols = new Vector<>();
238-
for (DisassemblerSymbol symbol : disassemblerClass.getSymbols())
239-
if (isMethodItem(symbol) && !isVtable(symbol) && hasItemInList(symbols, symbol))
263+
for (DisassemblerSymbol symbol : disassemblerClass.getSymbols()) {
264+
if (isMethodItem(symbol) && !isVtable(symbol) && hasItemInList(symbols, symbol)) {
240265
symbols.addElement(symbol);
241-
if (symbols.isEmpty())
266+
}
267+
}
268+
if (symbols.isEmpty()) {
242269
return null;
270+
}
243271
symbols = moveConOrDesToStart(symbols);
244272
DisassemblerSymbol[] ret = new DisassemblerSymbol[symbols.size()];
245-
for (int i = 0; i < symbols.size(); ++i)
273+
for (int i = 0; i < symbols.size(); ++i) {
246274
ret[i] = symbols.get(i);
275+
}
247276
return ret;
248277
}
249278

250279
private boolean isVtable(DisassemblerSymbol sym) {
251-
if (vtable == null)
280+
if (vtable == null) {
252281
return false;
253-
for (DisassemblerSymbol symbol : vtable.getVtables())
254-
if (symbol.getDemangledName().equals(sym.getDemangledName()))
282+
}
283+
for (DisassemblerSymbol symbol : vtable.getVtables()) {
284+
if (symbol.getDemangledName().equals(sym.getDemangledName())) {
255285
return true;
286+
}
287+
}
256288
return false;
257289
}
258290

259291
@NotNull
260292
private Vector<DisassemblerSymbol> moveConOrDesToStart(@NotNull Vector<DisassemblerSymbol> syms) {
261293
Vector<DisassemblerSymbol> ret = new Vector<>();
262-
for (DisassemblerSymbol sym : syms)
263-
if (isCon(sym))
294+
for (DisassemblerSymbol sym : syms) {
295+
if (isCon(sym)) {
264296
ret.addElement(sym);
265-
for (DisassemblerSymbol sym : syms)
266-
if (isDes(sym))
297+
}
298+
}
299+
for (DisassemblerSymbol sym : syms) {
300+
if (isDes(sym)) {
267301
ret.addElement(sym);
268-
for (DisassemblerSymbol sym : syms)
269-
if (!isDes(sym) && !isCon(sym))
302+
}
303+
}
304+
for (DisassemblerSymbol sym : syms) {
305+
if (!isDes(sym) && !isCon(sym)) {
270306
ret.addElement(sym);
307+
}
308+
}
271309
return ret;
272310
}
273311

274312
private boolean isCon(DisassemblerSymbol symbol) {
275313
try {
276314
String name = symbol.getDemangledName().substring(disassemblerClass.getName().length() + 2);
277-
if (name.startsWith(className))
315+
if (name.startsWith(className)) {
278316
return true;
279-
} catch (Exception ignored) {
317+
}
318+
} catch (Exception e) {
319+
e.printStackTrace();
280320
}
281321
return false;
282322
}
283323

284324
private boolean isDes(DisassemblerSymbol symbol) {
285325
try {
286326
String name = symbol.getDemangledName().substring(disassemblerClass.getName().length() + 2);
287-
if (name.startsWith("~" + className))
327+
if (name.startsWith("~" + className)) {
288328
return true;
289-
} catch (Exception ignored) {
329+
}
330+
} catch (Exception e) {
331+
e.printStackTrace();
290332
}
291333
return false;
292334
}

app/src/main/res/layout/main.xml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@
3232
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
3333
android:layout_width="200dp"
3434
android:layout_height="wrap_content"
35-
android:gravity="center"
3635
android:layout_marginBottom="16dp"
36+
android:gravity="center"
3737
android:onClick="toNameDemangler"
3838
android:text="Demangler"
3939
android:textColor="#FFF"
@@ -45,8 +45,8 @@
4545
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
4646
android:layout_width="200dp"
4747
android:layout_height="wrap_content"
48-
android:gravity="center"
4948
android:layout_marginBottom="16dp"
49+
android:gravity="center"
5050
android:onClick="symbols"
5151
android:text="Symbols"
5252
android:textColor="#FFF"
@@ -97,6 +97,12 @@
9797

9898
</LinearLayout>
9999

100+
<TextView
101+
android:layout_width="match_parent"
102+
android:layout_height="wrap_content"
103+
android:gravity="center"
104+
android:text="(C) 2019-2022 Иван Тимашков" />
105+
100106
</LinearLayout>
101107

102108
<LinearLayout

hexviewer/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

hexviewer/build.gradle

Lines changed: 0 additions & 39 deletions
This file was deleted.

hexviewer/proguard-rules.pro

Lines changed: 0 additions & 21 deletions
This file was deleted.

0 commit comments

Comments
 (0)