• What are you working on? v16
    5,004 replies, posted
[QUOTE=RyanDv3;28803109]I have an apk here that I unpacked, but gedit is saying it can't detect the encoding...[/QUOTE] It's a binary format. The XML is compiled, as I suspected, but I wasn't entirely sure (which is exactly what I originally said). The reason I suspected it was because Android uses the XmlPullParser approach to XML parsing, which is designed to work in this way for performance. Open the file in a hex editor or a less smart text editor than gedit and you will see that it does not contain XML code.
[QUOTE=jA_cOp;28802797]Please just stop talking. It's painful to read.[/QUOTE] As someone who doesnt know a lot about java, can someone sum up exactly why geel's incorrect?
[url=http://code.google.com/p/hqx-sharp/]hqxSharp is up[/url], released under the LGPL v3.0 and with full XML documentation for public members. I updated the Resizer to reflect this, so you can get all current features here: [url]http://dl.dropbox.com/u/5013896/forum/Facepunch/Programming%20WAYWO/Tamschitty%20Resizer%200.1.zip[/url] [editline]Arghhhhh![/editline] No, actually I just broke it. Wait a sec. [editline]Phew.[/editline] Ok, works again.
[QUOTE=jA_cOp;28803168]It's a binary format. The XML is compiled, as I suspected, but I wasn't entirely sure (which is exactly what I originally said). The reason I suspected it was because Android uses the XmlPullParser approach to XML parsing, which is designed to work in this way for performance. Open the file in a hex editor or a less smart text editor than gedit and you will see that it does not contain XML code.[/QUOTE] You're right, it seems odd to me though, saving in a binary file format, and giving it a .xml extension.
[QUOTE=Darwin226;28802719]Please tell me what that is. I love your math stuff and hate when I don't understand what's going on.[/QUOTE] Do you know what fuzzy logic is? I don't, but I imagine it's similar to what I'm doing
[QUOTE=geel9;28803041]Here you go. I just decompiled my own application. I got the full source.[/QUOTE] I'm sure the fact that those class members were part of the class' public interface had nothing to do with it. Can you stop being arrogant now? It doesn't work well when you're completely wrong about what you're being arrogant about.
[QUOTE=ThePuska;28803451]Do you know what fuzzy logic is? I don't, but I imagine it's similar to what I'm doing[/QUOTE] Fuzzy logic? Hmm.. lets add all these variables together and keep dividing them by something until they fit into some sort or range that i want
[QUOTE=Icedshot;28803186]As someone who doesnt know a lot about java, can someone sum up exactly why geel's incorrect?[/QUOTE] Sure, [QUOTE=jA_cOp;28803065] A disassembler performs disassembly. Disassembly gives you assembly notated code. A decompiler produces guessed source code from disassembled code. None of this produces the original, readable source code, and none of this helps RyanDv3 in the slightest.[/QUOTE] To elaborate on that for a bit: The first link he posted was for a disassembler for Dalvik VM bytecode (converts bytecode in a binary format to a readable text format). Disassembled code is very useful for reverse engineering, but RE is difficult, tedious work and not suitable for learning stuff about making Android applications. In particular, you have to be experienced with making Android applications for reversing one to make any sense. He then linked to a dex2jar converter, which converts Dalvik's bytecode to the canonical Java bytecode. I'm not sure where he was going with that, but if anything, there are probably more [I]decompilers[/I] (and more sophisticated) for .jar than .dex. Which brings me to the next point, decompilation, which is the act of turning compiled code into source code. But during the compilation process, a lot of information about the source code is lost. Decompiling a program that wasn't compiled with debug symbols included will get you almost nowhere and it's more of a novelty thing to do, because for RE work, working with the disassembly is much more useful. Sometimes people use decompilers because they're more experienced with the source language than assembly language, and with languages using intermediary bytecode, like .NET and JVM languages, this can make sense because the bytecode is made partly with the specific language(s) in mind, which means the decompiler can build a more accurate representation of the original source code. With compilers targeting native code, for example most C and C++ compilers, the resulting code is designed entirely with the machine in mind (hence "machine code"). Decompiling machine code does not only require a lot of knowledge about the specific compiler that was used, but if the code was heavily optimized, even more information is lost. With .NET and JVM languages you don't get this problem to the same degree because optimizations are mostly done at runtime (during JIT compilation). Getting back on track; suggesting that the source code of a released .apk (compiled and packaged application) is extractable is simply false, and the closest thing you get isn't remotely close enough to be useful.
[QUOTE=ThePuska;28802691]I noticed that my math for multiplying two gaussian functions was wrong, but now it's fixed Using the same sets, A and B: [img_thumb]http://img827.imageshack.us/img827/1166/gaussaandb.png[/img_thumb] yeah there's a local maximum at x=-1.5, it's just [i]very small[/i][/QUOTE] That's really cool. I take it this is the probability set thing you mentioned in the other thread? If I'm understanding what you are doing properly, it almost sounds like fuzzy sets: [url]http://www-bisc.cs.berkeley.edu/Zadeh-1965.pdf[/url] Is this still being made in Haskell? Or did you scrap that?
Also (if anyone has a clue) how legal is making a mobile app for a website you don't own?
[QUOTE=RyanDv3;28803685]Also (if anyone has a clue) how legal is making a mobile app for a website you don't own?[/QUOTE] Get permission from the site owner and should be 100% legal?
[QUOTE=geel9;28802771][highlight](User was banned for this post ("Flaming" - Overv))[/highlight][/QUOTE] [QUOTE=geel9;28344527]Oh god yes I'm so glad we have a mod in the programming forum now.[/QUOTE]
[QUOTE=jA_cOp;28803537]Decompiling a program that wasn't compiled with debug symbols included will get you almost nowhere and it's more of a novelty thing to do.[/QUOTE] I don't have much experience with RE and decompiling. But I'm pretty sure Java leaves stuff like symbol names and even line numbers in release .class files. I have no idea if that's the case with .dex files though.
[QUOTE=CammieDee666;28803798]Get permission from the site owner and should be 100% legal?[/QUOTE] Obviously, but my question is if I [i]don't[/i] have permission. Also, more importantly than if it's legal, will it result in my app being taken off the android market? I haven't decided yet how I want to monetize this app, but I'd like to know my options.
[QUOTE=Shanethe13;28803676]That's really cool. I take it this is the probability set thing you mentioned in the other thread? If I'm understanding what you are doing properly, it almost sounds like fuzzy sets: [url]http://www-bisc.cs.berkeley.edu/Zadeh-1965.pdf[/url] Is this still being made in Haskell? Or did you scrap that?[/QUOTE] I moved to C#. I had just stacked lambdas on top of each other in Haskell. It worked accurately and it had the interesting property that every operation could always be reversed, as no information was ever lost. But that also meant that every operation increased memory use and decreased performance. Now the functions are wrapped in structs and most of the calculation is done with metadata about the functions rather than the functions themselves. edit: Reading that pdf, it's extremely similar to what I'm doing. However my approach has some small but important differences - I don't calculate the union of two sets with max, for example - I add them and normalize the result. Which makes my results probabilistic. If two sets A and B share one member and have some other members, their union has the highest value near the member they had in common, and lower peaks around the other members. I'm not sure if it's desirable or useful. I'll have to use it for something when I'm done with it. We'll see then.
[QUOTE=Robber;28803941]I don't have much experience with RE and decompiling. But I'm pretty sure Java leaves stuff like symbol names and even line numbers in release .class files. I have no idea if that's the case with .dex files though.[/QUOTE] From looking at the thread that geel9 linked earlier, it looks like the local variables are just guesses.
[QUOTE=Dlaor-guy;28799902]That's interesting... I should read up on more hidden features of Lua. Also, anyone remember this? [img_thumb]http://i33.tinypic.com/2d7wyyr.png[/img_thumb] Someone should make a new version with more people on it :v:[/QUOTE] I would, but I'd be too tempted to but Bjarne Stroustrup's head somewhere.
[QUOTE=Robber;28803941]I don't have much experience with RE and decompiling. But I'm pretty sure Java leaves stuff like symbol names and even line numbers in release .class files. I have no idea if that's the case with .dex files though.[/QUOTE] I did a test. I grabbed an apk from my phone (n64oid), extracted classes.dex and ran it through dex2jar, then inspected the jar in JD-GUI (some quick research suggested these were currently the best tools). Some code is almost useful due to heavy use of the SDK: [img_thumb]http://filesmelt.com/dl/dex2jar-jdgui.png[/img_thumb] Most code however, is perhaps best viewer as annotated assembly: [img_thumb]http://filesmelt.com/dl/dex2jar-jdgui2.png[/img_thumb] I don't have a setup for desktop Java applications on this machine for testing, but I'm sure it's more readable.
Made this focus system for my game, "Arcane, Stealth & Power". [img]http://i.cubeupload.com/051bJ9.png[/img]
[QUOTE=jA_cOp;28804288]I did a test. I grabbed an apk from my phone (n64oid), extracted classes.dex and ran it through dex2jar, then inspected the jar in JD-GUI (some quick research suggested these were currently the best tools). Some code is almost useful due to heavy use of the SDK: [img_thumb]http://filesmelt.com/dl/dex2jar-jdgui.png[/img_thumb] Most code however, is perhaps best viewer as annotated assembly: [img_thumb]http://filesmelt.com/dl/dex2jar-jdgui2.png[/img_thumb] I don't have a setup for desktop Java applications on this machine for testing, but I'm sure it's more readable.[/QUOTE] Is it possible that n64oid is obfuscated though?
[QUOTE=RyanDv3;28803988]Obviously, but my question is if I [i]don't[/i] have permission. Also, more importantly than if it's legal, will it result in my app being taken off the android market? I haven't decided yet how I want to monetize this app, but I'd like to know my options.[/QUOTE] As long as you don't use their content and/or copyrighted designs I would imagine you'd be fine. As long as you're just streaming content from their site to a different layout in your app, I can't see them having a legal basis for suing you for laying out their content in a different format.
[QUOTE=gparent;28804186]From looking at the thread that geel9 linked earlier, it looks like the local variables are just guesses.[/QUOTE] I guess you are right.
[QUOTE=RyanDv3;28803988]Obviously, but my question is if I [i]don't[/i] have permission. Also, more importantly than if it's legal, will it result in my app being taken off the android market? I haven't decided yet how I want to monetize this app, but I'd like to know my options.[/QUOTE] I can't comment on the legality, because IANAL, but as far as ethics go as long as your app doesn't use more bandwidth than you would use normally browsing the site then I don't see a problem.
You can now submit levels for my game which is in a nonplayable state but it's nice to watch balls roll around anyway! [url]http://stabyourself.net/PhysicsR15.love[/url] Link to upload form (It'll later be ingame) is in the menu screen because there are no checks if it's an actual code and I don't want too many gibberish entries. Please upload a level or two so I don't feel as alone. It's also instant which is nice, so everyone will be able to see your level immediately.
[QUOTE=Maurice;28804830]You can now submit levels for my game which is in a nonplayable state but it's nice to watch balls roll around anyway! [url]http://stabyourself.net/PhysicsR15.love[/url] Link to upload form (It'll later be ingame) is in the menu screen because there are no checks if it's an actual code and I don't want too many gibberish entries. Please upload a level or two so I don't feel as alone. It's also instant which is nice, so everyone will be able to see your level immediately.[/QUOTE] [img]http://gyazo.com/c47a3c2b3e8ac1bfd30afe13619d4b56.png[/img] Not sure what I did. Was just playing around with the map editor and suddenly. Edit: Wait. It happens when I press D and there's a ball on the level.
Oh you pressed D. Don't press D. It's the self [B]D[/B]estruct button. (Actually it turns on shape [B]D[/B]ebugging which I haven't used in a while so I guess it broke at some time) [B]D[/B]isabled D now.
[QUOTE=Robber;28804542]Is it possible that n64oid is obfuscated though?[/QUOTE] Yes, that is possible. I found stuff like this in there: [csharp] while (true) { return; b = localIntent; showDialog(1); } [/csharp] [csharp] for (boolean bool = super.onContextItemSelected(paramMenuItem); ; bool = true) { return bool; if (!localFile.delete()) continue; int j = bool.position; b(j); } [/csharp] Which means dex2jar or JD-GUI fucked up, which [I]could[/I] be the result of obfuscation. As for the symbols, it looks like public symbols and overrides of known symbols are retained. All the internal classes and many non-public methods are marked final, which could also indicate obfuscation. But it's more likely that it's an optimization (calls to methods in a final class which type is statically known can be done directly instead of through the vtable), since many classes that could be marked final, aren't. I guess I'll try looking at another application for comparison.
[QUOTE=Ortzinator;28804780]I can't comment on the legality, because IANAL, but as far as ethics go as long as your app doesn't use more bandwidth than you would use normally browsing the site then I don't see a problem.[/QUOTE] Well, I will be unintentionally cutting into their ad revenue. I imagine for that reason they'll put up a fuss, which isn't something I want to deal with.
[QUOTE=Namelezz!;28804412]Made this focus system for my game, "Arcane, Stealth & Power". [img_thumb]http://i.cubeupload.com/051bJ9.png[/img_thumb][/QUOTE] Oh, I remember this! Nice work
[QUOTE=Namelezz!;28804412]Made this focus system for my game, "Arcane, Stealth & Power". [img_thumb]http://i.cubeupload.com/051bJ9.png[/img_thumb][/QUOTE] It's been forever since you've talked about this! How is it doing?
Sorry, you need to Log In to post a reply to this thread.