Need some input about getting in over my head lol

s810car

Active Member
190
12/09/16
97
Thread Author
(tl;dr go to the large bold header to see my plan if the prologue gets long winded lol)

I'm about to start my most ambitious and probably craziest programming adventure yet, I'm actually scared I may not even finish it but want to at least see if theres as much interest in it as i think there will be. My question is primary to the modders (@iAlex @icry4u talking to you regulars in particular) but its also to newbs especially interested in beginning/learning to mod. I will probably address this to a few forums but this is my first one that I decided to get active like this so I appreciate the opportunity to even address this. Input, ideas , or just telling me im nuts is appreciated lol

My background is in website design/administration, I've had a love for hacking into code since my early teens (36 now), and didn't really get into higher level languages for awhile, stuck to php/html/ etc, every once in awhile i'd get into a project using ajax/cURL and maybe a linux script or 2 every now and again. I mean I'd do some text based mods on old pc/dos games but so does everyone at some point :) I had my first taste of modding playing around with some flash chat script for my old site (my first ever decompile yay!), but really my first code orgasm was a modification to my old php/mysql chat client which after deciding it needed to be more integrated with not just my forum, but all the scripting function I built into my site. Working with some java servlets and some open source stuff I built my own instant messenger similar to yahoo messenger only for my members along with full integration of my important scripts on my site, and being it was a site to place sporting bets, online poker staking, and a small marketplace that was no small feat :D

Why am I even explaining all that? Mostly to say I bite off more then I can chew constantly, and want true opinion on my project im about to start, because I don't want to stop with a half done project, I see too many of those nowadays with this. So now my proposal....

My Idea
So here's the goal: I have just started in the brainstorming phase of an All in One true Android app and (v2 idea) ROM/kernel kitchen. The goal is to be able to have access to EVERY possible tool currently needed to modify those resources in one single product. The features would be:
  • Open source: Most important aspect to me of all. I plan on using and combining many open source libraries to build this product, and want the modder communities to be able to add/modify as they see fit. Even more so with google closing as much open source to their lines as they can, keeping these tools available and people interested in learning to mod excited to use an easy to start with tool, with all the horsepower for the advanced modders as well
  • Complete and up to date toolset: Every single product I've seen available has at least one if not both these issues: They have either important functions missing (disassemblers without edit function?!? wtf) or they are abandonware, great tools with old libraries that are not working as well as they should, mostly due to constant change in phone architecture (great example coming to my mind is Virtuous Ten Studio). Most are closed source with this problem so they died out (or open source with NO accessibility beyond command line leading to my next bullet...)
  • IDE with User/newb friendly GUI: Using a similar layout to Eclipse IDE (current idea atm) so all windows will be visible and have a usable workspace, with toast help messages (again long term planning there, decent documentation is secondary to having the whole toolset available).
  • Planned tools: I will be seeking out open source libraries for:
    • APK extraction: thru ADB or pulling the apk from apkpure or downloading from play ala apkfetch
    • APK decompression: Obv there
    • APK disassembly: Dex2jar, deodex, and baksmali, so files to arm (open source IDA substitute), NET unity dlls to il (dnspy), SWF decompiler for the odd flash files, OBB where available
    • Decrypting tools: need more input for this obv, but things like xor calculating, il2cpp, luac, etc
    • Editors: COMPLETE editors for hex and plaintext with full syntax highlighting in all languages, regex search replace functionality with tools to both help look up an opcode you are editing to help newbs understand the function, and instant (well as much as possible) compilers so you can write in java or c# and get the opcode translation to copy paste. Also XML editing for manifest, and newb quick functions like "remove ads/root checking/etc.
    • Asset editing/collecting: Allow apk unzipping without disassembly for image or sound editing for a quick drop back in without changing signature. Also full browsing of assets including unity assets in split files ala Unity Studio
    • Repacking apk: recompile the libraries, smali, zipalign, and sign apk while simultaniously making an unsigned apk prepatched ala lucky patcher license check workaround, saving a releasers time
  • File analysis: This could also be in planned tools but theres a couple specifics about this. Its for a couple of functions, A: Complete file reader to be able to examine hex code for crypto, and PE header reader/editor. I know thats controversial for a couple reasons but in general the tools available in a PE forensic tool like Detect it Easy are completely necessary imo, and short of making their own script no one is going to be 'repairing' those headers unless they know what they are doing manually making any controversy a moot point
  • Plug-in capability: This one (besides having all tools in one program) has got me the most pumped to do this. The plan I have is taking an idea from my old vbulletin forum software: I plan on going into most of the libraries and adding hooks to use at various logical breakpoint locations. This will allow any modder to easily inject their own code via plugins they create (and if this went like I would wish it too, be able to publicly release as well). I'm thinking improved logic for disassembly, theming, custom syntax, anything really.
