我正在为Android 开发支付处理应用程序,我想阻止黑客从APK文件访问任何资源,资产或源代码.
如果有人将.apk扩展名更改为.zip,那么他们可以解压缩它并轻松访问所有应用程序的资源和资产,并使用dex2jar和Java反编译器,他们也可以访问源代码.逆向工程Android APK文件非常容易 - 有关详细信息,请参阅Stack Overflow问题从APK文件到项目的逆向工程.
我使用了随Android SDK提供的Proguard工具.当我对使用签名密钥库和Proguard生成的APK文件进行逆向工程时,我得到了混淆代码.
但是,Android组件的名称保持不变,某些代码(如应用程序中使用的键值)保持不变.根据Proguard文档,该工具不能混淆清单文件中提到的组件.
现在我的问题是:
如何将Android DEX(VM字节码)文件反编译成相应的Java源代码?
混淆是一种方式,但它无法防止破坏应用程序的盗版保护安全性.我如何确保应用程序不被篡改,以及如何确保注册机制不能被反向工程?
此外,可以将C#应用程序转换为本机代码,而Xenocode代价太高.
C#提供了很多的功能,并且是我的代码的理想语言,所以下再次写入整个代码库++是出了问题.
可以从.NET中的签名程序集中轻松删除安全证书.
如何从现有Java代码生成UML图(尤其是序列图)?
大多数应用开发者会将一些第三方库集成到他们的应用中.如果要访问服务,例如Dropbox或YouTube,或者用于记录崩溃.第三方图书馆和服务的数量是惊人的.大多数这些库和服务都是以某种方式通过服务进行身份验证而集成的,大部分时间都是通过API密钥进行的.出于安全目的,服务通常生成公共和私有(通常也称为秘密密钥).不幸的是,为了连接到服务,必须使用此私钥进行身份验证,因此可能是应用程序的一部分.毋庸置疑,这面临着巨大的安全问题.公共和私人API密钥可以在几分钟内从APK中提取,并且可以轻松实现自动化.
假设我有类似的东西,我该如何保护密钥:
public class DropboxService {
private final static String APP_KEY = "jk433g34hg3";
private final static String APP_SECRET = "987dwdqwdqw90";
private final static AccessType ACCESS_TYPE = AccessType.DROPBOX;
// SOME MORE CODE HERE
}
Run Code Online (Sandbox Code Playgroud)
您认为存储私钥的最佳和最安全的方式是什么?混淆,加密,你怎么看?
如何获取SQL Server 2005+中所有索引和索引列的列表?我能得到的最接近的是:
select s.name, t.name, i.name, c.name from sys.tables t
inner join sys.schemas s on t.schema_id = s.schema_id
inner join sys.indexes i on i.object_id = t.object_id
inner join sys.index_columns ic on ic.object_id = t.object_id
inner join sys.columns c on c.object_id = t.object_id and
ic.column_id = c.column_id
where i.index_id > 0
and i.type in (1, 2) -- clustered & nonclustered only
and i.is_primary_key = 0 -- do not include PK indexes
and i.is_unique_constraint = 0 -- do not include UQ …Run Code Online (Sandbox Code Playgroud) 几年前我为客户编写了一个C#应用程序,但我不再拥有源代码.我所拥有的只是我在客户端PC上部署的EXE.有没有办法从EXE生成C#源代码?
有没有一个好的工具可以帮助将Java类逆向工程到UML,它将显示我的类如何相互关联的概述?它不需要从JAR文件反编译,因为我有源.我知道那里有很多,但大多数只能生成个人课程.我希望有一个工具可以生成类图,它显示了我所有当前类和包如何协同工作的概述,以便我可以分析我当前的架构设计.当然,分析是一回事.另一个是出于文档目的.
到目前为止我知道一些.但是他们不能做概述类图.这是我尝试过的Java UML工具列表,它能够进行逆向工程,但不能完成整个项目的概述类图:
是否还有其他建议要添加到此列表中?并且希望能够生成概述Java类图.顺便说一句,我正在使用Eclipse.
我常常遇到一个外观漂亮或功能强大的网站,并想知道用什么技术来创建它.有哪些技术可以确定特定网站的构建方式?
很少有框架似乎包含任何类型的生成器元标记,如网络编辑器.是否有任何特定语言和/或框架的迹象?
答案摘要
站点URL可能背叛框架和/或编程语言,但不能依赖(例如.asp等文件扩展名).HTTP响应头,cookie,样式表和源注释也可以提供线索.
一些很好的查询网站详细信息的工具(毫无疑问还有更多):
Firefox插件:
Chrome扩展程序:
小书签:
我想用一些蓝牙低能量开发套件创建我自己的iBeacon.Apple还没有发布iBeacons规范,但是一些硬件开发商已经反向使用AirLocate示例代码设计iBeacon并开始销售iBeacon开发套件.
那么iBeacon蓝牙配置文件是什么?
Bluetooth Low Energy使用GATT进行LE配置文件服务发现.所以我认为我们需要知道属性句柄,属性类型,属性值,以及iBeacon属性的属性权限.那么,对于UUID为E2C56DB5-DFFB-48D2-B060-D0F5A71096E0的iBeacon,主要值为1,次要值为1,蓝牙GATT配置文件服务是什么?
这是我在Apple论坛和文档讨论中做出的一些假设.
您只需要查看蓝牙外围设备的配置文件服务(GATT)即可知道它是iBeacon.
Major和Minor键在此配置文件服务中的某处编码
有些公司使用iBeacon Dev Kits似乎已经有了这个数字:
希望我们能及时在Bluetooth.org上发布这样的个人资料:https://www.bluetooth.org/en-us/specification/adopted-specifications
reverse-engineering bluetooth ios bluetooth-lowenergy ibeacon
android ×3
java ×3
.net ×2
c# ×2
proguard ×2
uml ×2
api-key ×1
bluetooth ×1
decompiler ×1
decompiling ×1
dex ×1
diagram ×1
frameworks ×1
html ×1
ibeacon ×1
indexing ×1
ios ×1
obfuscation ×1
security ×1
sql-server ×1
t-sql ×1