小编sac*_*003的帖子

如何避免APK文件的逆向工程?

我正在为Android 开发支付处理应用程序,我想阻止黑客从APK文件访问任何资源,资产或源代码.

如果有人将.apk扩展名更改为.zip,那么他们可以解压缩它并轻松访问所有应用程序的资源和资产,并使用dex2jar和Java反编译器,他们也可以访问源代码.逆向工程Android APK文件非常容易 - 有关详细信息,请参阅Stack Overflow问题从APK文件到项目的逆向工程.

我使用了随Android SDK提供的Proguard工具.当我对使用签名密钥库和Proguard生成的APK文件进行逆向工程时,我得到了混淆代码.

但是,Android组件的名称保持不变,某些代码(如应用程序中使用的键值)保持不变.根据Proguard文档,该工具不能混淆清单文件中提到的组件.

现在我的问题是:

  1. 如何完全阻止 Android APK的逆向工程?这可能吗?
  2. 如何保护所有应用程序的资源,资源和源代码,以便黑客无法以任何方式破解APK文件?
  3. 有没有办法使黑客攻击更加艰难甚至不可能?我还可以做些什么来保护我的APK文件中的源代码?

security android reverse-engineering proguard

736
推荐指数
18
解决办法
20万
查看次数

如何覆盖android webview os 4.1+的默认文本选择?

在发布这个问题之前,我已经搜索了很多,但在这个问题上找不到任何明确的答案.

我必须覆盖android webview的默认文本选择并显示我的自定义文本选择对话框选项.我试过这个示例代码项目.

此示例项目适用于以下设备和模拟器:

  • Acer Iconia a500平板电脑:10英寸:Android OS - 3.0
  • Acer Iconia a500平板电脑:10英寸:Android OS - 3.2
  • 三星Galaxy Tab:10英寸:Android OS - 4.0
  • 三星Galaxy Tab:7英寸:Android OS - 4.0
  • 模拟器:Skin-WVGA800:Android OS - 4.1.2

不适用于以下设备:

  • 三星Galaxy Tab:10英寸:Android OS - 4.1.2
  • 三星Galaxy Tab:7英寸:Android OS - 4.1.2

在Android操作系统版本4.1和4.1+而不是显示我的自定义文本选择选项对话框,它显示Android系统的文本选择的默认操作栏.

我对此进行了大量搜索,很多人建议使用onLongClick()方法接口

我已经在这个论坛上问了一个问题请看这个链接,这个问题的答案我能够克隆onLongClick()事件,但我无法停止默认文本选择操作栏.

对于这种情况,我几乎没有问题.

1.为什么onLongClick()方法停止在android os 4.1+上运行的设备上工作?

2.如果长按webview中的文本,如何停止默认文本选择操作栏?

这是我的自定义webview类.

  package com.epubreader.ebook;
  import org.json.JSONException;
  import org.json.JSONObject;
  import android.app.Activity;
  import android.content.Context;
  import android.graphics.Rect;
  import android.graphics.Region;
  import android.os.Handler;
  import android.os.Message;
  import android.util.AttributeSet;
  import android.util.DisplayMetrics;
  import …
Run Code Online (Sandbox Code Playgroud)

android textselection android-webview

45
推荐指数
2
解决办法
1万
查看次数

如何解压缩大型zip文件并在更短的时间内写入SDCARD

要解压缩zip文件,我已经使用了包java.util.zip*中的类,通过引用并且它正常工作但是解压缩40MB的文件需要59秒.当我在iPhone项目上尝试相同的zip文件时(我们正在为两个平台开发应用程序--Android和iPone以及解压缩zip文件并将解压缩的内容保存到SDCARD-Android或文档目录 - iPhone),只需14秒.iPhone应用程序使用ziparchive.

所以我的问题是:

1.从上面的实验中可以看出,与iPhone应用程序相比,Java中对SDCARD的解压缩和文件写入操作消耗的时间更长,因此我决定使用NDK进行C/C++级解压缩和文件写入操作.这是正确的选择吗?

2.我搜索了谷歌,stackoverflow和一些建议使用minizip但没有足够的帮助如何在Android中使用minizip.anyboday已经尝试过minizip for android吗?