I know that was an exhausting read, I appreciate it if you made it this far, but now you see why I'm saying I may be looking to make more headaches for myself then necessary. So if this got your attention at all, I would love any feedback including what I may have missed in my plans, if you have any interest in a product like this or not, if I sound crazy :D or if you have an interest in working with me further along the production timeline (I will have a github repository once I have some work done so forking and working alongside will be possible further down)

Thanks again for reading!

 
Holy. . . . XD

Thats a really awesome idea but at the same time ... Crazy AF !

Just the idea of having a tool that can do all this things is awesome ^^

Yoi can also want to add compatibility with .json files and a few more ... What I really like is the idea of decompiling luac files , I usually avoid lua games .

What I'd like to suggest you is ... Maybe you can find a way to get the core of a game , like when we use gdb & gcore .
That would be really cool ^^

(I had 2 coffees while reading xD)
 
No silver bullet. Once you've got one tool fits all, then you're outdated already. Swear, Swiss army knife is not as hot as it used to :)

Too big areas to handle imho.

Good luck, hopefully you've got this going, and not ended up like those abandoned projects.
 
Yea my problem is too much abandonware out there now, and while I'm really at the infant stages the plan is a lot of already made libraries so i don't have to remake what's already available.
@iAlex honestly just forgot those, the json is an idea but then i get into wanting a packet sniffer/ manipulator, that's probably more than even i want to add lol :) although as a plugin maybe...
And Yea forgot gdb gcore and emulator support for debug was on my list too
 
I'm not a l33t haxor nor a beardie guy that stuck on programming. I have workspace folder and there is around 50 project abandoned.
Not to get your hope down but here is my $0.02. I like the idea of a complete tool set, but i'm more of nix user that dislike the purpose of it. Basically, i'll hand pick what tools i need for reversing. A good place to look at awesome-ctf/README.md at master · apsdehal/awesome-ctf · GitHub
About the complete IDE idea, a famous stackoverflow member said "Think your OS as an IDE, would you really need a decent one?". Not to offend for not using IDEs, coz i'm using Intellij myself.
Lastly, about the all hail disassembler, decompiler, and debugger. It might be tricky, yes. I could say, you need a huge mass for it. You might like to see radare2.

tl;dr. Its good but not for a long term. Better to "disclose" another tutorial that you might not have seen on internet yet. Useful for now and later.
 
I'm not a l33t haxor nor a beardie guy that stuck on programming. I have workspace folder and there is around 50 project abandoned.
Not to get your hope down but here is my $0.02. I like the idea of a complete tool set, but i'm more of nix user that dislike the purpose of it. Basically, i'll hand pick what tools i need for reversing. A good place to look at awesome-ctf/README.md at master · apsdehal/awesome-ctf · GitHub
About the complete IDE idea, a famous stackoverflow member said "Think your OS as an IDE, would you really need a decent one?". Not to offend for not using IDEs, coz i'm using Intellij myself.
Lastly, about the all hail disassembler, decompiler, and debugger. It might be tricky, yes. I could say, you need a huge mass for it. You might like to see radare2.

tl;dr. Its good but not for a long term. Better to "disclose" another tutorial that you might not have seen on internet yet. Useful for now and later.
No i appreciate all input, and i forgot one thing i was going to mention, the whole idea was for an Windows ide, i think 'nix could come latest but really if you already usev that setup, in general you're already more experienced and are particular about the tools you use :) thanks!
 
Excited for this if it happens :D
Working on it :) basically right now I'm doing the hardest part ( in theory) first, the GUI. Since almost all features i want in it are already out in open source it becomes a matter of dropping the libraries in and configuring them to work with it, the main tools are all java so that's what im working with, as long as the .NET tools are friendly i should have an alpha build in about 4-6 weeks depending on IRL timeline, since this is all during my free time. Thanks for the support!
 
Working on it :) basically right now I'm doing the hardest part ( in theory) first, the GUI. Since almost all features i want in it are already out in open source it becomes a matter of dropping the libraries in and configuring them to work with it, the main tools are all java so that's what im working with, as long as the .NET tools are friendly i should have an alpha build in about 4-6 weeks depending on IRL timeline, since this is all during my free time. Thanks for the support!
if you need a designer hit me up, my uncle works for a coding company and he knows people that designs GUI's.
 
