小编hun*_*erp的帖子

缓存混淆密钥的漏洞?Android许可

每当Android Market Licensing ping服务器返回GRANT_ACCESS pong时,我都会缓存用户的身份验证.

有没有人看到这个策略有任何漏洞?我相信它非常强大,因为我混淆了一把钥匙,而且不混淆的唯一方法就是知道盐.现在,有人可以想象打开apk并寻找盐,但这并不是真正的破解程度,我认为太重要了,不用担心.

如您所见,设备特定信息正被添加到混淆技术中.

// Try to use more data here. ANDROID_ID is a single point of attack. 
String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID); 
obfuscator = new AESObfuscator(SALT, getPackageName(), deviceId); 
mChecker = new LicenseChecker(this, new ServerManagedPolicy(this, obfuscator), BASE64_PUBLIC_KEY ); 
Run Code Online (Sandbox Code Playgroud)

接下来创建持久化数据:

 public void allow() {
   SharedPreferences settings = getSharedPreferences(PREFERENCES_EULA, 0);
   SharedPreferences.Editor editor = settings.edit();
   String uid = UUID.randomUUID().toString();
   if(!settings.contains(ACCESS_KEY)) {
     editor.putString(ACCESS_KEY,uid);       
     editor.commit();
   } 
   if(!settings.contains(OBFU_ACCESS_KEY)) {
     String obfu = obfuscator.obfuscate(uid);
     editor.putString(OBFU_ACCESS_KEY,obfu); 
     editor.commit();
   }
Run Code Online (Sandbox Code Playgroud)

然后,我使用另一种方法来检查缓存内容的状态:

boolean isCachedLicense() {
  SharedPreferences settings = …
Run Code Online (Sandbox Code Playgroud)

security android exploit

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

onPause后AsyncTasks会发生什么?

在进入下一个Activity之前,我有一个AsyncTask.在这个AsyncTask中,我有一个MediaPlayer.

 protected void onPause() {
           stopProgress();
           Log.i(TAG, "onPAUSE");
           try  {
           } finally {
           // If we allocated a player, then cleanup after it
           if (player != null) {
               player.reset();
               player.release();
               player = null;
               Log.d(TAG,"end of player cleanup");
                            }
            }
            super.onPause();
         }
Run Code Online (Sandbox Code Playgroud)

使用场景:

  1. 单击活动1中的播放按钮
  2. 在播放器加载之前转到活动2(肯定会调用来自onPause的日志信息).
  3. 在活动2中,活动1中的玩家在完成加载时播放.

android

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

如何改进Traffic Jam递归求解器的算法?

这是一款名为Traffic Jam的 Android游戏

我写了一个递归求解器:

import copy,sys
sys.setrecursionlimit(10000)


def lookup_car(car_string,ingrid):
  car=[]
  i=0
  for row in ingrid:
    j=0 
    for cell in row:
      if cell == car_string:
        car.append([i,j])
      j+=1
    i+=1
  return car

#True if up/down False if side to side
def isDirectionUp(car):
  init_row=car[0][0]
  for node in car:
    if node[0] != init_row:
      return True
  return False   

def space_up(car,grid):
  top_node=car[0]
  m_space_up = (top_node[0]-1,top_node[1])
  if top_node[0] == 0:
    return -1
  elif grid[m_space_up[0]][m_space_up[1]] != " ":
    return -1
  else:
    return m_space_up

def space_down(car,grid):
  bottom_node = car[-1] …
Run Code Online (Sandbox Code Playgroud)

algorithm recursion graph-theory

5
推荐指数
1
解决办法
886
查看次数

如何在Android中坚持嵌套的Bundle?

我有一个具有嵌套性质的Bundle,我想保留,我怎样才能最容易地保留整个Bundle?SharedPreferences缺乏捆绑功能.

android

5
推荐指数
1
解决办法
1384
查看次数

我可以使用UrlEncodedFormEntity为多部分上传图像和文本吗?

图像通常需要特殊的HTTP标头,如:

Content-disposition: attachment; filename="file2.jpeg"
Content-type: image/jpeg
Content-Transfer-Encoding: binary
Run Code Online (Sandbox Code Playgroud)

我使用以下方法构建我的POST:

List<NameValuePair> formparams = new ArrayList<NameValuePair>();
UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(formparams);
Run Code Online (Sandbox Code Playgroud)

urlEncodedFormEntity允许setContentType,但我不知道如何混合图像和文本?

java android image http multipart

5
推荐指数
1
解决办法
2477
查看次数

无法升级Android SDK

我已关闭每个窗口,重新启动计算机.但Eclipse告诉我:"C:\ Program Files\android-sdk\tools正在被访问....我甚至删除了目录,但我仍然得到:如何解决?

无法将目录C:\ Program Files\Android\android-sdk\platform-tools重命名为C:\ Program Files\Android\android-sdk\temp\PlatformToolPackage.old01.

eclipse android

5
推荐指数
1
解决办法
4345
查看次数

为什么eclipse SOMETIMES会提示我启动我的应用程序的设备?

为什么当只有一部手机连接到我的机器时,eclipse SOMETIMES会提示我启动我的应用程序的设备?有时候,它会持续数月......如何解决?

它说我的目标手机是2.3.4并且旁边有一个小的黄色感叹号警告.

eclipse android

5
推荐指数
1
解决办法
2155
查看次数

NSKeyedArchiver 返回 nil Swift 4.2

 let lessons = Lessons(definition: "testo", photo: url)
 SaveUtil.saveLessons(lessons: lessons!)
 let x = SaveUtil.loadLessons()
Run Code Online (Sandbox Code Playgroud)

所以一切都编译并运行,但 x 为零......我试图使这个 ios12/swift 4.2 兼容,但不知道缺少什么。谢谢!

class SaveUtil {
    static func saveLessons(lessons: Lessons) {
        let data = try! NSKeyedArchiver.archivedData(withRootObject: lessons, requiringSecureCoding: false)
        UserDefaults.standard.set(data, forKey: "lessons")
    }

    static func loadLessons() -> [Lessons]?  {

        let data = UserDefaults.standard.data(forKey: "lessons")
        return try! NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data!) as? [Lessons]
    }
}
Run Code Online (Sandbox Code Playgroud)

persistence nskeyedarchiver nscoder ios swift

5
推荐指数
1
解决办法
5784
查看次数

AppCheck 在 ios 模拟器上失败

我的 appcheck 在我真实的 ios 设备上的相同代码库上运行良好,

但在模拟器上,我看到:

await kFirebaseFuncs.httpsCallable('doIt')

PlatformException (PlatformException(failed-precondition, The function must be called
from an App Check verified app., {message: The function must be called from an App
Check verified app., code: failed-precondition}, null))
Run Code Online (Sandbox Code Playgroud)

我需要做些什么才能使 appcheck 在 ios 模拟器上工作吗?

firebase flutter firebase-app-check

5
推荐指数
1
解决办法
3059
查看次数

如何将我的活动升级到碎片并避免ClassCastException?

我有很多类的活动层次结构.我刚刚安装了v4兼容包.以一种方式获取我所有活动的最简单方法是什么?我可以在一个带有TabHost的Fragment中使用它们?

代码行:

    mTabsAdapter.addTab(mTabHost.newTabSpec("feed").setIndicator("Feed"), FActivity.class, null);
Run Code Online (Sandbox Code Playgroud)

第165行:

@Override
    public Fragment getItem(int position) {
                TabInfo info = mTabs.get(position);
                return Fragment.instantiate(mContext, info.clss.getName(), info.args);
            }
Run Code Online (Sandbox Code Playgroud)

具体来说,我想避免像以下错误:

07-19 01:33:24.940: ERROR/AndroidRuntime(17581): java.lang.ClassCastException: com.c.FActivity
07-19 01:33:24.940: ERROR/AndroidRuntime(17581):     at android.support.v4.app.Fragment.instantiate(Fragment.java:378)
07-19 01:33:24.940: ERROR/AndroidRuntime(17581):     at com.c.Main$TabsAdapter.getItem(Main.java:165)
07-19 01:33:24.940: ERROR/AndroidRuntime(17581):     at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:62)
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-support-library

3
推荐指数
1
解决办法
6133
查看次数