Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

Help Decrypting assets

OP Sideswipebm

22nd May 2014, 11:35 PM   |  #1  
OP Member
Thanks Meter: 0
 
39 posts
Join Date:Joined: Jan 2013
Hi, I really need help, i want to extract some .png and .jpg from the assets of the app 'Hyperdimension Neptunia The App'
after 3 month of research i found out that the assets are probably "encrypted" i wanted the textures for the live2D model files, and wanted to replace the sounds with the English versions from the iOS app that i extracted.

Audio was .caf in iOS but in Android it says its .mp3
This Line in a class says something about the audio: localEditor.putString("alarm_voice", bw.a(str, "caf", "mp3"));

The .caf opens and runs fine so whats the problem and anyone help me decrypt it?

Full "AlarmActivity.class"
Code:
package jp.co.ideaf.neptune.nepkamijigenapp;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.res.Resources;
import android.os.Build.VERSION;
import android.os.Bundle;
import android.os.Handler;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.NumberPicker;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.TimePicker;
import java.util.Calendar;
import java.util.Timer;
import jp.co.ideaf.neptune.nepkamijigenapp.a.a;
import jp.co.ideaf.neptune.nepkamijigenapp.a.d;
import jp.co.ideaf.neptune.nepkamijigenapp.a.f;
import jp.co.ideaf.neptune.nepkamijigenapp.a.h;
import jp.co.ideaf.neptune.nepkamijigenapp.d.z;

public class AlarmActivity extends Activity
{
  private a a = null;
  private d b = null;
  private Timer c = null;
  private ee d = null;
  private eg e = null;
  private Handler f = new Handler();
  private LinearLayout g = null;

  private static int a(Context paramContext, a parama, long paramLong)
  {
    h localh = KamijigenApplication.c();
    z localz = localh.b(parama.c().f());
    int i = localh.a();
    String str = localz.g();
    Object[] arrayOfObject = new Object[1];
    arrayOfObject[0] = Long.valueOf(paramLong / 1000L);
    jp.co.ideaf.neptune.nepkamijigenapp.d.k.a(String.format("アラーム発生時間 : %d秒", arrayOfObject), new Object[0]);
    f localf = new f(paramLong + Calendar.getInstance().getTimeInMillis());
    SharedPreferences.Editor localEditor = paramContext.getSharedPreferences(bw.a(paramContext, 2131034117), 0).edit();
    localEditor.putString("alarm_voice", bw.a(str, "caf", "mp3"));
    localEditor.putBoolean("snooze", parama.b);
    localEditor.putInt("snooze_time", parama.c);
    localEditor.commit();
    Intent localIntent = new Intent(paramContext, AlarmDialogActivity.class);
    localIntent.addFlags(268435456);
    PendingIntent localPendingIntent = PendingIntent.getActivity(paramContext, 0, localIntent, 0);
    ((AlarmManager)paramContext.getSystemService("alarm")).set(0, localf.b(), localPendingIntent);
    return i;
  }

  private void a()
  {
    TimePicker localTimePicker = (TimePicker)findViewById(2131165202);
    if (localTimePicker == null);
    while (true)
    {
      return;
      localTimePicker.setIs24HourView(Boolean.valueOf(true));
      localTimePicker.setCurrentHour(Integer.valueOf(this.a.c().f()));
      localTimePicker.setCurrentMinute(Integer.valueOf(this.a.c().g()));
    }
  }

  private void a(int paramInt)
  {
    TextView localTextView = (TextView)findViewById(2131165196);
    if (localTextView != null)
    {
      localTextView.setText(Integer.toString(paramInt));
      localTextView.append(bw.a(this, 2131034215));
    }
  }

  private void a(int paramInt1, int paramInt2)
  {
    TextView localTextView1 = (TextView)findViewById(2131165194);
    if (localTextView1 != null)
    {
      localTextView1.setText(Integer.toString(paramInt1));
      localTextView1.append(bw.a(this, 2131034211));
    }
    TextView localTextView2 = (TextView)findViewById(2131165195);
    if (localTextView2 != null)
    {
      localTextView2.setText(Integer.toString(paramInt2));
      localTextView2.append(bw.a(this, 2131034212));
    }
  }