3.我也尝试了用于libz的NDK开发来实现我的目标,因为Libz被添加到NDK但没有得到如何使用它.在NDK有人试过libz吗?

4.在Java或C/C++中是否有其他任何框架解压缩大型zip文件并在更短的时间内将它们写入SDCARD?

请帮我.

这是我的Java解压缩代码:

public String unzip() {

    String result;

    try {

        FileInputStream fin = new FileInputStream(this.filePath);
        ZipInputStream zin = new ZipInputStream(fin);
        ZipEntry ze = null;

        while ((ze = zin.getNextEntry()) != null) {

            Log.v("Unzip", "Unzipping " + ze.getName());

            if (ze.isDirectory()) {
                _dirChecker(ze.getName());
            } else {

                // Read 16 k at a time 
                byte[] buffer = new byte[16*1024];
                 int read;

                FileOutputStream fout = …
Run Code Online (Sandbox Code Playgroud)

iphone zip android unzip android-ndk

7
推荐指数
2
解决办法
8290
查看次数

无法从Google Play购买应用产品

我在我的应用程序中使用应用程序购买,几天后它正在工作但是当我尝试通过应用程序购买我在对话框中收到以下错误消息

"您的付款目前无法处理.您可能会收到一封电子邮件,要求您验证自己的帐户."

和通知栏中的"购买失败".

我搜索了这个错误并得到了一个解决方案,这里是链接, 但没有运气这个链接

我购买商品的交易历史记录的PFA图片通过谷歌帐户添加到谷歌播放.

在此输入图像描述

android in-app-purchase google-play

7
推荐指数
1
解决办法
1113
查看次数

Horizo​​ntalScrollView-android的水平菜单

这是我必须实现的一个水平菜单.这个菜单应该用左右箭头平滑地滚动,就像这个福克斯新闻应用程序https://market.android.com/details?id=com.foxnews.android与第一个应用程序屏幕截图.

通过在这个论坛上使用谷歌和其他帖子我使用horizo​​ntalScrollView来实现它,但不知道如何用箭头设置左右透明图像,以指示根据滚动有更多的元素向左或向右.

无论我编码什么,实现滚动运动,但它的速度慢,并努力用箭头显示左右图像.

请告诉我你是否有任何解决方案.

这个布局我正在使用

<HorizontalScrollView
    android:id="@+id/hor_svID"
    android:layout_width="wrap_content"
    android:layout_height="35dip"
    android:scrollbars="none"
    android:fillViewport="false"
    android:focusable="false"
    android:background="@drawable/submenu_bg">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:focusable="false"
        android:background="#FFFFFF"
        android:gravity="center">
        <TextView android:id="@+id/TechnologyTxtVId" 
                android:text="TECHNOLOGY"   
                android:textColor="#342D7E"
                android:textSize="12sp"
                android:textStyle="bold"
                android:gravity="center"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>
        <TextView android:id="@+id/SportsTxtVId" 
                android:text="SPORTS" 
                android:textColor="#342D7E" 
                android:textStyle="bold"
                android:textSize="12sp"
                android:gravity="center"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content" 
                android:paddingLeft="15dip"></TextView> 
        <TextView android:id="@+id/EntntTxtVId" 
                android:text="ENTERTAINMENT"    
                android:textStyle="bold"
                android:paddingLeft="15dip"
                android:textSize="12sp"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>
        <TextView android:id="@+id/LocalTxtVId" 
                android:text="LOCAL"    
                android:textStyle="bold"
                android:paddingLeft="15dip"
                android:textSize="12sp"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>        
        <TextView android:id="@+id/WorldTxtVId" 
                android:text="WORLD"    
                android:textStyle="bold"
                android:textSize="12sp"
                android:paddingLeft="15dip"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView>    
        <TextView android:id="@+id/FeaturesTxtVId" 
                android:text="FEATURES" 
                android:textStyle="bold"
                android:textSize="12sp"
                android:paddingLeft="15dip"
                android:gravity="center"
                android:textColor="#342D7E"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"></TextView> …
Run Code Online (Sandbox Code Playgroud)

android horizontalscrollview

6
推荐指数
1
解决办法
6700
查看次数