elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Tutor 01 Cracking bhuio English Android APK
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tutor 01 Cracking bhuio English Android APK  (Leído 2,944 veces)
Palm Reversing

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Tutor 01 Cracking bhuio English Android APK
« en: 31 Diciembre 2014, 22:35 pm »

Programa: Buhio  
Protección:(X)Serial   (X)KeyFile Server
Descripción: APK traduce frases de ingles al español
Objetivo: Hacer a que no pida la licencia y no pida que lo compremos si es que lo instalamos en otro teléfono
Dificultad:(X)NewBies   ( )Intermedio   ( )Avanzado   ( )Master   ( )Güru

DOWNLOAD: www.bhuio.com

link de descarga de tutorial completo en html con herramientas y APK a estudiar, y puedas regresar a este post a opinar

https://www.mediafire.com/?qk2o88o2qj0u51h

tamaño 30 megas


Herramientas:Ultraedit 16c para parchar los codigo hexadecimales, APK Manager 5 para decompilar el APK, Winrar, Ida Pro 6.5 , Un cererebro con coheficiente intelectual de 30, programacion en java (Obligatorio), smali2java (Alternativa para que se nos muestre el codigo fuente nativo APK en formato JAVA nativo)

Palm CRACKER:palspanishtutor, Post Nubila
FECHA:    Jueves 31 Diciembre de 2014


 INTRODUCCION
 
Muchos pensaran en que es mas facil rootear el telefono o instalar luckypatch, ademas el rootear el tefono tengo entendido que desconfigura el android market, y se desconfigura las tarjetas SIM,  pero da la casualidad que los telefonos con los que cuento no pueden ser rooteados, y supongo que esto mismo le esta pasando a millones de usuarios que ahora leen este tutorial, asi que solo nos queda hacer una aplicacion crackeada  nosotros mismos, si lo logramos nuestro objetivo estaremos haciendo un crack limpio y sin virus que es lo mejor, y lo excelente es que estaremos introduciendo a los nuevos crackers a esta nueva plataforma android que ha sido tan popular en esta decada en todo el mundo


Despues de varios años de haber dejado el cracking palm Os por el año 2000 segun recuerdo, en el año 2010 existio una plataforma mobil para telefonos celulares llamada Android y va por la version 5.0 y el sistema operativo del 90% de los telefonos a nivel mundial , decidi comprar un telefono de esos que les llaman inteligentes pues graba video, reproduce video en ultra alta definicion, se puede ver la teevision HD, tiene acceso a internet, tiene office , y se pueden leer documentos en PDF, y escuchar musica por horas,  decidi darme de alta en android market y compre una aplicacion de android market llamada Buhio , segun dice traduce de ingles a español, y hay muchas aplicaciones traductoras multiidiomas de esta casa de software , cree entender que la proteccion es la misma , asi que procedi a respaldandar el APK descargado y comprado  de la pagina de android Market, y queriendo instalar en un telefono celular alterno me tope con el siguiente mensaje, el cual me molesto


 



AL ATAQUE
Es necesario saber lo basico de lenguaje java, si no lo saben busquen un tutorial en google o comprensen un buen libro de java para dummies, despues regresen a este tutorial









Primero copiarmos el APK a la carpeta "place-apk-here-for-modding" dentro de la carpeta principal de APK Manager



Abrimos la aplicaciona APK Manager v5.0 presionando el icono Scrip , en windows 10 lo abrimos como administrador para que APK Manager tenga derechos de administrador.



Nos apaerecera la siguiente ventana



Seleccionamos la opcion 22 para indicarle al programa que aplicacion es la que vamos a trabajar damos enter y aparece



Damos enter
Seleccionamos la opcion 1 para que se extraigan los archivos en la carpeta por default

C:\Apk manager 5.0\projects si echamos un vistaso hay se encuentran los archivos descomprimidos, me preguntaran porque no use winrar directamente o winzip, la respuesta es simplemente por que este paso es necesario para poder

desensamblar los archivos y puedamos ver el codigo fuente



dentro el del menu principal de APK Manager presionamos el paso (9 Decompile APK) que sirve para decompilar los archivos (Es similar a windows 8 como si desensamblaramos un ejecutable con Hex-Rays IDA Pro Advanced v6.1 Retail)

Por cierto habra que echar un vistazo a ver si ya hay una version IDA que pueda desensamblar APK's (Lo veremos mas adelante)

Nuestra carpeta "Projects " cambian automaticamente los archivos como la imagen mostrada.



Podemos darnos cuenta que en la carpeta

C:\Apk manager 5.0\projects\Bhuio_Inglés_Retail.apk\smali\com\android\vending\licensing

