APK Reverse Engineering and Obfuscation for Android Code!

How to Reverse Engineer an APK file to get the actual source code

You can use Dex2Jar to convert APK into a JAR file then open it using JD-JUI

Basic Usage
  1. Download dex2jar from http://code.google.com/p/dex2jar/downloads/list
  2. Extract dex2jar-version.zip to a folder. for example /home/panxiaobo/, C:\
  3. unzip -x dex2jar-version.zip -d /home/panxiaobo
  4. use dex2jar to generate .jar file. dex2jar will generate a file named someApk_dex2jar.jar in the same folder of someApp.apk.
  5.    linux sh /home/panxiaobo/dex2jar-version/dex2jar.sh /home/panxiaobo/someApk.apk
       windows C:\dex2jar-version\dex2jar.bat someApk.apk
  6. use a decompiler to view the source.
Whoops this is so bad! Is it working for any APK ?

Yes, Correct ! Its not problem with Android babay! Its the nature of Java Itself. So we can blame Java for this, =)

Whats the Solution to prevent getting hacked my APKs ?

Obfuscation is the solution. that simply means Confusing the hacker to read the code, at-least less understanding by confusing the Application Logic.

Pro-Guard is the Tool for Android. It will do that scramble for us. =)

 Learn more about how to protect code from hackers!

Google I/O 2011: Evading Pirates and Stopping Vampires

Securing Android LVL Applications - Licensing with Google APIs

End of GSoC thoughtz, OpenSource Software and my project at a glance!

Well, After long time of hard work with coding stuff, GSoC has come to an End ! I am extremely  happy to say about my experience which I got on these last few months during my Google Summer of Code Internship at OpenMRS. I real loved my project and the marvelous Open Source Community I have worked with. By any chance If you are not aware about OpenMRS, the name says what it does, It's a Medical Record Management System made for the developing world. "Write Codes, Save Lives!" how cool intention, isn't it ?

Okay! Now I will tell you bit about my GSoC project. My project is Better Error Submission process for Feedback Module, Basically this is an extension of the Project called General Feedback Mechanism of OpenMRS. The new version of OpenMRS Feedback Module follows some of the cool features in Google Feedback tools. (something like Automated Screenshot capture and edit process within web browser, You may have seen that functions or may have tried it in YouTube or somewhere else on Google Products, if not you can try that from here.) My project is a Web Based Java EE Application, Of course its an OpenMRS Module application. 60% of entire project coded in JavaScript, Jquery (I had real nice time working with these JS stuff lol) 40% of it has coded using Java and related its server side technologies.

OpenMRS Feedback Module v2.0 at a Glance

What's New ?
  • User friendly, Wizard driven Feedback Form
  • Automated Screenshot Capture/Edit process within Web Browser.
  • User-to-User Communication within Feedback System. (Comment System)

About Feedback Module v2.0

Basically Feedback module provides a mechanism for users to communicate with system Supporters/Admins with system-related (non-patient-specific) messages. In this new version of Feedback module provides a really cool feature which will automatically Capture the Screenshot and allow user to edit it (highlight/blackout) within Web Browser itself. So this will reduce the time taken to process Screenshots manually. And the users will able to submit their problem/feedback directly to the most responsible person rather than same Admin. Multiple OpenMRS users can be mapped into a single Feedback Ticket by Admin, So faster problem solving can be happen. User-to-User communication is a great way to interact with other users regarding a Feedback Ticket in this new version of Feedback Module.

You can read User Documentation from below link.
Feedback Module - User Documentation

Installation and Usage

OMOD file is a specialized WAR file which is used as a OpenMRS Module file installed as plugins into OpenMRS System. Installation isn't just straight forward thing, So if you aren't aware of installing OpenMRS modules, I prefer you to watch the Demo Video below to get an idea how it works! :)

I must say! Entire OpenMRS community is really nice and helpful! They are like a family working towards a single goal to make the world even better place to live. They helped me every time when I was in trouble. For my Coding problems to Technical issues I got great support from #openmrs IRC channel and mailing lists.

I can't never forget my Primary Mentor, Gaurav Paliwal. He helped me every time when I was in trouble and guided my path all the time. I have to thank alot for his great commitment done for me.  And my Backup mentor Ben Wolfe, being a Core developer of OpenMRS his advices were really helped for me to get succeed in project work too.

I have completed main goals and objectives of my GSoC project, And now GsoC is over! Well is that all over now....? Nope its not! I am not going to run away from this wonderful place where I learnt lots of Coding, gained lots of knowledge about Open Source software and Community involvement. I'll definitely stay with OpenMRS in future too. I know Thats the true spirit of Open Source software development! 

OpenMRS is a really cool Open Source Project, If you are skillful in Java you should definitely join to it. Not only coding, There are so many other things available to do, If you are skillful in technical writing stuff you can contribute by documenting wiki docs, You can contribute by help testing product, etc. Don't forget your work is not just a task, Thats a hard work done for the sake of Humanity, For the intention of saving lives! You can proud being a part of something huge! Your contribution for this great project will be an indirect help for the well-being of Global Healthcare.

"Write Codes! Save Lives!" Code for Humanity, Join with OpenMRS !

නමෝ බුද්ධාය! Thank god for giving me the strength to successfully complete my Google Summer of Code Internship at OpenMRS.org ! This is one of my lifetime achievement indeed!

"Nothings Forgotten. Nothing's ever forgotten."

- harshadura

HOW-TO Root, Install CWM Recovery, Flash via ODIN with Suitable PIT for Galaxy S2 I9100G

How to ROOT Galaxy S2 i9100G via Zip

  1. Download : Root_S2_i9100G.zip
  2. Place it on the root of SD card. 
  3. Then goto Recovery mode by holding <Home+Power+Vol Up>
  4. Select the Zip.
  5. Install it.
  6. Reboot 
ClockWorkMod for Galaxy S2 i9100G

  1. Download : CWM_S2_i9100G.zip
  2. Place it on the root of SD card. 
  3. Then goto Recovery mode by holding <Home+Power+Vol Up>
  4. Select the Zip.
  5. Install it
  6. Now you will see the CWM recovery instead of Default Samsung Recovery mode
How to flash ROMS for Galaxy S2 I9100G via ODIN
Download ODIN > Odin3-v1.85.zip
Download Galaxy i9100G compatible PIT File > omap4_all_20110627_emmc.pit
  1. Download Odin3-v1.85.zip > Open It!
  2. ADD PIT File (omap4_all_20110627_emmc.pit) into ODIN > PIT.
  3. Add Your ROM into ODIN > PDA 
  4. Turn Off your Phone first
  5. Then goto Download mode by holding <Home+Power+Vol down>
  6. Continue step of the Phone Screen.
  7. Plug in the USB cable > You will notice ODIN recognize it by Yellow filled square .
  8. Click "Start" of ODIN.
...... keep watching and praying for few mins! (hopefully 1-2mins)
... and voila! you just flashed your phone into a new ROM!