问题列表 - 第41197页

缓存混淆密钥的漏洞?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
查看次数

Initialize()vs Constructor()方法,正确用于创建对象

我们都从根本上知道a Constructor和用户定义Initialize()方法之间的区别.

我的问题集中在对象创建的最佳设计实践上.我们可以将所有Initialize()代码放入Constructor(),反之亦然(将所有预热代码移动到Initialize方法并从中调用此方法Constructor).

目前,设计一个新类,我在里面创建任何新实例,constructor()并将任何其他热身代码移动到Initialize()方法中.

您认为最好的权衡点是什么?

c# constructor initialization

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

如何在Visual Studio 2010中添加DirectX引用

如何在Visual Studio 2010中向我的C#项目添加DirectX引用?谢谢.

c# directx visual-studio-2010

6
推荐指数
3
解决办法
5万
查看次数

如何将一个分支添加到我的gitosis存储库中

我在我的机器上成功设置了gitosis,我的项目安全地放在gitosis服务器上.它目前没有分支(只是主人).如何添加分支?(我不是在谈论它的配置,我可以想出来,但字面上添加一个分支)

我在本地仓库中添加分支并推送吗?我是否会在gitosis做些什么?

干杯.

git version-control gitosis

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

动态与词典[C#]

假设我有一个叫做的类Composite,它包含另一个类的集合Component,所有这些类都有一个属性Name.使用a Dictionary来存储组件会更好吗,或者使用动态对象会更好吗?

例如,这样做会更好:
Component component = someComposite.Components["RandomComponent"];
或者:
Component component = someComposite.Components.RandomComponent;

其中someComposite.Components dynamic在第二个例子中.

第二种情况似乎更好,但没有类型安全......

我想补充一点,在某些时候我最终会这样做:
DerivedComponent component = someComposite.Components["RandomComponent"] as DerivedComponent;
在这种情况下dynamic可以节省我输入转换.

那么哪个更好的设计呢?

c# dynamic

4
推荐指数
1
解决办法
2709
查看次数

MVP被动视图 - 复合视图和复合演示者

我找到了M. Fowler关于被动视图模式的文章.我想在我的申请中申请.我使用Swing for UI.我花了几个小时搜索教程或示例如何实现它,但没有找到太多有用的东西.有人可以帮助理解设计或提供好的例子吗?通过MVP中的"M",我理解"域模型".

java mvp swing passive-view

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

获取总计数和子集计数的最简单方法是什么?

我试图这样做:

SELECT COUNT(*),
        (
            SELECT COUNT(*) FROM attend
            WHERE (DATEPART(WEEKDAY,start_date) = 2 OR DATEPART(WEEKDAY,start_date) = 6)
            AND empl_no = 12345
        )
        FROM attend as a
 WHERE empl_no = 12345
Run Code Online (Sandbox Code Playgroud)

但这看起来有点难看.有一个更好的方法吗?

sql sql-server sql-server-2005

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

Microsoft.VisualBasic.FileIO.TextFieldParser将±Ascii 241更改为?Ascii 63

我正在使用Microsoft.VisualBasic.Fileio.TextFieldParser来解析使用Excel 2003创建的CSV文件.解析器工作得很好,除了它将扩展的ascii值转换为问号!所以如果文件内容是:

±3
TextFieldParser正在返回
?3

我已经尝试了System.Text.Encoding包中的所有编码而没有运气.我以为我使用UTF7,但它正在删除其他字符,例如用空格替换+符号.

任何帮助将不胜感激.

.net vb.net ascii

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

解释为Javascript的语言?

另一篇文章质疑将语言编译成Javascript是多么实际.除了实用性,解释器从一些语言X转换为Javascript并在Javascript中实现?我特别感兴趣的是X的设计目的不是针对Javascript.即使口译员没有完全完成,我也想听听.

你可能对这个问题的动机感到好奇.Javascript当然不能像汇编程序那样充分利用它,但代码分发和执行的灵活性有时可能会超过这个成本.

这些解释器的一个用例是教学和学习编程语言的模型.考虑在交互式书籍Eloquent Javascript中使用Javascript解释器是多么有用.当然,在本地编译它可能会有性能损失,但在某些情况下,成本肯定是值得的.是的,我意识到依靠服务器编译或解释代码总是一种选择,但我对客户端方法特别感兴趣.


更新:许多响应包括对未在Javascript中实现的编译器的引用.我只想强调解释器本身应该用Javascript实现,这样它和源语言代码都可以在祖父母的计算机上的浏览器上运行.

javascript client interpreter programming-languages

10
推荐指数
2
解决办法
1197
查看次数

强制C#app编译为x64而不是AnyCpu

我试图使用C#2010 Express在C#应用程序中引用本机x64 dll.我有一个演示项目,该项目是从2008项目转换而来的,该项目在其属性中有配置和平台选项,但我创建的新项目却没有!下拉列表不存在 - 实际上我甚至无法从Debug切换到Release.他们都使用.Net Framework 4,其他一切看起来都是一样的.

在C++和转换后的C#项目中,它很简单,你只需打开解决方案的配置管理器即可,但我的新C#项目在上下文菜单中没有.

由于存在大量内存需求,我需要能够在x64下引用x64 dll,在x86下引用x86 dll.任何人都可以解释为什么选项缺失或指出我如何解决它?

c# 64-bit

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