Encontramos muchos archivos de licencia , hay que dejar por default al block de notas que abra los archivos con extensión .SMALLI

No cierrern todavía el APK Manager, de lo contrario si lo cierran no podremos volver a recompilar la aplicacion

Abrimos todos los archivos de licencia con Ultraedit32 para mi caso es la version 16, no quise actualizar la version ya que solo encontraba versiones con virus



Para nuestro caso hay que buscar las siguientes cadenas string



Dentro de ultraedit Nos vamos al ----> menu   ----> "buscar en archivos" , nos aparecera el siguiente cartel

introduzcamos pues las palabras que estamos buscando "No licencia encontrado" , no olviden seleccionar la opcion "Todos los archivos abiertos"







 

/**
   * Generated by smali2java 1.0.0.558
   * Copyright (C) 2013 Hensence.com
   */

package de.omsn.bhuio.talkAmerican;

import com.android.vending.licensing.LicenseCheckerCallback;
 import android.app.AlertDialog;
 import android.app.Activity;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.app.ProgressDialog;
 import android.content.res.Resources;
 import android.widget.Toast;
 import com.android.vending.licensing.LicenseChecker;
 import android.content.ContentResolver;
 import android.provider.Settings;
 import com.android.vending.licensing.ServerManagedPolicy;
 import com.android.vending.licensing.AESObfuscator;
 import com.android.vending.licensing.Obfuscator;
 import com.android.vending.licensing.Policy;

public class Licensing {
     private static final String BASE64_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgRy7kYsB8BHokTrB8SfrAgzfwE1Z/eiubgxvQRE0Q4ugYE5WBxLW2ttXSUzfbXU74o8KFmaqNKS365G87FnglCN936bs9jye5y/Mpl4HW+0J5Z1WVR2MreM7TYO1FN5TCaUWzaNNRfDRl6e8rQY42mGh5/KK8etXTWDxH/Zuza6yCfzjUFDeiBzJvSN9pL+BmS1IeaCjxxmcsI9fl+C98rsmDvBECimy2JMgTSt1kwSLltUvy+rDL/rW9Iq6wDHy7wmV2aeqFfZcDeQ785ExLfGMVVpJ/MPmcG251HH1PQF0sK4ZrE+RYFkImsQB3Sg2ySoQpuB03CM6xMq5Q94ZcQIDAQAB";
     private ITalkApp app;
     private Licensing.CheckerCallback callback;
     private LicenseChecker licenseChecker;
     private ProgressDialog progressDialog;
     private final Resources r;
     private static final byte[] SALT = new byte[] {0xf8002ce7, 0xf8002c0b, 0xf8002c0c, 0xf8002c7a, 0xf8002cf1, 0xf8002ccb, 0xf8002cb6, 0xf8002cf4, 0xf8002c33, 0xf8002c7f, 0xf8002ca3, 0xf8002cd3, 0xf8002c43, 0xf8002cef, 0xf8002ce2, 0xf8002c8f, 0xf8002cff, 0xf8002c20, 0xf8002cbf, 0xf8002c59}
    
     static {
     }
    
     public Licensing(ITalkApp app) {
         app = app;
         r = app.getActivity().getResources();
         callback = new Licensing.CheckerCallback(this, 0x0);
         String deviceId = Settings.Secure.getString(app.getActivity().getContentResolver(), "android_id");
         licenseChecker = new LicenseChecker(app.getActivity(), policy, "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgRy7kYsB8BHokTrB8SfrAgzfwE1Z/eiubgxvQRE0Q4ugYE5WBxLW2ttXSUzfbXU74o8KFmaqNKS365G87FnglCN936bs9jye5y/Mpl4HW+0J5Z1WVR2MreM7TYO1FN5TCaUWzaNNRfDRl6e8rQY42mGh5/KK8etXTWDxH/Zuza6yCfzjUFDeiBzJvSN9pL+BmS1IeaCjxxmcsI9fl+C98rsmDvBECimy2JMgTSt1kwSLltUvy+rDL/rW9Iq6wDHy7wmV2aeqFfZcDeQ785ExLfGMVVpJ/MPmcG251HH1PQF0sK4ZrE+RYFkImsQB3Sg2ySoQpuB03CM6xMq5Q94ZcQIDAQAB");
     }
    
     public void checkLicense() {
         licenseChecker.checkAccess(callback);
     }
    
     class CheckerCallback implements LicenseCheckerCallback {
        
         public void allow() {
             if(!app.getActivity().isFinishing()) {
                 if((progressDialog != null) && (progressDialog.isShowing())) {
                     progressDialog.dismiss();
                     Toast toast = Toast.makeText(app.getActivity(), r.getString(0x7f050008), 0x0);
                     toast.show();
                 }
             }
         }
        