  public static void a(Context paramContext, a parama)
  {
    d locald = KamijigenApplication.a();
    locald.b(paramContext, false);
    c(paramContext, parama);
    parama.a = true;
    locald.p().a(parama);
    locald.c(paramContext);
  }

  private void b()
  {
    CheckBox localCheckBox = (CheckBox)findViewById(2131165197);
    if (localCheckBox != null)
    {
      if (KamijigenApplication.a().p().a)
        break label38;
      localCheckBox.setEnabled(false);
      localCheckBox.setChecked(false);
    }
    while (true)
    {
      return;
      label38: localCheckBox.setChecked(true);
    }
  }

  private static void c(Context paramContext, a parama)
  {
    f localf1 = new f(Calendar.getInstance().getTimeInMillis());
    int i = localf1.f();
    int j = localf1.g();
    int k;
    int m;
    int n;
    f localf2;
    long l;
    if ((i < parama.c().f()) || ((i == parama.c().f()) && (j < parama.c().g())))
    {
      k = localf1.c();
      m = localf1.d();
      n = localf1.e();
      localf2 = new f(k, m, n, parama.c().f(), parama.c().g(), 0);
      jp.co.ideaf.neptune.nepkamijigenapp.d.k.a("targetDate : " + localf2.toString(), new Object[0]);
      jp.co.ideaf.neptune.nepkamijigenapp.d.k.a("nowDate : " + localf1.toString(), new Object[0]);
      l = localf2.b() - localf1.b();
      if (parama.c <= 0)
        break label300;
    }
    label300: for (parama.b = true; ; parama.b = false)
    {
      int i1 = a(paramContext, parama, l);
      parama.c().a(k);
      parama.c().b(m);
      parama.c().c(n);
      parama.d = i1;
      return;
      f localf3 = new f(86400000L + localf1.b());
      k = localf3.c();
      m = localf3.d();
      n = localf3.e();
      localf2 = new f(k, m, n, parama.c().f(), parama.c().g(), 0);
      break;
    }
  }

  public void onClickBackButton(View paramView)
  {
    finish();
  }

  public void onClickDecideButton(View paramView)
  {
    CheckBox localCheckBox = (CheckBox)findViewById(2131165197);
    if (((RadioButton)findViewById(2131165199)).isChecked())
    {
      findViewById(2131165201).setVisibility(8);
      findViewById(2131165203).setVisibility(0);
      findViewById(2131165201).setVisibility(0);
      findViewById(2131165203).setVisibility(8);
      if (localCheckBox != null)
        break label127;
    }
    while (true)
    {
      return;
      findViewById(2131165201).setVisibility(0);
      findViewById(2131165203).setVisibility(8);
      findViewById(2131165201).setVisibility(8);
      findViewById(2131165203).setVisibility(0);
      break;
      label127: d locald = KamijigenApplication.a();
      if (!locald.p().a)
        showDialog(0);
      else if ((locald.p().a) && (localCheckBox.isChecked()))
        showDialog(2);
      else
        showDialog(3);
    }
  }