if you need a designer hit me up, my uncle works for a coding company and he knows people that designs GUI's.
Appreciate the offer but i probably got it lol, trying to do this with the only cost being my time, plus the ultimate goal is fully open source so any special customization i can't ( or won't) do will be able to be easily done by the community, that's what's taking a lot of my time anyways ( trying to keep the code "somewhat" clean and to java standards isn't as quick as my standard slop code :D )
Thanks!
 
@778Versailles btw given the interest you have shown feel free to pm me any ideas/ special requests that you would be interested in seeing this tool have, best to get feedback before i have a working model to be able to consider them

That goes for anyone else interested in this as well obviously.
 
just an update on this, the editing tool is all but complete as far as it works for editing, has syntax highlighting and code folding, possibly auto complete functions with macros (is in library but haven't tested and not really interested as that's higher language code, editing most apps requires editing machine code so it's useful mostly for people using as an editor, not for modding) and allows save, load and a basic folder tree to traverse from the parent of the opened file thru all child folders (important for going thru apk after unzip).
right now doing some code cleanup and basic property settings so it uses default directories, etc. afterwards I'll be preparing to setup the git and start dropping in libraries for its primary functions.

anyone interested in being involved in testing the alpha build should post here, along with at what point you are interested in (example i will have a fully functional text editor for code within a month give or take, but if you want to wait until it's useful for actual modding with its own dex2jar, baksmali, ilspy etc. implementations it'll be a few months possibly) and I'll get you a usable jar to run on, and even more if interested in getting involved code wise post and when i have the git repos up I'll let you know and give proper credit for any assistance either way, from simple credits in docjar all the way to shared donations that could possibly be received when launched on XDA and similar sites. disclaimer :there is obviously no guarantee of profiting from this project and my goal was never money anyways, it's to offer an open source app to the modding communities i enjoy being a part of, that can be maintained indefinitely. i will not be promoting this as an attempt to get money nor use adverts, etc so don't even try to get involved if that's your goal.

i will post some images up when I get the chance, and thanks for the support!
 
for those following my progress on this, just hit a major setback :( my computer just failed, and i mean major as in looks like I'm going to be in the market for a new one, sigh
fortunately im one of those crazy backup everything i can anywhere i can so even though it'll be a few weeks before my computer is up, even if i can't recover the hard drive i have a full copy of my source in my phone lol ah well I'll update again when i can start back onto it, thanks all!
 
just a small update, FINALLY got my new computer so this project will be started up again shortly, going to take a couple days to transfer all my files to my new setup and refamiliarize myself with my code and where i left off and start working on it again this weekend, hopefully get a timeline for my balpha release soon. Thanks for the support!
 
FINALLY getting close enough to at least put a screenshot out
This is getting close to alpha release, now the features available at that point will be slim, but this is an ongoing project. at this point it will include ability to extract/repackage apks, disassemble into smali byte code, text and hex editing, support for over 20+ file formats for syntax highlighting (in case you wish to use as a notepad+ replacement or dig through other source code outside of apks), one of the best syntax highlighting for smali (it better be given how long that part took lol), a console display which currently doesnt log much, as this gets closer to beta release itll have a lot more function,etc, ill have a full feature log once the alpha build is released.
Unfortunately, for this early release im not going to have time to add the C# reflection yet, so this wont work for unity mods (that is first on the update list so it will be soon). I'm mainly pushing an early release to get some on the field bug testing, im expecting a bit at first so want as many eyes as possible, hoping to have a mostly bug-free all inclusive modding IDE within the years end :)
Screen details the graphic design along with an open smali file to see the highlighting difference compared to most others
Capture.webp
 
One Last update before the first release (alpha version 0.3 is first stable build that I will be able to release). Again, this is a VERY early build and will start with the basics for editing apks such as your standard apktool/dex2jar/baksmali capability, as I get feedback from that to help fine tune the program I will be adding the tools I really want to see available to consider an all in one tool such as a c# decompiler, ilspy-like refactoring in both c# and smali/java, arm disassembly options with pseudocode (ala hex-rays), file header inspection tools (ex. COFF headers), and start working on getting the harder tools to work together with it such as il2cpp and gbd or equivalent debugger/dump tools.

SO, what do I have so far? a decent text editing tool for code with full syntax highlight, GUI style similar to eclipse/virtuos ten studio/ other type IDEs, and capability to view/edit/save files in hex mode as well. Once those are finalized I will put the basic tools in and barring any complications there, be ready in about 2 weeks :D

New screenshot time!
ExampleA.webp Basic editor displaying a file in smali syntax
ExampleB.webpSame file, but hex mode
ExampleC.webpHex again, different UI skin (currently about a dozen or so choices, gotta clean some up in future updates though)
ExampleD.webpFinally, back to regular mode with a 3rd skin

Thanks for all the support!
 
This is looking so nice. I hope you can fulfil all your ambitions with this project @s810car. Best of luck!

Looking forward to the alpha version. ;)
 
Welp might run into delays pushing me to June 15th or earlier, so guess more screenshots is the option i got for now :)
20170525_125940.webp
basic smali editor, default skin20170525_130023.webp
hex editor, nebula brick wall skin20170525_130129.webp
file menu (may be incomplete for alpha launch) dust coffee skin
20170525_130149.webp
search/replace file iterator with regex, replace all, etc. dust coffee skin20170525_130335.webp
new project wizard, skin defaults when loaded (small bug I'll get to eventually, low priority atm), has drag and drop or browse to file
20170525_132925.webp
project wizard confirmation page with BLEACH brave souls as example

hopefully next update will have some files, thanks for the support :D
 
Back
Top Bottom