【问题标题】:Finding private API keys for iPhone apps查找 iPhone 应用程序的私有 API 密钥
【发布时间】:2015-01-11 19:11:24
【问题描述】:

最近,我一直在使用Charles 对我的 iPhone 进行很多 MITM 攻击。我一直渴望更好地理解的许多应用程序很容易进行逆向工程,只需使用cURL 来模拟发送到服务器的请求。然而,其他人需要一个签名,我猜它使用一个用于生成有效负载散列的密钥。当我不久前对 Instagram 的 API 进行逆向工程时,它变成了这样

function GenerateSignature($data) {
    return hash_hmac('sha256', $data, 'b4a23f5e39b5929e0666ac5de94c89d1618a2916');
}

$data = '{"device_id":"'.$device_id.'","guid":"'.$guid.'","password":"'.$pass.'","username":"'.$username.'","email":"'.$email.'","_csrftoken":"c3a1648209b1eeefd7bd8d404211be5e", "Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}';  
$sig = GenerateSignature($data);
$new_data = 'signed_body='.$sig.'.'.urlencode($data).'&ig_sig_key_version=4';

然后,显然查询字符串将与请求一起发送到服务器。但是,我似乎无法使用 Charles 找到我真正感兴趣的应用程序的 API 密钥。我的 iPhone 已越狱,但我不太确定在 var/mobile/applications 文件夹中的何处查找API 密钥?有任何想法吗?

【问题讨论】:

  • 如果应用中有密钥,那么您需要使用标准工具集 - 反汇编、散列方法上的断点或确定正在使用的密钥的请求。
  • 详细说明。因为,我查看了请求(所有请求都有签名),但似乎找不到密钥。
  • 老兄,这是工作。您必须将代码回溯到生成签名的位置,然后从中提取。
  • 你解决了吗?

标签: iphone reverse-engineering


【解决方案1】:

您可以使用https://code.google.com/p/droidbox/ 来查找密钥。或者使用 Java 反汇编工具。

还有一个网络服务,您可以在其中上传 APK 并对其进行恶意软件扫描。该报告包括带有密钥的 ADB logcat 输出,例如请参阅此 scan-report(滚动到底部“ADB logcat 生成的输出”)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2020-01-23
    • 1970-01-01
    • 2017-09-26
    相关资源
    最近更新 更多