- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在研究与 Android 设备上的软件组件(具体来说,一个 apk 文件)证明相关的概念证明。为此,我做了以下工作:
我以编程方式检索了存储在我的 Android 平板电脑上安装的应用程序(例如 maps.apk)的 META/CERT.SF 中的摘要,属于 AndroidManifest.xml、resources.arsc 和 classes.dex。
然后,我计算了这些文件的 SHA-1 摘要,然后对这些摘要进行了 base64。我能够将这些与步骤 1 中的匹配。
我的问题是,META-INF/CERT.RSA 中存储的公钥的作用在哪里?存储在 META-INF/CERT.SF 中的摘要不是应该由 META-INF/CERT.RSA 中的公钥对应的私钥签名吗?
câu trả lời hay nhất
真正的问题是:CERT.SF 的作用是什么??
文件 CERT.SF 不包含签名数据,但它仅从 MANIFEST.MF 构建。这意味着它不包含任何无法从 MANIFEST.MF 中提取的信息。
CERT.RSA 或 CERT.DSA(取决于使用的算法)文件包含 CERT.SF 的实际签名。要从 CERT.SF 构建 CERT.RSA,需要私钥...
-- 编辑--
对不起。第一次阅读您的问题时,我以另一种方式理解了它。
检查存档完整性的第一步实际上是检查 CERT.SF 中的哈希值是否正确。下一步是检查 CERT.SF 本身是否已被修改。
这是使用 CERT.RSA 完成的,可以通过两种方式完成:
如果您有文件签名者的公钥,您可以使用该公钥来检查签名;您忽略 RSA 文件中的公钥。在这种情况下,您确定文件已被使用其私钥签名的人修改。
RSA 文件始终包含公钥和该 key 所有者的姓名/地址。此信息使用(相同或另一个)私钥签名。如果在 RSA 文件中签署 key /名称的人/组织是可信的,并且您拥有该组织的公钥,您至少知道文件中的名称/地址是最后修改文件的人。
对于“自签名证书”(您没有可信任的公钥),无法检查文件...
签名不用于检查文件是否未更改。这只需对 manifest.mf 进行哈希处理即可完成。拥有私钥的人可以以任何方式修改软件!
马丁
关于Android APK,自签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211245/
Gần đây tôi đã thêm một số .gif vào /drawable để tôi có thể sử dụng chúng bằng các nút. Điều này hoạt động tốt (không có lỗi). Bây giờ khi tôi xây dựng lại/chạy ứng dụng của mình, tôi gặp lỗi sau: Error: Gradle: Execu
Có cách nào trong Android để trả lại đường dẫn tới dữ liệu bộ nhớ trong không? Tôi có 2 điện thoại thông minh Android (Samsung s2 và s7 edge) mà tôi đã cài đặt một ứng dụng. Tôi muốn sử dụng sqlit nằm trong đường dẫn này
Câu hỏi này đã có câu trả lời ở đây: Sự khác biệt giữa "?android:" và "@android:" trong bố cục android xml f
Tôi chỉ muốn biết sự khác biệt thực sự giữa điện thoại phát triển Android, điện thoại Android thông thường và điện thoại đã root Android. Chúng tôi không thể mua bộ công cụ phát triển từ các cửa hàng thực tế hoặc những nơi khác ngoài thị trường Android
Tôi đang cố gắng nâng cao dự án này kể từ khi cập nhật Gradle. Đây là một dự án nhóm và nó sử dụng plugin android-apt. Tôi đã thực hiện các thay đổi cú pháp cần thiết (biên dịch->triển khai và apt->bộ xử lý chú thích) nhưng trình biên dịch vẫn cho tôi biết rằng có
Tôi mới sử dụng Android và kotlin, vì vậy vui lòng giải quyết một vấn đề rất đơn giản! Tôi đã tạo một ứng dụng cơ bản bằng cách sử dụng các thành phần kiến trúc điều hướng, sử dụng thanh điều hướng ở dưới cùng và ba tùy chọn điều hướng. Mỗi tùy chọn điều hướng trỏ đến một đoạn dành riêng
Tôi hiện đang sử dụng SDK chính thức của Facebook dành cho Android. Tôi hiện đang sử dụng ứng dụng mẫu nâng cao nhưng tôi không biết cách làm cho ứng dụng này có được tường/luồng/trạng thái ứng dụng thay vì người dùng đã đăng nhập. Điều này có thể thực hiện được không? trong tình huống đó
Tôi gặp sự cố khi tải xuống tệp, tôi có thể tải tệp xuống trong trình giả lập nhưng nó không hoạt động trên điện thoại của tôi. Tôi đã xác định quyền truy cập Internet và ghi vào thẻ SD. Tôi có một tệp tài liệu trên máy chủ nếu người dùng nhấp vào tải xuống. Nó tải tập tin. Điều này hoạt động tốt trong trình mô phỏng nhưng
Câu hỏi này đã có câu trả lời ở đây: Sự khác biệt giữa trọng lực và bố cục_trọng lực trong Android là gì? (22 câu trả lời) Đóng 9
Bất cứ ai có thể cho tôi biết bộ nhớ cache của ứng dụng và bộ nhớ cache của ứng dụng là gì vì khi chúng ta nói về ứng dụng làm sạch bộ nhớ cache, khái niệm làm sạch bộ nhớ cache là làm sạch bộ nhớ cache của ứng dụng hoặc như bộ nhớ chính quản lý bộ nhớ, RAM, bộ nhớ cache là khác nhau và theo như tôi biết, chậm
Giả sử rằng ứng dụng Foo và Eggs nằm trên cùng một thiết bị Android. Một trong hai ứng dụng có thể nhận danh sách tất cả các ứng dụng trên thiết bị. Ứng dụng có thể biết liệu ứng dụng khác đã chạy chưa và đã chạy trong bao lâu? câu trả lời hay nhất
Tôi hơi bối rối, tôi chỉ thấy các ví dụ về việc chuyển từ Android sang PC hoặc từ Android sang PC. Tôi cần tạo một ứng dụng Android kết nối từ hai điện thoại (android) để trò chuyện video. Tôi đang suy nghĩ, tôi biết
Được sử dụng để khóa màn hình theo chương trình bằng Android. Tôi đã có một số ý tưởng hay từ các câu hỏi Stackoverflow trước đây về vấn đề này và tôi vẫn ổn, nhưng khi tôi chạy mã, không có ngoại lệ và không có lỗi. Ngoài ra, màn hình không bị khóa. Vui lòng nhập đoạn này
Văn bản: android:layout_alignParentStart Nếu đúng, làm cho cạnh bắt đầu của chế độ xem này khớp với cạnh bắt đầu
Tôi không biết sự khác biệt giữa hai thuộc tính và chiều cao này. Lấy TextView làm ví dụ, điều gì xảy ra nếu tôi đặt bố cục của nó thành quấn_content và chiều rộng của nó thành 50 nhúng? câu trả lời hay nhất
Mối quan hệ giữa hai thuộc tính này là gì? Nếu tôi có android:noHistory="true", thì có ích gì khi có android:finishOnTaskLaunch="true" không? Câu trả lời hay nhất giả định rằng ứng dụng của bạn có
Tôi là người mới và đang cố gắng hiểu mã XML sau: Nhìn vào tài liệu trên dev.android.com, nó cho biết "starStyle" là một hằng số trong R.attr, public static cuối cùng
Trong đoạn mã bên dưới, tại sao giao diện của nút radio thay đổi khi tôi đặt android:layout_width="fill_parent" và android:width="fill_parent" tôi đang nói
Thật khó để nói những gì để hỏi ở đây. Câu hỏi không rõ ràng, mơ hồ, không đầy đủ, quá rộng hoặc hùng biện và không thể trả lời hợp lý ở dạng hiện tại. Để được trợ giúp làm rõ vấn đề này để có thể mở lại, hãy truy cập Trung tâm trợ giúp.
Giả sử mình có một hàm fun myFunction(name:String, email:String){}, khi mình gọi hàm này là myFunction('Ali', 'ali@test.com ') thì sao
Tôi là một lập trình viên xuất sắc, rất giỏi!