         public void applicationError(LicenseCheckerCallback.ApplicationErrorCode errorCode) {
             if(!app.getActivity().isFinishing()) {
                 displayFailDialog(String.format(r.getString(0x7f050006), errorCode.name()));
             }
         }
        
         public void dontAllow() {
             if(!app.getActivity().isFinishing()) {
                 displayFailDialog(r.getString(0x7f050007));
             }
         }
        
         private void displayFailDialog(String message) {
             AlertDialog.Builder builder = new AlertDialog.Builder(app.getActivity());
             builder.setCancelable(false);
             builder.setMessage(message);




             builder.setPositiveButton("Purchase", new DialogInterface.OnClickListener(this) {
                
                 1(Licensing.CheckerCallback p1) {
                 }
                
                 public void onClick(DialogInterface dialog, int id) {
                     String uri = r.getString(0x7f050002);
                     Intent intent = new Intent("android.intent.action.VIEW", Uri.parse(uri));
                     app.getActivity().startActivity(intent);
                     app.getActivity().finish();
                 }
             });

 




             builder.setNeutralButton("Retry", new DialogInterface.OnClickListener(this) {
                
                 2(Licensing.CheckerCallback p1) {
                 }
                
                 public void onClick(DialogInterface dialog, int id) {
                     dialog.dismiss();
                     progressDialog = ProgressDialog.show(app.getActivity(), r.getString(0x7f050004), r.getString(0x7f050005), true, false);
                     Licensing.CheckerCallback.this$0.checkLicense();
                 }
             });

 




             builder.setNegativeButton("Exit", new DialogInterface.OnClickListener(this) {
                
                 3(Licensing.CheckerCallback p1) {
                 }
                
                 public void onClick(DialogInterface dialog, int id) {
                     app.getActivity().finish();
                 }
             });
             AlertDialog alert = builder.create();
             if((progressDialog != null) && (progressDialog.isShowing())) {
                 progressDialog.dismiss();
             }
             alert.show();
         }
     }
 }




















y si quiero modicar el codigo fuente y guardarlo como APK, como lo hago?, es posible esto con smali2java?

Habra alguna rutina que al arrancar el programa en el telefono se realice un autocheck sum , para saber si no fue modificada dicha aplicacion?

Intentemos enviandole un correo al desarrollador de aplicacion para que en su proximo actualizacion del programa incluya un editor hexadeecimal, y la opcion de poder modificar el codigo fuente y poder guardarlo como APK


hasta aquí con este tutorial , no lo continue porque desconozco que sigue?

si ya tenemos las instrucciones en código fuente como cambiamos o parchamos el código hexadecimal en el archivo classes.dex del APK zipeado
como se a que referencia hexadecimal con respecto al codigo fuente JAVA desensamblado por smali2java dirigirme para parchar instrucciones

favor de ayudar a concluir este tutorial

gracias

feliz fin de año 2014, y excelente año nuevo 2015

ATTE: palmspanishtutor  
« Última modificación: 1 Enero 2015, 00:15 am por Palm Reversing » En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Tutor 01 Cracking bhuio English Android APK
« Respuesta #1 en: 1 Enero 2015, 01:24 am »

Hola!

Te dejo un par de links para que revises:

link1
link2

Además, si entras en el buscador de la web de ricardo y colocas la palabra "java" (sin las comillas), verás muchos más tutoriales acerca del tema.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Palm Reversing

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Tutor 01 Cracking bhuio English Android APK
« Respuesta #2 en: 1 Enero 2015, 05:43 am »

gracias MCKSys Argentina lo reviso y veré que se puede hacer

vere como hacer la versión al español

saludos y felices fiestas
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Buenas necesito ayuda sobre el tutor de delphi
Ejercicios
piggi_ad 0 2,904 Último mensaje 14 Octubre 2006, 11:24 am
por piggi_ad
mirror de Karpoff spanish tutor online « 1 2 »
Ingeniería Inversa
ojady 11 10,079 Último mensaje 7 Diciembre 2010, 23:43 pm
por juanlabat
TRAINING: Introducción al Cracking & Anti-Cracking
Ingeniería Inversa
MCKSys Argentina 5 6,073 Último mensaje 19 Agosto 2010, 20:24 pm
por Debci
TRAINING: Introducción al Cracking & Anti-Cracking
Seguridad
MCKSys Argentina 0 4,550 Último mensaje 19 Agosto 2010, 00:08 am
por MCKSys Argentina
Necesito un tutor.
Seguridad
rohack 2 2,110 Último mensaje 12 Enero 2014, 03:10 am
por Squirtle
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines