Quote:
Originally Posted by nrapallo
Now what else could be hacked?
|
Let's see what else, within that mobipocket.jar (system v2.12), looks interesting:
be.class - file-types supported
Code:
public final Vector ck() {
String[] strings
= { ".prc", ".pdb", ".mobi", ".txt", ".htm", ".html" };
return a(hF, strings);
}
Q.class - guide items supported
Code:
private void W() {
cw = null;
cx = null;
aQ[] var_aQs;
if (ac.aw().as().Z()
&& ((var_aQs = cu.dW.cQ()) != null && var_aQs.length != 0)) {
System.out.println("find the guide icons,guide items number:"
+ var_aQs.length);
for (int i = 0; i < var_aQs.length; i++) {
System.out.println("GuideItem:name=[" + var_aQs[i].gz
+ "],title=[" + var_aQs[i].A + "]");
if (var_aQs[i].gz.equalsIgnoreCase("toc")
|| var_aQs[i].A.equalsIgnoreCase("Table of Contents"))
cw = var_aQs[i];
if (var_aQs[i].gz.equalsIgnoreCase("start")
|| var_aQs[i].gz.equalsIgnoreCase("other.ms-firstpage")
|| var_aQs[i].A.toUpperCase().startsWith("START READING")
|| var_aQs[i].A.toUpperCase().startsWith("BEGIN READING"))
cx = var_aQs[i];
}
}
}
k.class - search dictionary pop-up
Code:
public final void p() {
if (hD == null) {
hD = new bz(hE.getGraphics(), "test", bv.il, null);
ap = new L("words list", new Dimension(704, 560),
new Point(32, 32), new w());
ap.ai();
aq = new bc(null,
"/com/irex/mobipocket/resources/btn_start_search.png",
true, hE, new Dimension(102, 44), new Point(634, 610));
aq.q(2);
as = new bm(X.getString("Search String: "), new Dimension(588, 44),
new Point(32, 610));
as.q(2);
as.ai();
at = (new cA
((X.getString
("Enter the first characters of a word and click on the search button")),
new Dimension(704, 12), new Point(32, 662)));
...
X.class - load initial mobipocket settings
Code:
public static boolean ah() {
Properties properties = new Properties();
try {
properties.load(new FileInputStream("mobi.properties"));
} catch (Exception exception) {
Exception exception_24_;
(exception_24_ = exception).printStackTrace();
return false;
}
dq = properties.getProperty("reader_default_font");
if (dq == null)
dq = "Sans";
String string;
if ((string = properties.getProperty("baseclass_res_reader"))
== null) {
System.out.println
("can't find the key [baseclass_res_reader] in property file:mobi.properties");
return false;
}
...
bK.class - hmmm, ... what's an oeb:livebook?
Code:
private boolean b(cB var_cB) {
if ((b = var_cB.m((short) 59)) != -1) {
ai = 3;
return true;
}
if ((gg = var_cB.n((short) 97)) != null) {
String string;
if ((string = gg.toLowerCase()).startsWith("http")) {
ai = 1;
return true;
}
if (string.length() > 0 && string.charAt(0) == '$') {
ai = 30;
return true;
}
if (string.startsWith("oeb:livebook")) {
ai = 12;
return true;
}
}
That's it for now!
I'm really looking forward to finding the HTML "table" processing code within one of those classes so that I can attempt to CORRECT a bug when internal hyperlinks are within a table i.e like a 'Table of Contents' in many Gutenberg ebooks. In this mobipocket java reader, those hyperlinks DO NOT work and since there is no reason that they shouldn't work, this may be my
Number One hacking priority...
if I can locate it, that is...