  public void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    setRequestedOrientation(1);
    setContentView(2130903041);
    d locald = KamijigenApplication.a();
    this.a = new a();
    this.a.a(locald.p());
    a(this.a.c().f(), this.a.c().g());
    a();
    b();
    TimePicker localTimePicker = (TimePicker)findViewById(2131165202);
    if (localTimePicker != null)
    {
      localTimePicker.setVisibility(0);
      localTimePicker.setOnTimeChangedListener(new j(this));
    }
    userNumberPicker localuserNumberPicker = (userNumberPicker)findViewById(2131165204);
    a(this.a.c);
    if ((Build.VERSION.SDK_INT < 11) && (localuserNumberPicker != null))
    {
      localuserNumberPicker.a(0, 59);
      localuserNumberPicker.a(this.a.c);
      localuserNumberPicker.a(new l(this));
    }
    if (Build.VERSION.SDK_INT >= 11)
    {
      FrameLayout localFrameLayout = (FrameLayout)findViewById(2131165203);
      localuserNumberPicker.setEnabled(false);
      localuserNumberPicker.setVisibility(8);
      this.g = new LinearLayout(this);
      this.g.setOrientation(0);
      NumberPicker localNumberPicker = new NumberPicker(this);
      localNumberPicker.setMinValue(0);
      localNumberPicker.setMaxValue(59);
      localNumberPicker.setValue(this.a.c);
      localNumberPicker.setOnValueChangedListener(new m(this));
      this.g.addView(localNumberPicker, 0, new LinearLayout.LayoutParams(-2, -2, 1.0F));
      localFrameLayout.addView(this.g, new FrameLayout.LayoutParams(-2, -2, 17));
    }
    findViewById(2131165201).setVisibility(0);
    findViewById(2131165203).setVisibility(8);
    ((RadioGroup)findViewById(2131165198)).setOnCheckedChangeListener(new n(this));
    this.b = KamijigenApplication.a();
    String str = getResources().getText(2131034115).toString();
    LinearLayout localLinearLayout = (LinearLayout)findViewById(2131165191);
    Button localButton = (Button)findViewById(2131165205);
    if (str.equals(this.b.d(this.b.k())))
    {
      localLinearLayout.setBackgroundResource(2130837540);
      localButton.setBackgroundResource(2130837513);
    }
    while (true)
    {
      if (locald.p().a)
        showDialog(4);
      return;
      localLinearLayout.setBackgroundResource(2130837541);
      localButton.setBackgroundResource(2130837514);
    }
  }

  protected Dialog onCreateDialog(int paramInt)
  {
    AlertDialog localAlertDialog;
    if (paramInt == 0)
      localAlertDialog = new AlertDialog.Builder(this).setTitle(2131034216).setMessage(2131034217).setPositiveButton(2131034218, new q(this)).setNegativeButton(2131034219, null).create();
    while (true)
    {
      return localAlertDialog;
      if (paramInt == 1)
      {
        localAlertDialog = new AlertDialog.Builder(this).setMessage(2131034220).setPositiveButton(2131034221, new r(this)).create();
      }
      else if (paramInt == 2)
      {
        localAlertDialog = new AlertDialog.Builder(this).setTitle(2131034222).setMessage(2131034223).setPositiveButton(2131034224, new s(this)).setNegativeButton(2131034225, null).create();
      }
      else if (paramInt == 3)
      {
        localAlertDialog = new AlertDialog.Builder(this).setTitle(2131034226).setMessage(2131034227).setPositiveButton(2131034228, new t(this)).setNegativeButton(2131034229, null).create();
      }
      else
      {
        localAlertDialog = null;
        if (paramInt == 4)
          localAlertDialog = new AlertDialog.Builder(this).setMessage(2131034304).setPositiveButton(2131034228, new k(this)).setNegativeButton(2131034229, null).create();
      }
    }
  }

  protected void onPause()
  {
    super.onPause();
    if (this.d != null)
      this.d.b();
    this.c.cancel();
    this.c.purge();
  }

  protected void onResume()
  {
    super.onResume();
    this.d = new ee(this);
    this.d.a();
    this.c = new Timer(true);
    this.c.scheduleAtFixedRate(new o(this), 100L, 100L);
    Display localDisplay = ((WindowManager)getSystemService("window")).getDefaultDisplay();
    if (localDisplay.getWidth() > localDisplay.getHeight());
    for (int i = localDisplay.getHeight(); ; i = localDisplay.getWidth())
    {
      float f1 = i / 480.0F;
      LinearLayout localLinearLayout = (LinearLayout)findViewById(2131165193);
      getResources().getDrawable(2130837742);
      localLinearLayout.getLayoutParams().height = ((int)(90.0F * f1));
      localLinearLayout.getLayoutParams().width = ((int)(f1 * 172.0F));
      localLinearLayout.requestLayout();
      this.e = new eg(this, 0);
      return;
    }
  }
}
Last edited by Sideswipebm; 22nd May 2014 at 11:41 PM. Reason: Code
23rd May 2014, 01:09 PM   |  #2  
deanwray's Avatar
Senior Member
Thanks Meter: 429
 
1,145 posts
Join Date:Joined: Apr 2006
Donate to Me
well if it is encrypted, what type ? and if it\s something like AES CBC how do you intend to get the cypher ?
23rd May 2014, 08:13 PM   |  #3  
OP Member
Thanks Meter: 0
 
39 posts
Join Date:Joined: Jan 2013
That's the problem, im kinda new to this thing so im not sure how to get the cypher and i think its AES encrypted but not 100% certain. Sorry for being a noob.
Post Reply Subscribe to Thread

Tags
assets, decrypt, extract
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes