แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒ›แƒแƒ แƒขแƒ˜แƒก แƒ‘แƒแƒšแƒแƒก แƒฉแƒ•แƒ”แƒœ แƒ˜แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ›แƒแƒ— แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ”แƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒฃแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ แƒฃแƒšแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ. แƒ“แƒฆแƒ”แƒก แƒฉแƒ•แƒ”แƒœ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฎแƒ“แƒ”แƒ‘แƒ แƒ”แƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒฐแƒแƒ™แƒ”แƒ แƒ”แƒ‘แƒก แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฎแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ UC Browser-แƒ˜แƒก แƒ แƒ”แƒ™แƒšแƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒแƒ’แƒ แƒ”แƒกแƒ˜แƒฃแƒšแƒแƒ“ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ: แƒ˜แƒก แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ”แƒ‘แƒ–แƒ” แƒ›แƒแƒ•แƒœแƒ” แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ“แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ•แƒ˜แƒ“แƒ”แƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒแƒ แƒฅแƒ•แƒ”แƒจ (แƒแƒœแƒฃ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒ“แƒœแƒ”แƒœ, แƒ แƒแƒ› แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ“แƒœแƒ”แƒœ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒžแƒแƒ แƒœแƒ แƒ•แƒ˜แƒ“แƒ”แƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“, แƒ›แƒ˜แƒ˜แƒฆแƒ APK แƒแƒ› แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒ—), แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜ แƒ‘แƒแƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜ แƒ›แƒแƒซแƒ•แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒ˜ แƒ“แƒ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›. แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ UC Browser แƒฏแƒ’แƒฃแƒคแƒจแƒ˜ VK แƒแƒ แƒ˜แƒก แƒ—แƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒฃแƒฉแƒ˜แƒ•แƒ˜แƒแƒœ แƒฃแƒกแƒแƒ›แƒแƒ แƒ—แƒšแƒ แƒ แƒ”แƒ™แƒšแƒแƒ›แƒแƒก, แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฃแƒแƒ›แƒ แƒแƒ•แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜. 2016 แƒฌแƒ”แƒšแƒก แƒ˜แƒงแƒ แƒ™แƒ˜แƒ“แƒ”แƒช แƒ•แƒ˜แƒ“แƒ”แƒ แƒ แƒ”แƒ™แƒšแƒแƒ›แƒ แƒ แƒฃแƒกแƒฃแƒšแƒแƒ“ (แƒ“แƒ˜แƒแƒฎ, แƒ แƒ”แƒ™แƒšแƒแƒ›แƒ˜แƒก แƒ“แƒแƒ‘แƒšแƒแƒ™แƒ•แƒ˜แƒก แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒ™แƒšแƒแƒ›แƒ).

แƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒ แƒแƒก, UC Browser-แƒก แƒแƒฅแƒ•แƒก 500-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ Google Play-แƒ–แƒ”. แƒ”แƒก แƒจแƒ—แƒแƒ›แƒ‘แƒ”แƒญแƒ“แƒแƒ•แƒ˜แƒ - แƒ›แƒฎแƒแƒšแƒแƒ“ Google Chrome-แƒก แƒแƒฅแƒ•แƒก แƒ›แƒ”แƒขแƒ˜. แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒžแƒ แƒ”แƒขแƒ”แƒœแƒ–แƒ˜แƒ แƒ แƒ”แƒ™แƒšแƒแƒ›แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒจแƒ˜ Google Play-แƒ–แƒ”. แƒ”แƒก แƒ˜แƒงแƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒก แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜: แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ’แƒแƒ’แƒ•แƒ”แƒ’แƒ, แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ“แƒ แƒ—แƒฃ แƒแƒ แƒ UC Browser แƒ แƒแƒ˜แƒ›แƒ” แƒชแƒฃแƒ“แƒก. แƒ“แƒ แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒ˜แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก!

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ”แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒ แƒแƒช แƒ”แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒกแƒก Google Play-แƒ–แƒ”. แƒ’แƒแƒ แƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ, UC Browser แƒแƒ›แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒแƒ แƒแƒกแƒแƒ˜แƒ›แƒ”แƒ“แƒ แƒ’แƒ–แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก MitM แƒจแƒ”แƒขแƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“. แƒ•แƒœแƒแƒฎแƒแƒ—, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒ—แƒแƒ•แƒ“แƒแƒกแƒฎแƒ›แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ.

แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜แƒ UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ˜แƒงแƒ Google Play-แƒ–แƒ” แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒก แƒ“แƒ แƒแƒก:

package: com.UCMobile.intl
versionName: 12.10.8.1172
versionCode: 10598
sha1 APK-ั„ะฐะนะปะฐ: f5edb2243413c777172f6362876041eb0c3a928c

แƒจแƒ”แƒขแƒ”แƒ•แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜

UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒ—แƒ•แƒ˜แƒ—แƒแƒฎแƒกแƒœแƒแƒ“แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— com.uc.deployment.UpgradeDeployService.

    <service android_exported="false" android_name="com.uc.deployment.UpgradeDeployService" android_process=":deploy" />

แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ”แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ, แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜ แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก POST แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก puds.ucweb.com/upgrade/index.xhtml, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒแƒœแƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒจแƒ˜ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฎแƒœแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“, แƒ›แƒแƒœ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒ“แƒ แƒแƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ›แƒ แƒแƒ  แƒ’แƒแƒกแƒชแƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒแƒ›แƒฉแƒœแƒ˜แƒ”แƒ—, แƒ แƒแƒ› แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— PDF-แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒแƒก แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜, แƒ˜แƒก แƒ›แƒ”แƒแƒ แƒ” แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ”, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒก. แƒ—แƒแƒ•แƒ“แƒแƒกแƒฎแƒ›แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ’แƒแƒ›แƒแƒ’แƒ•แƒ”แƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒœแƒ UC Browser-แƒ˜แƒก แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ: PDF-แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ  แƒแƒ แƒ˜แƒก APK-แƒจแƒ˜ แƒ“แƒ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒ“แƒแƒœ. แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ, แƒ แƒแƒ› แƒ—แƒ”แƒแƒ แƒ˜แƒฃแƒšแƒแƒ“, UC Browser แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ˜แƒซแƒฃแƒšแƒแƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” - แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒ˜แƒแƒฌแƒ•แƒ“แƒ˜แƒ— แƒ™แƒแƒ แƒ’แƒแƒ“ แƒฉแƒแƒ›แƒแƒงแƒแƒšแƒ˜แƒ‘แƒ”แƒ‘แƒฃแƒš แƒžแƒแƒกแƒฃแƒฎแƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒแƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜ แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ—, แƒ แƒแƒ› แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ PDF-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒกแƒ” แƒ แƒแƒ›, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒกแƒฃแƒ แƒก PDF-แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ แƒฉแƒแƒœแƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒจแƒ˜:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒฏแƒ”แƒ  แƒแƒ แƒ˜แƒก POST แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ puds.ucweb.com/upgrade/index.xhtmlแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช
แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒแƒ แƒฅแƒ˜แƒ•แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒ— PDF แƒ“แƒ แƒกแƒแƒแƒคแƒ˜แƒกแƒ” แƒคแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒœแƒแƒฎแƒแƒ•แƒแƒ“. แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜แƒ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ—, แƒ แƒแƒ› แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ (แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“) แƒ“แƒ แƒแƒ›แƒ˜แƒก แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ—: แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก แƒ“แƒ, แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, , แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒแƒฆแƒแƒช. แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ”แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜แƒ.

แƒ›แƒแƒ˜แƒ—แƒฎแƒแƒ•แƒ”แƒ— แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ˜

แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒก แƒคแƒ แƒแƒ’แƒ›แƒ”แƒœแƒขแƒ˜

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ—แƒแƒ•แƒแƒ“ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜แƒ ZIP-แƒจแƒ˜ แƒ“แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒ”แƒ— แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ™แƒแƒ“แƒ˜

แƒ•แƒชแƒแƒ“แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒก แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ™แƒšแƒแƒกแƒ˜แƒก แƒ™แƒแƒ“แƒก com.uc.deployment.UpgradeDeployService: แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒ“แƒแƒœ onStartCommand แƒฌแƒแƒ“แƒ˜ com.uc.deployment.bx, แƒ“แƒ แƒ›แƒ˜แƒกแƒ’แƒแƒœ com.uc.browser.core.dcfe:

    public final void e(l arg9) {
int v4_5;
String v3_1;
byte[] v3;
byte[] v1 = null;
if(arg9 == null) {
v3 = v1;
}
else {
v3_1 = arg9.iGX.ipR;
StringBuilder v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]product:");
v4.append(arg9.iGX.ipR);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]version:");
v4.append(arg9.iGX.iEn);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]upgrade_type:");
v4.append(arg9.iGX.mMode);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]force_flag:");
v4.append(arg9.iGX.iEo);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]silent_mode:");
v4.append(arg9.iGX.iDQ);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]silent_type:");
v4.append(arg9.iGX.iEr);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]silent_state:");
v4.append(arg9.iGX.iEp);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]silent_file:");
v4.append(arg9.iGX.iEq);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]apk_md5:");
v4.append(arg9.iGX.iEl);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]download_type:");
v4.append(arg9.mDownloadType);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]download_group:");
v4.append(arg9.mDownloadGroup);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]download_path:");
v4.append(arg9.iGH);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]apollo_child_version:");
v4.append(arg9.iGX.iEx);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]apollo_series:");
v4.append(arg9.iGX.iEw);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]apollo_cpu_arch:");
v4.append(arg9.iGX.iEt);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]apollo_cpu_vfp3:");
v4.append(arg9.iGX.iEv);
v4 = new StringBuilder("[");
v4.append(v3_1);
v4.append("]apollo_cpu_vfp:");
v4.append(arg9.iGX.iEu);
ArrayList v3_2 = arg9.iGX.iEz;
if(v3_2 != null && v3_2.size() != 0) {
Iterator v3_3 = v3_2.iterator();
while(v3_3.hasNext()) {
Object v4_1 = v3_3.next();
StringBuilder v5 = new StringBuilder("[");
v5.append(((au)v4_1).getName());
v5.append("]component_name:");
v5.append(((au)v4_1).getName());
v5 = new StringBuilder("[");
v5.append(((au)v4_1).getName());
v5.append("]component_ver_name:");
v5.append(((au)v4_1).aDA());
v5 = new StringBuilder("[");
v5.append(((au)v4_1).getName());
v5.append("]component_ver_code:");
v5.append(((au)v4_1).gBl);
v5 = new StringBuilder("[");
v5.append(((au)v4_1).getName());
v5.append("]component_req_type:");
v5.append(((au)v4_1).gBq);
}
}
j v3_4 = new j();
m.b(v3_4);
h v4_2 = new h();
m.b(v4_2);
ay v5_1 = new ay();
v3_4.hS("");
v3_4.setImsi("");
v3_4.hV("");
v5_1.bPQ = v3_4;
v5_1.bPP = v4_2;
v5_1.yr(arg9.iGX.ipR);
v5_1.gBF = arg9.iGX.mMode;
v5_1.gBI = arg9.iGX.iEz;
v3_2 = v5_1.gAr;
c.aBh();
v3_2.add(g.fs("os_ver", c.getRomInfo()));
v3_2.add(g.fs("processor_arch", com.uc.b.a.a.c.getCpuArch()));
v3_2.add(g.fs("cpu_arch", com.uc.b.a.a.c.Pb()));
String v4_3 = com.uc.b.a.a.c.Pd();
v3_2.add(g.fs("cpu_vfp", v4_3));
v3_2.add(g.fs("net_type", String.valueOf(com.uc.base.system.a.Jo())));
v3_2.add(g.fs("fromhost", arg9.iGX.iEm));
v3_2.add(g.fs("plugin_ver", arg9.iGX.iEn));
v3_2.add(g.fs("target_lang", arg9.iGX.iEs));
v3_2.add(g.fs("vitamio_cpu_arch", arg9.iGX.iEt));
v3_2.add(g.fs("vitamio_vfp", arg9.iGX.iEu));
v3_2.add(g.fs("vitamio_vfp3", arg9.iGX.iEv));
v3_2.add(g.fs("plugin_child_ver", arg9.iGX.iEx));
v3_2.add(g.fs("ver_series", arg9.iGX.iEw));
v3_2.add(g.fs("child_ver", r.aVw()));
v3_2.add(g.fs("cur_ver_md5", arg9.iGX.iEl));
v3_2.add(g.fs("cur_ver_signature", SystemHelper.getUCMSignature()));
v3_2.add(g.fs("upgrade_log", i.bjt()));
v3_2.add(g.fs("silent_install", String.valueOf(arg9.iGX.iDQ)));
v3_2.add(g.fs("silent_state", String.valueOf(arg9.iGX.iEp)));
v3_2.add(g.fs("silent_file", arg9.iGX.iEq));
v3_2.add(g.fs("silent_type", String.valueOf(arg9.iGX.iEr)));
v3_2.add(g.fs("cpu_archit", com.uc.b.a.a.c.Pc()));
v3_2.add(g.fs("cpu_set", SystemHelper.getCpuInstruction()));
boolean v4_4 = v4_3 == null || !v4_3.contains("neon") ? false : true;
v3_2.add(g.fs("neon", String.valueOf(v4_4)));
v3_2.add(g.fs("cpu_cores", String.valueOf(com.uc.b.a.a.c.Jl())));
v3_2.add(g.fs("ram_1", String.valueOf(com.uc.b.a.a.h.Po())));
v3_2.add(g.fs("totalram", String.valueOf(com.uc.b.a.a.h.OL())));
c.aBh();
v3_2.add(g.fs("rom_1", c.getRomInfo()));
v4_5 = e.getScreenWidth();
int v6 = e.getScreenHeight();
StringBuilder v7 = new StringBuilder();
v7.append(v4_5);
v7.append("*");
v7.append(v6);
v3_2.add(g.fs("ss", v7.toString()));
v3_2.add(g.fs("api_level", String.valueOf(Build$VERSION.SDK_INT)));
v3_2.add(g.fs("uc_apk_list", SystemHelper.getUCMobileApks()));
Iterator v4_6 = arg9.iGX.iEA.entrySet().iterator();
while(v4_6.hasNext()) {
Object v6_1 = v4_6.next();
v3_2.add(g.fs(((Map$Entry)v6_1).getKey(), ((Map$Entry)v6_1).getValue()));
}
v3 = v5_1.toByteArray();
}
if(v3 == null) {
this.iGY.iGI.a(arg9, "up_encode", "yes", "fail");
return;
}
v4_5 = this.iGY.iGw ? 0x1F : 0;
if(v3 == null) {
}
else {
v3 = g.i(v4_5, v3);
if(v3 == null) {
}
else {
v1 = new byte[v3.length + 16];
byte[] v6_2 = new byte[16];
Arrays.fill(v6_2, 0);
v6_2[0] = 0x5F;
v6_2[1] = 0;
v6_2[2] = ((byte)v4_5);
v6_2[3] = -50;
System.arraycopy(v6_2, 0, v1, 0, 16);
System.arraycopy(v3, 0, v1, 16, v3.length);
}
}
if(v1 == null) {
this.iGY.iGI.a(arg9, "up_encrypt", "yes", "fail");
return;
}
if(TextUtils.isEmpty(this.iGY.mUpgradeUrl)) {
this.iGY.iGI.a(arg9, "up_url", "yes", "fail");
return;
}
StringBuilder v0 = new StringBuilder("[");
v0.append(arg9.iGX.ipR);
v0.append("]url:");
v0.append(this.iGY.mUpgradeUrl);
com.uc.browser.core.d.c.i v0_1 = this.iGY.iGI;
v3_1 = this.iGY.mUpgradeUrl;
com.uc.base.net.e v0_2 = new com.uc.base.net.e(new com.uc.browser.core.d.c.i$a(v0_1, arg9));
v3_1 = v3_1.contains("?") ? v3_1 + "&dataver=pb" : v3_1 + "?dataver=pb";
n v3_5 = v0_2.uc(v3_1);
m.b(v3_5, false);
v3_5.setMethod("POST");
v3_5.setBodyProvider(v1);
v0_2.b(v3_5);
this.iGY.iGI.a(arg9, "up_null", "yes", "success");
this.iGY.iGI.b(arg9);
}

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— POST แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒคแƒแƒ แƒ›แƒ˜แƒ แƒ”แƒ‘แƒแƒก แƒแƒฅ. แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒแƒก แƒ•แƒแƒฅแƒชแƒ”แƒ•แƒ— 16 แƒ‘แƒแƒ˜แƒขแƒ˜แƒแƒœแƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ“แƒ แƒ›แƒ˜แƒก แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒแƒก: 0x5F, 0, 0x1F, -50 (=0xCE). แƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒ˜แƒ›แƒแƒก, แƒ แƒแƒช แƒ•แƒœแƒแƒฎแƒ”แƒ— แƒ–แƒ”แƒ›แƒแƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒจแƒ˜.

แƒ˜แƒ›แƒแƒ•แƒ” แƒ™แƒšแƒแƒกแƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒฉแƒแƒกแƒ›แƒฃแƒšแƒ˜ แƒ™แƒšแƒแƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜:

        public final void a(l arg10, byte[] arg11) {
f v0 = this.iGQ;
StringBuilder v1 = new StringBuilder("[");
v1.append(arg10.iGX.ipR);
v1.append("]:UpgradeSuccess");
byte[] v1_1 = null;
if(arg11 == null) {
}
else if(arg11.length < 16) {
}
else {
if(arg11[0] != 0x60 && arg11[3] != 0xFFFFFFD0) {
goto label_57;
}
int v3 = 1;
int v5 = arg11[1] == 1 ? 1 : 0;
if(arg11[2] != 1 && arg11[2] != 11) {
if(arg11[2] == 0x1F) {
}
else {
v3 = 0;
}
}
byte[] v7 = new byte[arg11.length - 16];
System.arraycopy(arg11, 16, v7, 0, v7.length);
if(v3 != 0) {
v7 = g.j(arg11[2], v7);
}
if(v7 == null) {
goto label_57;
}
if(v5 != 0) {
v1_1 = g.P(v7);
goto label_57;
}
v1_1 = v7;
}
label_57:
if(v1_1 == null) {
v0.iGY.iGI.a(arg10, "up_decrypt", "yes", "fail");
return;
}
q v11 = g.b(arg10, v1_1);
if(v11 == null) {
v0.iGY.iGI.a(arg10, "up_decode", "yes", "fail");
return;
}
if(v0.iGY.iGt) {
v0.d(arg10);
}
if(v0.iGY.iGo != null) {
v0.iGY.iGo.a(0, ((o)v11));
}
if(v0.iGY.iGs) {
v0.iGY.a(((o)v11));
v0.iGY.iGI.a(v11, "up_silent", "yes", "success");
v0.iGY.iGI.a(v11);
return;
}
v0.iGY.iGI.a(v11, "up_silent", "no", "success");
}
}

แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒแƒ“ แƒ“แƒ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜ แƒแƒ แƒ˜แƒก 0x60 แƒแƒœ แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ‘แƒแƒ˜แƒขแƒ˜ แƒแƒ แƒ˜แƒก 0xD0, แƒฎแƒแƒšแƒ แƒ›แƒ”แƒแƒ แƒ” แƒ‘แƒแƒ˜แƒขแƒ˜ แƒแƒ แƒ˜แƒก 1, 11 แƒแƒœ 0x1F. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒก: แƒœแƒฃแƒšแƒแƒ•แƒแƒœแƒ˜ แƒ‘แƒแƒ˜แƒขแƒ˜ แƒแƒ แƒ˜แƒก 0x60, แƒ›แƒ”แƒแƒ แƒ” แƒแƒ แƒ˜แƒก 0x1F, แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒแƒ แƒ˜แƒก 0x60. แƒŸแƒฆแƒ”แƒ แƒก แƒ˜แƒก, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒ—แƒฃ แƒ•แƒ˜แƒ›แƒกแƒฏแƒ”แƒšแƒ”แƒ‘แƒ— แƒฎแƒแƒ–แƒ”แƒ‘แƒ˜แƒ— (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, "up_decrypt", แƒแƒฅ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒซแƒแƒฎแƒแƒ— แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒแƒ•แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒก.
แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒ›แƒ”แƒ—แƒแƒ“แƒ–แƒ” แƒฏ. แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒ‘แƒแƒ˜แƒขแƒ˜ แƒแƒคแƒกแƒ”แƒขแƒ–แƒ” 2 (แƒแƒœแƒฃ 0x1F แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜), แƒฎแƒแƒšแƒ แƒ›แƒ”แƒแƒ แƒ” แƒแƒ แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒ’แƒแƒ แƒ”แƒจแƒ”
แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ 16 แƒ‘แƒแƒ˜แƒขแƒ˜.

     public static byte[] j(int arg1, byte[] arg2) {
if(arg1 == 1) {
arg2 = c.c(arg2, c.adu);
}
else if(arg1 == 11) {
arg2 = m.aF(arg2);
}
else if(arg1 != 0x1F) {
}
else {
arg2 = EncryptHelper.decrypt(arg2);
}
return arg2;
}

แƒชแƒฎแƒแƒ“แƒ˜แƒ, แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒก แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ‘แƒแƒ˜แƒขแƒก, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœแƒกแƒจแƒ˜แƒ
แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒขแƒแƒšแƒ˜แƒ 0x1F, แƒแƒฆแƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒกแƒแƒ›แƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜แƒ“แƒแƒœ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒก.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒก. แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒœแƒแƒฎแƒขแƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒ›แƒแƒ•แƒฉแƒœแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒ”แƒ—แƒแƒ“แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฎแƒกแƒœแƒ-แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ แƒแƒฅแƒ•แƒก แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒBytesByKey.

แƒแƒฅ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜ โ€‹โ€‹แƒ‘แƒแƒ˜แƒขแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ’แƒแƒœ แƒ“แƒ แƒ›แƒแƒ—แƒ’แƒแƒœ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜. แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ, แƒ แƒแƒ› แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒจแƒ”แƒ˜แƒ แƒฉแƒ”แƒ•แƒ แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜.

    private static byte[] decryptBytesByKey(byte[] bytes) {
byte[] v0 = null;
if(bytes != null) {
try {
if(bytes.length < EncryptHelper.PREFIX_BYTES_SIZE) {
}
else if(bytes.length == EncryptHelper.PREFIX_BYTES_SIZE) {
return v0;
}
else {
byte[] prefix = new byte[EncryptHelper.PREFIX_BYTES_SIZE];  // 2 ะฑะฐะนั‚ะฐ
System.arraycopy(bytes, 0, prefix, 0, prefix.length);
String keyId = c.ayR().d(ByteBuffer.wrap(prefix).getShort()); // ะ’ั‹ะฑะพั€ ะบะปัŽั‡ะฐ
if(keyId == null) {
return v0;
}
else {
a v2 = EncryptHelper.ayL();
if(v2 == null) {
return v0;
}
else {
byte[] enrypted = new byte[bytes.length - EncryptHelper.PREFIX_BYTES_SIZE];
System.arraycopy(bytes, EncryptHelper.PREFIX_BYTES_SIZE, enrypted, 0, enrypted.length);
return v2.l(keyId, enrypted);
}
}
}
}
catch(SecException v7_1) {
EncryptHelper.handleDecryptException(((Throwable)v7_1), v7_1.getErrorCode());
return v0;
}
catch(Throwable v7) {
EncryptHelper.handleDecryptException(v7, 2);
return v0;
}
}
return v0;
}

แƒฌแƒ˜แƒœ แƒ แƒแƒ› แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ—, แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ•แƒ—, แƒ แƒแƒ› แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฉแƒ•แƒ”แƒœ แƒฏแƒ”แƒ  แƒแƒ  แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒก โ€žแƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒกโ€œ. แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒชแƒแƒขแƒ แƒฃแƒคแƒ แƒ แƒ แƒ—แƒฃแƒšแƒ˜แƒ.

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ”แƒ—แƒแƒ“แƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒก แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜ โ€‹โ€‹แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜, แƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“แƒแƒช แƒแƒ—แƒฎแƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ: แƒฏแƒแƒ“แƒแƒกแƒœแƒฃแƒ แƒ˜ แƒœแƒแƒ›แƒ”แƒ แƒ˜ 16, แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜, แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒแƒ แƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜ (แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜).

    public final byte[] l(String keyId, byte[] encrypted) throws SecException {
return this.ayJ().staticBinarySafeDecryptNoB64(16, keyId, encrypted, "");
}

แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒ›แƒ”แƒ—แƒแƒ“แƒ–แƒ” staticBinarySafeDecryptNoB64 แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜ com.alibaba.wireless.security.open.staticdataencrypt.IStaticDataEncryptComponent. แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒ™แƒแƒ“แƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ”แƒœ แƒแƒ› แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒก. แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒ™แƒšแƒแƒกแƒ˜ lib/armeabi-v7a/libsgmain.so, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก .so, แƒแƒ แƒแƒ›แƒ”แƒ“ .jar. แƒ›แƒ”แƒ—แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก, แƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒœแƒแƒ˜แƒ แƒแƒ“:

package com.alibaba.wireless.security.a.i;
// ...
public class a implements IStaticDataEncryptComponent {
private ISecurityGuardPlugin a;
// ...
private byte[] a(int mode, int magicInt, int xzInt, String keyId, byte[] encrypted, String magicString) {
return this.a.getRouter().doCommand(10601, new Object[]{Integer.valueOf(mode), Integer.valueOf(magicInt), Integer.valueOf(xzInt), keyId, encrypted, magicString});
}
// ...
private byte[] b(int magicInt, String keyId, byte[] encrypted, String magicString) {
return this.a(2, magicInt, 0, keyId, encrypted, magicString);
}
// ...
public byte[] staticBinarySafeDecryptNoB64(int magicInt, String keyId, byte[] encrypted, String magicString) throws SecException {
if(keyId != null && keyId.length() > 0 && magicInt >= 0 && magicInt < 19 && encrypted != null && encrypted.length > 0) {
return this.b(magicInt, keyId, encrypted, magicString);
}
throw new SecException("", 301);
}
//...
}

แƒแƒฅ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒ แƒ˜ โ€‹โ€‹แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒ—: 2 แƒ“แƒ 0. แƒ•แƒ˜แƒ›แƒกแƒฏแƒ”แƒšแƒ”แƒ‘แƒ—
แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, 2 แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ”แƒ—แƒแƒ“แƒจแƒ˜ doFinal แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ™แƒšแƒแƒกแƒ˜ javax.crypto.Cipher. แƒ“แƒ แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ แƒแƒฃแƒขแƒ”แƒ แƒก แƒœแƒแƒ›แƒ แƒ˜แƒ— 10601 - แƒ”แƒก แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜แƒ.

แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒฏแƒแƒญแƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒžแƒแƒฃแƒšแƒแƒ‘แƒ— แƒ™แƒšแƒแƒกแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒก IRouterแƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜ แƒ“แƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ doCommand:

package com.alibaba.wireless.security.mainplugin;
import com.alibaba.wireless.security.framework.IRouterComponent;
import com.taobao.wireless.security.adapter.JNICLibrary;
public class a implements IRouterComponent {
public a() {
super();
}
public Object doCommand(int arg2, Object[] arg3) {
return JNICLibrary.doCommandNative(arg2, arg3);
}
}

แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ™แƒšแƒแƒกแƒ˜ JNICL แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ“แƒ”แƒ™แƒšแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ doCommandNative:

package com.taobao.wireless.security.adapter;
public class JNICLibrary {
public static native Object doCommandNative(int arg0, Object[] arg1);
}

แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ•แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒ™แƒแƒ“แƒจแƒ˜ doCommandNative. แƒ“แƒ แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒฅ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒ’แƒแƒ แƒ—แƒแƒ‘แƒ.

แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ‘แƒ˜แƒœแƒ“แƒ•แƒ

แƒคแƒแƒ˜แƒšแƒจแƒ˜ libsgmain.แƒแƒกแƒ” (แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก .jar แƒ“แƒ แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒแƒฆแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒ”แƒ— แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ แƒ–แƒ”แƒ›แƒแƒ—) แƒแƒ แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ: libsgmainso-6.4.36.so. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒกแƒœแƒ˜แƒ— แƒ›แƒแƒก IDA-แƒจแƒ˜ แƒ“แƒ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒฃแƒแƒ›แƒ แƒแƒ• แƒ“แƒ˜แƒแƒšแƒแƒ’แƒฃแƒ  แƒคแƒแƒœแƒฏแƒแƒ แƒแƒก แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒ—. แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒกแƒ”แƒฅแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜แƒ. แƒ”แƒก แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒ–แƒแƒœแƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒแƒ“, แƒ แƒแƒ—แƒ แƒ’แƒแƒแƒ แƒ—แƒฃแƒšแƒแƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ: ELF แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒฌแƒแƒ แƒแƒ“ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒกแƒแƒ—แƒแƒฃแƒ แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒจแƒšแƒ˜แƒ— แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒก, แƒกแƒแƒ—แƒแƒฃแƒ แƒจแƒ˜ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒฃแƒšแƒ˜แƒ“แƒแƒœ.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ™แƒ•แƒšแƒแƒ• แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒคแƒแƒ˜แƒšแƒ˜ IDA-แƒจแƒ˜.

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒแƒ แƒ˜ แƒ’แƒ–แƒ, แƒ แƒแƒ› แƒ•แƒฃแƒ—แƒฎแƒ แƒแƒ— Java-แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒก, แƒ—แƒฃ แƒกแƒแƒ“ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒจแƒ˜ แƒฏแƒแƒ•แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒก แƒ˜แƒ›แƒžแƒšแƒ”แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒแƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒชแƒ”แƒ›แƒ Java_package_name_ClassName_MethodName.

แƒ›แƒ”แƒแƒ แƒ” แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒแƒก (แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ JNI_OnLoad)
แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ–แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ Natives.

แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ›แƒ”แƒ—แƒแƒ“แƒก แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—, แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก: Java_com_taobao_wireless_security_adapter_JNICLlibrary_doCommandNative.

แƒ”แƒฅแƒกแƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒ แƒแƒช แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒแƒ— แƒ–แƒแƒ แƒ˜ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ Natives.
แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” JNI_OnLoad แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒแƒ› แƒกแƒฃแƒ แƒแƒ—แƒก:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แฒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒแƒฅ? แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒ“แƒ แƒ“แƒแƒกแƒแƒกแƒ แƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒฃแƒ แƒ˜แƒ ARM แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ“แƒแƒกแƒขแƒแƒ–แƒ” แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒแƒจแƒ˜ (แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, R0, R1 แƒ“แƒ R2), แƒแƒกแƒ”แƒ•แƒ” LR แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒก แƒจแƒ˜แƒ’แƒ—แƒแƒ•แƒกแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก. . แƒ‘แƒแƒšแƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒแƒฆแƒแƒ“แƒ’แƒ”แƒœแƒก แƒจแƒ”แƒœแƒแƒฎแƒฃแƒš แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ - แƒ แƒ˜แƒ—แƒแƒช แƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ“แƒแƒœ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฃ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ“แƒแƒแƒ™แƒ•แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒแƒ›แƒฉแƒœแƒ”แƒ•แƒ—, แƒ แƒแƒ› แƒ‘แƒแƒšแƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒชแƒ•แƒšแƒ˜แƒก แƒกแƒขแƒ”แƒ™แƒ–แƒ” แƒจแƒ”แƒœแƒแƒฎแƒฃแƒš แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ—แƒ•แƒแƒšแƒแƒ— แƒ แƒแƒ’แƒแƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’
แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ. แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ 1xB0 แƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ R130-แƒจแƒ˜, แƒ›แƒแƒก แƒแƒ™แƒšแƒ“แƒ”แƒ‘แƒ 5, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก R0-แƒ–แƒ” แƒ“แƒ แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ 0x10. แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก 0xB13B. แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, IDA แƒ—แƒ•แƒšแƒ˜แƒก, แƒ แƒแƒ› แƒ‘แƒแƒšแƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒ˜แƒก แƒ›แƒ˜แƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒš แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” 0xB13B.

แƒแƒฅ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒ˜แƒฎแƒกแƒ”แƒœแƒแƒ—, แƒ แƒแƒ› ARM แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒแƒ แƒ˜ แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜ แƒ“แƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜: ARM แƒ“แƒ Thumb. แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ”แƒฃแƒ‘แƒœแƒ”แƒ‘แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒแƒœแƒฃ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก 0xB13A แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ‘แƒ˜แƒขแƒ˜แƒ“แƒแƒœ แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก Thumb แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜.

แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ โ€žแƒแƒ“แƒแƒžแƒขแƒ”แƒ แƒ˜โ€œ แƒ“แƒแƒ”แƒ›แƒแƒขแƒ แƒแƒ› แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜ แƒ“แƒ
แƒœแƒแƒ’แƒ•แƒ˜แƒก แƒ™แƒแƒ“แƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ—แƒ–แƒ” แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒฆแƒแƒ  แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ— - แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒ•แƒแƒฎแƒกแƒแƒ•แƒก
แƒ แƒแƒ› แƒ—แƒ˜แƒ—แƒฅแƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒชแƒแƒขแƒ แƒ›แƒแƒจแƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒแƒ แƒ˜แƒก.

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ™แƒแƒ“แƒ˜ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒแƒ  แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก 0xB13A-แƒ–แƒ”, แƒ—แƒแƒ•แƒแƒ“ IDA-แƒ› แƒแƒ  แƒแƒฆแƒ˜แƒแƒ แƒ, แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒ“แƒ แƒแƒ› แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก. แƒแƒ›แƒแƒ•แƒ” แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒ—, แƒ˜แƒก แƒแƒ  แƒชแƒœแƒแƒ‘แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒแƒก แƒ™แƒแƒ“แƒแƒ“, แƒ แƒแƒช แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒฌแƒ˜แƒšแƒแƒ“ แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒก. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒฃแƒ‘แƒœแƒ”แƒ‘แƒ˜แƒ— IDA-แƒก, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒ“แƒ แƒแƒกแƒ” แƒฎแƒ“แƒ”แƒ‘แƒ:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ 0xB144-แƒ“แƒแƒœ. แƒ แƒ แƒแƒ แƒ˜แƒก sub_494C-แƒจแƒ˜?

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก LR แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒแƒ“แƒ แƒ” แƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก (0xB144). R0-แƒจแƒ˜ - แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜ แƒแƒ› แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜. แƒแƒœแƒฃ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ“แƒแƒœ, แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ LR-แƒก แƒ“แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒ แƒ˜แƒก
แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒฃแƒœแƒ“แƒ แƒฌแƒแƒฎแƒ•แƒ˜แƒ“แƒ”. แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒ’แƒแƒ›แƒแƒ•แƒ—แƒ•แƒแƒšแƒแƒ—: 0xB144 + [0xB144 + 8* 4] = 0xB144 + 0x120 = 0xB264. แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒš แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” แƒ“แƒ แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— แƒกแƒ˜แƒขแƒงแƒ•แƒแƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒแƒก แƒ“แƒ แƒ™แƒ•แƒšแƒแƒ• แƒ’แƒแƒ“แƒแƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— 0xB140-แƒ–แƒ”:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒแƒฎแƒšแƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒคแƒกแƒ”แƒขแƒ–แƒ” แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ“แƒแƒœ 0x20 แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜แƒ—.

แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒ— แƒ—แƒฃ แƒ•แƒ˜แƒ›แƒกแƒฏแƒ”แƒšแƒ”แƒ‘แƒ—, แƒ™แƒแƒ“แƒจแƒ˜ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ. แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒ› แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜แƒก แƒ’แƒแƒ“แƒแƒญแƒ แƒ แƒฃแƒคแƒ แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“, แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒ“แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ IDA-แƒจแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ’แƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ:

def put_unconditional_branch(source, destination):
offset = (destination - source - 4) >> 1
if offset > 2097151 or offset < -2097152:
raise RuntimeError("Invalid offset")
if offset > 1023 or offset < -1024:
instruction1 = 0xf000 | ((offset >> 11) & 0x7ff)
instruction2 = 0xb800 | (offset & 0x7ff)
patch_word(source, instruction1)
patch_word(source + 2, instruction2)
else:
instruction = 0xe000 | (offset & 0x7ff)
patch_word(source, instruction)
ea = here()
if get_wide_word(ea) == 0xb503: #PUSH {R0,R1,LR}
ea1 = ea + 2
if get_wide_word(ea1) == 0xbf00: #NOP
ea1 += 2
if get_operand_type(ea1, 0) == 1 and get_operand_value(ea1, 0) == 0 and get_operand_type(ea1, 1) == 2:
index = get_wide_dword(get_operand_value(ea1, 1))
print "index =", hex(index)
ea1 += 2
if get_operand_type(ea1, 0) == 7:
table = get_operand_value(ea1, 0) + 4
elif get_operand_type(ea1, 1) == 2:
table = get_operand_value(ea1, 1) + 4
else:
print "Wrong operand type on", hex(ea1), "-", get_operand_type(ea1, 0), get_operand_type(ea1, 1)
table = None
if table is None:
print "Unable to find table"
else:
print "table =", hex(table)
offset = get_wide_dword(table + (index << 2))
put_unconditional_branch(ea, table + offset)
else:
print "Unknown code", get_operand_type(ea1, 0), get_operand_value(ea1, 0), get_operand_type(ea1, 1) == 2
else:
print "Unable to detect first instruction"

แƒ›แƒแƒแƒ—แƒแƒ•แƒกแƒ”แƒ— แƒ™แƒฃแƒ แƒกแƒแƒ แƒ˜ 0xB26A แƒฎแƒแƒ–แƒ–แƒ”, แƒ’แƒแƒฃแƒจแƒ•แƒ˜แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ“แƒ แƒœแƒแƒฎแƒ”แƒ— แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ 0xB4B0-แƒ–แƒ”:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

IDA-แƒ› แƒ™แƒ•แƒšแƒแƒ• แƒแƒ  แƒแƒฆแƒ˜แƒแƒ แƒ แƒ”แƒก แƒขแƒ”แƒ แƒ˜แƒขแƒแƒ แƒ˜แƒ แƒ™แƒแƒ“แƒแƒ“. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒก แƒ“แƒ แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— แƒกแƒฎแƒ•แƒ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒก แƒ˜แƒฅ:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

BLX-แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒแƒ  แƒแƒฅแƒ•แƒก แƒแƒ–แƒ แƒ˜, แƒ”แƒก แƒฃแƒคแƒ แƒ แƒ แƒแƒฆแƒแƒช แƒ’แƒแƒ“แƒแƒแƒ“แƒ’แƒ˜แƒšแƒ”แƒ‘แƒแƒก แƒฐแƒ’แƒแƒ•แƒก. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— sub_4964:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ“แƒ แƒ›แƒแƒ แƒ—แƒšแƒแƒช, แƒแƒฅ แƒ“แƒ•แƒแƒ แƒ“แƒ˜ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ LR-แƒจแƒ˜ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ” แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ”, แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒ˜แƒ“แƒ”แƒ‘แƒ แƒกแƒขแƒ”แƒ™แƒ–แƒ”. แƒแƒกแƒ”แƒ•แƒ”, 4 แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ LR-แƒก แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒแƒคแƒกแƒ”แƒขแƒ˜ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ. แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช POP {R1} แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒš แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒก แƒ“แƒแƒกแƒขแƒแƒ“แƒแƒœ. แƒ—แƒฃ แƒ“แƒแƒแƒ™แƒ•แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ แƒ แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” 0xB4BA + 0xEA = 0xB5A4, แƒœแƒแƒฎแƒแƒ•แƒ— แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒก:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒแƒ› แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒก แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ แƒแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜: แƒแƒคแƒกแƒ”แƒขแƒ˜ แƒ“แƒ แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ’แƒกแƒฃแƒ แƒ— แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒก แƒฉแƒแƒกแƒ›แƒ. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒแƒ— แƒ™แƒแƒ“แƒ˜.

patches = {}
patches[0] = (0x00, 0xbf, 0x01, 0x48, 0x00, 0x68, 0x02, 0xe0)
patches[1] = (0x00, 0xbf, 0x01, 0x49, 0x09, 0x68, 0x02, 0xe0)
patches[2] = (0x00, 0xbf, 0x01, 0x4a, 0x12, 0x68, 0x02, 0xe0)
patches[3] = (0x00, 0xbf, 0x01, 0x4b, 0x1b, 0x68, 0x02, 0xe0)
patches[4] = (0x00, 0xbf, 0x01, 0x4c, 0x24, 0x68, 0x02, 0xe0)
patches[5] = (0x00, 0xbf, 0x01, 0x4d, 0x2d, 0x68, 0x02, 0xe0)
patches[8] = (0x00, 0xbf, 0xdf, 0xf8, 0x06, 0x80, 0xd8, 0xf8, 0x00, 0x80, 0x01, 0xe0)
patches[9] = (0x00, 0xbf, 0xdf, 0xf8, 0x06, 0x90, 0xd9, 0xf8, 0x00, 0x90, 0x01, 0xe0)
patches[10] = (0x00, 0xbf, 0xdf, 0xf8, 0x06, 0xa0, 0xda, 0xf8, 0x00, 0xa0, 0x01, 0xe0)
patches[11] = (0x00, 0xbf, 0xdf, 0xf8, 0x06, 0xb0, 0xdb, 0xf8, 0x00, 0xb0, 0x01, 0xe0)
ea = here()
if (get_wide_word(ea) == 0xb082 #SUB SP, SP, #8
and get_wide_word(ea + 2) == 0xb503): #PUSH {R0,R1,LR}
if get_operand_type(ea + 4, 0) == 7:
pop = get_bytes(ea + 12, 4, 0)
if pop[1] == 'xbc':
register = -1
r = get_wide_byte(ea + 12)
for i in range(8):
if r == (1 << i):
register = i
break
if register == -1:
print "Unable to detect register"
else:
address = get_wide_dword(ea + 8) + ea + 8
for b in patches[register]:
patch_byte(ea, b)
ea += 1
if ea % 4 != 0:
ea += 2
patch_dword(ea, address)
elif pop[:3] == 'x5dxf8x04':
register = ord(pop[3]) >> 4
if register in patches:
address = get_wide_dword(ea + 8) + ea + 8
for b in patches[register]:
patch_byte(ea, b)
ea += 1
patch_dword(ea, address)
else:
print "POP instruction not found"
else:
print "Wrong operand type on +4:", get_operand_type(ea + 4, 0)
else:
print "Unable to detect first instructions"

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ— แƒ™แƒฃแƒ แƒกแƒแƒ แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒแƒช แƒ’แƒ•แƒ˜แƒœแƒ“แƒ - 0xB4B2 - แƒ“แƒ แƒ•แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒก:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ’แƒแƒ แƒ“แƒ แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ”แƒ‘แƒ˜แƒกแƒ, แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒก:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ˜แƒœแƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, BLX แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฎแƒ“แƒ”แƒ‘แƒ แƒแƒคแƒกแƒ”แƒขแƒฃแƒ แƒ˜:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒแƒคแƒกแƒ”แƒขแƒก LR-แƒ“แƒแƒœ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ”, แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— LR-แƒก แƒ“แƒ แƒ›แƒ˜แƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒ˜แƒฅ. 0x72044 + 0xC = 0x72050. แƒแƒ› แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ:

def put_unconditional_branch(source, destination):
offset = (destination - source - 4) >> 1
if offset > 2097151 or offset < -2097152:
raise RuntimeError("Invalid offset")
if offset > 1023 or offset < -1024:
instruction1 = 0xf000 | ((offset >> 11) & 0x7ff)
instruction2 = 0xb800 | (offset & 0x7ff)
patch_word(source, instruction1)
patch_word(source + 2, instruction2)
else:
instruction = 0xe000 | (offset & 0x7ff)
patch_word(source, instruction)
ea = here()
if get_wide_word(ea) == 0xb503: #PUSH {R0,R1,LR}
ea1 = ea + 6
if get_wide_word(ea + 2) == 0xbf00: #NOP
ea1 += 2
offset = get_wide_dword(ea1)
put_unconditional_branch(ea, (ea1 + offset) & 0xffffffff)
else:
print "Unable to detect first instruction"

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— IDA แƒ›แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ  แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ–แƒ”. แƒ˜แƒก แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒก แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ”แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒ˜แƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ HexRays-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒกแƒ˜แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ”แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒ

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒกแƒฌแƒแƒ•แƒšแƒ”แƒ— แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒจแƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ‘แƒ˜แƒœแƒ“แƒ•แƒแƒกแƒ—แƒแƒœ แƒ’แƒแƒ›แƒ™แƒšแƒแƒ•แƒ”แƒ‘แƒ libsgmainso-6.4.36.so UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ JNI_OnLoad.

int __fastcall real_JNI_OnLoad(JavaVM *vm)
{
int result; // r0
jclass clazz; // r0 MAPDST
int v4; // r0
JNIEnv *env; // r4
int v6; // [sp-40h] [bp-5Ch]
int v7; // [sp+Ch] [bp-10h]
v7 = *(_DWORD *)off_8AC00;
if ( !vm )
goto LABEL_39;
sub_7C4F4();
env = (JNIEnv *)sub_7C5B0(0);
if ( !env )
goto LABEL_39;
v4 = sub_72CCC();
sub_73634(v4);
sub_73E24(&unk_83EA6, &v6, 49);
clazz = (jclass)((int (__fastcall *)(JNIEnv *, int *))(*env)->FindClass)(env, &v6);
if ( clazz
&& (sub_9EE4(),
sub_71D68(env),
sub_E7DC(env) >= 0
&& sub_69D68(env) >= 0
&& sub_197B4(env, clazz) >= 0
&& sub_E240(env, clazz) >= 0
&& sub_B8B0(env, clazz) >= 0
&& sub_5F0F4(env, clazz) >= 0
&& sub_70640(env, clazz) >= 0
&& sub_11F3C(env) >= 0
&& sub_21C3C(env, clazz) >= 0
&& sub_2148C(env, clazz) >= 0
&& sub_210E0(env, clazz) >= 0
&& sub_41B58(env, clazz) >= 0
&& sub_27920(env, clazz) >= 0
&& sub_293E8(env, clazz) >= 0
&& sub_208F4(env, clazz) >= 0) )
{
result = (sub_B7B0(env, clazz) >> 31) | 0x10004;
}
else
{
LABEL_39:
result = -1;
}
return result;
}

แƒ›แƒแƒ“แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒแƒฎแƒšแƒแƒก แƒ›แƒ˜แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒก:

  sub_73E24(&unk_83EA6, &v6, 49);
clazz = (jclass)((int (__fastcall *)(JNIEnv *, int *))(*env)->FindClass)(env, &v6);

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜ sub_73E24 แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒ’แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜แƒ. แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒแƒ“, แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜ แƒ“แƒ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜. แƒชแƒฎแƒแƒ“แƒ˜แƒ, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ‘แƒฃแƒคแƒ”แƒ แƒจแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ’แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒฎแƒแƒ–แƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” FindClass, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก แƒ›แƒ”แƒแƒ แƒ” แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒแƒ“. แƒแƒฅแƒ”แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜ แƒแƒ แƒ˜แƒก แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒแƒœ แƒฎแƒแƒ–แƒ˜แƒก แƒกแƒ˜แƒ’แƒ แƒซแƒ”. แƒ•แƒชแƒแƒ“แƒแƒ— แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ, แƒ›แƒแƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒ•แƒ˜แƒ—แƒฎแƒ แƒแƒก, แƒ›แƒ˜แƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒ—แƒฃ แƒแƒ แƒ แƒกแƒฌแƒแƒ แƒ˜ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฃแƒคแƒ แƒ แƒแƒฎแƒšแƒแƒก แƒ›แƒ˜แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ›แƒแƒกแƒจแƒ˜ sub_73E24.

int __fastcall sub_73E56(unsigned __int8 *in, unsigned __int8 *out, size_t size)
{
int v4; // r6
int v7; // r11
int v8; // r9
int v9; // r4
size_t v10; // r5
int v11; // r0
struc_1 v13; // [sp+0h] [bp-30h]
int v14; // [sp+1Ch] [bp-14h]
int v15; // [sp+20h] [bp-10h]
v4 = 0;
v15 = *(_DWORD *)off_8AC00;
v14 = 0;
v7 = sub_7AF78(17);
v8 = sub_7AF78(size);
if ( !v7 )
{
v9 = 0;
goto LABEL_12;
}
(*(void (__fastcall **)(int, const char *, int))(v7 + 12))(v7, "DcO/lcK+h?m3c*q@", 16);
if ( !v8 )
{
LABEL_9:
v4 = 0;
goto LABEL_10;
}
v4 = 0;
if ( !in )
{
LABEL_10:
v9 = 0;
goto LABEL_11;
}
v9 = 0;
if ( out )
{
memset(out, 0, size);
v10 = size - 1;
(*(void (__fastcall **)(int, unsigned __int8 *, size_t))(v8 + 12))(v8, in, v10);
memset(&v13, 0, 0x14u);
v13.field_4 = 3;
v13.field_10 = v7;
v13.field_14 = v8;
v11 = sub_6115C(&v13, &v14);
v9 = v11;
if ( v11 )
{
if ( *(_DWORD *)(v11 + 4) == v10 )
{
qmemcpy(out, *(const void **)v11, v10);
v4 = *(_DWORD *)(v9 + 4);
}
else
{
v4 = 0;
}
goto LABEL_11;
}
goto LABEL_9;
}
LABEL_11:
sub_7B148(v7);
LABEL_12:
if ( v8 )
sub_7B148(v8);
if ( v9 )
sub_7B148(v9);
return v4;
}

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ sub_7AF78 แƒฅแƒ›แƒœแƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ–แƒแƒ›แƒ˜แƒก แƒ‘แƒแƒ˜แƒขแƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒแƒ› แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ  แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ—). แƒแƒฅ แƒแƒ แƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ: แƒ”แƒ แƒ—แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒฎแƒแƒ–แƒก "DcO/lcK+h?m3c*q@" (แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒ›แƒ˜แƒกแƒแƒฎแƒ•แƒ”แƒ“แƒ แƒ˜แƒ, แƒ แƒแƒ› แƒ”แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒ), แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒแƒ แƒ˜แƒ•แƒ” แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜ แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก sub_6115C. แƒ›แƒแƒ“แƒ˜, แƒแƒ› แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒจแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒœแƒ˜แƒจแƒœแƒแƒ— แƒ•แƒ”แƒšแƒ˜ 3 แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒ—. แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒ แƒ›แƒแƒฃแƒ•แƒ แƒแƒ› แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’.

int __fastcall sub_611B4(struc_1 *a1, _DWORD *a2)
{
int v3; // lr
unsigned int v4; // r1
int v5; // r0
int v6; // r1
int result; // r0
int v8; // r0
*a2 = 820000;
if ( a1 )
{
v3 = a1->field_14;
if ( v3 )
{
v4 = a1->field_4;
if ( v4 < 0x19 )
{
switch ( v4 )
{
case 0u:
v8 = sub_6419C(a1->field_0, a1->field_10, v3);
goto LABEL_17;
case 3u:
v8 = sub_6364C(a1->field_0, a1->field_10, v3);
goto LABEL_17;
case 0x10u:
case 0x11u:
case 0x12u:
v8 = sub_612F4(
a1->field_0,
v4,
*(_QWORD *)&a1->field_8,
*(_QWORD *)&a1->field_8 >> 32,
a1->field_10,
v3,
a2);
goto LABEL_17;
case 0x14u:
v8 = sub_63A28(a1->field_0, v3);
goto LABEL_17;
case 0x15u:
sub_61A60(a1->field_0, v3, a2);
return result;
case 0x16u:
v8 = sub_62440(a1->field_14);
goto LABEL_17;
case 0x17u:
v8 = sub_6226C(a1->field_10, v3);
goto LABEL_17;
case 0x18u:
v8 = sub_63530(a1->field_14);
LABEL_17:
v6 = 0;
if ( v8 )
{
*a2 = 0;
v6 = v8;
}
return v6;
default:
LOWORD(v5) = 28032;
goto LABEL_5;
}
}
}
}
LOWORD(v5) = -27504;
LABEL_5:
HIWORD(v5) = 13;
v6 = 0;
*a2 = v5;
return v6;
}

แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ•แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒ“แƒ แƒ” แƒ›แƒ˜แƒ”แƒœแƒ˜แƒญแƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ 3. แƒจแƒ”แƒฎแƒ”แƒ“แƒ”แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒก 3: แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก sub_6364C แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒฅ แƒฌแƒ˜แƒœแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒจแƒ˜, แƒแƒœแƒฃ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ—แƒฃ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ“แƒแƒแƒ™แƒ•แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ— sub_6364Cแƒ›แƒแƒกแƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ›แƒแƒ˜แƒชแƒœแƒแƒ— RC4 แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒ“แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜. แƒ•แƒชแƒแƒ“แƒแƒ— แƒ™แƒšแƒแƒกแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ. แƒแƒ˜ แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ: com/taobao/wireless/security/adapter/JNICLlibrary. แƒ“แƒ˜แƒ“แƒ˜! แƒฉแƒ•แƒ”แƒœ แƒกแƒฌแƒแƒ  แƒ’แƒ–แƒแƒ–แƒ” แƒ•แƒแƒ แƒ—.

แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ•แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒ Natives, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ’แƒ•แƒแƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” doCommandNative. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก JNI_OnLoad, แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒกแƒจแƒ˜ แƒ•แƒžแƒแƒฃแƒšแƒแƒ‘แƒ— sub_B7B0:

int __fastcall sub_B7F6(JNIEnv *env, jclass clazz)
{
char signature[41]; // [sp+7h] [bp-55h]
char name[16]; // [sp+30h] [bp-2Ch]
JNINativeMethod method; // [sp+40h] [bp-1Ch]
int v8; // [sp+4Ch] [bp-10h]
v8 = *(_DWORD *)off_8AC00;
decryptString((unsigned __int8 *)&unk_83ED9, (unsigned __int8 *)name, 0x10u);// doCommandNative
decryptString((unsigned __int8 *)&unk_83EEA, (unsigned __int8 *)signature, 0x29u);// (I[Ljava/lang/Object;)Ljava/lang/Object;
method.name = name;
method.signature = signature;
method.fnPtr = sub_B69C;
return ((int (__fastcall *)(JNIEnv *, jclass, JNINativeMethod *, int))(*env)->RegisterNatives)(env, clazz, &method, 1) >> 31;
}

แƒ“แƒ แƒ›แƒแƒ แƒ—แƒšแƒแƒช, แƒแƒฅ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— doCommandNative. แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒชแƒ˜แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜. แƒ•แƒœแƒแƒฎแƒแƒ— แƒ แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก.

int __fastcall doCommandNative(JNIEnv *env, jobject obj, int command, jarray args)
{
int v5; // r5
struc_2 *a5; // r6
int v9; // r1
int v11; // [sp+Ch] [bp-14h]
int v12; // [sp+10h] [bp-10h]
v5 = 0;
v12 = *(_DWORD *)off_8AC00;
v11 = 0;
a5 = (struc_2 *)malloc(0x14u);
if ( a5 )
{
a5->field_0 = 0;
a5->field_4 = 0;
a5->field_8 = 0;
a5->field_C = 0;
v9 = command % 10000 / 100;
a5->field_0 = command / 10000;
a5->field_4 = v9;
a5->field_8 = command % 100;
a5->field_C = env;
a5->field_10 = args;
v5 = sub_9D60(command / 10000, v9, command % 100, 1, (int)a5, &v11);
}
free(a5);
if ( !v5 && v11 )
sub_7CF34(env, v11, &byte_83ED7);
return v5;
}

แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒชแƒœแƒแƒ—, แƒ แƒแƒ› แƒแƒฅ แƒแƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒ•แƒšแƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒฃแƒ  แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒจแƒ˜ แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ. แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ 10601.

แƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒแƒ› แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒกแƒแƒ› แƒ แƒ˜แƒชแƒฎแƒ•แƒก: แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ/10000, แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ % 10000/100 ะธ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ % 10, แƒแƒœแƒฃ แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, 1, 6 แƒ“แƒ 1. แƒ”แƒก แƒกแƒแƒ›แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ JNIEnv แƒ“แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒก แƒ“แƒ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ. แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ N1, N2 แƒ“แƒ N3) แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”.

แฒ แƒแƒฆแƒแƒช แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒฎแƒ” แƒ˜แƒ•แƒกแƒ”แƒ‘แƒ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ JNI_OnLoad.
แƒฎแƒ”แƒจแƒ˜ แƒ’แƒ–แƒแƒก แƒกแƒแƒ›แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜ แƒจแƒ˜แƒคแƒ แƒแƒ•แƒก. แƒฎแƒ˜แƒก แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒคแƒฃแƒ แƒชแƒ”แƒšแƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก. แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒจแƒแƒ‘แƒšแƒ˜แƒก แƒ™แƒ•แƒแƒœแƒซแƒจแƒ˜. แƒ™แƒแƒ“แƒจแƒ˜ แƒ˜แƒ› แƒแƒ“แƒ’แƒ˜แƒšแƒ˜แƒก แƒžแƒแƒ•แƒœแƒ, แƒกแƒแƒ“แƒแƒช แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ แƒฎแƒ”แƒก, แƒแƒ  แƒแƒ แƒ˜แƒก แƒ แƒ—แƒฃแƒšแƒ˜, แƒ—แƒฃ แƒ’แƒ”แƒกแƒ›แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ (แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒแƒฆแƒ•แƒฌแƒ”แƒ แƒ— แƒ›แƒแƒ— แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒแƒ  แƒ’แƒแƒ•แƒคแƒฃแƒญแƒแƒ— แƒฃแƒ™แƒ•แƒ” แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ“แƒ˜แƒ“แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ).

แƒ›แƒ”แƒขแƒ˜ แƒ“แƒแƒ‘แƒœแƒ”แƒฃแƒšแƒแƒ‘แƒ

แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒฃแƒœแƒ“แƒ แƒ’แƒแƒจแƒ˜แƒคแƒ แƒแƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜: 0x5F1AC. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฏแƒ”แƒ  แƒแƒ“แƒ แƒ”แƒ แƒ’แƒแƒฎแƒแƒ แƒ”แƒ‘แƒ: UC Browser-แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ แƒ›แƒแƒ แƒ˜แƒ’แƒ˜ แƒกแƒ˜แƒฃแƒ แƒžแƒ แƒ˜แƒ–แƒ˜ แƒ›แƒแƒแƒ›แƒ–แƒแƒ“แƒ”แƒก แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก.

แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒกแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒแƒ›แƒแƒงแƒแƒšแƒ˜แƒ‘แƒ“แƒ Java แƒ™แƒแƒ“แƒจแƒ˜, แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ—
แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” 0x4D070. แƒ“แƒ แƒแƒฅ แƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ‘แƒ˜แƒœแƒ“แƒ•แƒ แƒ’แƒ•แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒแƒ  แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒก R7 แƒ“แƒ R4-แƒจแƒ˜:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒก R11-แƒ–แƒ”:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ“แƒแƒœ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒ”แƒแƒ แƒ” แƒ˜แƒœแƒ“แƒ”แƒฅแƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒ˜แƒก R4-แƒจแƒ˜. แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ 230 แƒ”แƒšแƒ”แƒ›แƒ”แƒœแƒขแƒ˜แƒ.

แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒก แƒแƒ›แƒแƒ–แƒ”? แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฃแƒ—แƒฎแƒ แƒแƒ— IDA-แƒก, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜: Edit -> Other -> Specify switch idiom.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜แƒ. แƒ›แƒแƒ’แƒ แƒแƒ›, แƒ›แƒ˜แƒก แƒฏแƒฃแƒœแƒ’แƒšแƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ•แƒšแƒ˜แƒกแƒแƒก, แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒแƒ›แƒฉแƒœแƒ”แƒ•แƒ— แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒฃแƒ™แƒ•แƒ” แƒœแƒแƒชแƒœแƒแƒ‘ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” แƒ–แƒแƒ แƒก sub_6115C:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ˜แƒงแƒ แƒฉแƒแƒ›แƒ แƒ—แƒ•แƒ”แƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒ”-3 แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒแƒฎแƒ“แƒ แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ RC4 แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ“แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ˜แƒ•แƒกแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ doCommandNative. แƒ’แƒแƒ•แƒ˜แƒฎแƒกแƒ”แƒœแƒแƒ— แƒ แƒ แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ แƒ˜แƒฅ magicInt แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒ— 16. แƒ•แƒฃแƒงแƒฃแƒ แƒ”แƒ‘แƒ— แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒก - แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ•แƒžแƒแƒฃแƒšแƒแƒ‘แƒ— แƒ™แƒแƒ“แƒก, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒชแƒ˜แƒ แƒ”แƒ‘แƒ.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ”แƒก แƒแƒ แƒ˜แƒก AES!

แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒ˜แƒกแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ: แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜, แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒ“แƒ, แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ, แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜ (แƒ›แƒ˜แƒกแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ AES แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ แƒ”แƒŸแƒ˜แƒ›แƒ–แƒ”). แƒ›แƒแƒ—แƒ—แƒแƒœ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒกแƒแƒ“แƒฆแƒแƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒฃแƒœแƒ“แƒ แƒฉแƒแƒ›แƒแƒงแƒแƒšแƒ˜แƒ‘แƒ“แƒ”แƒก sub_6115C, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ™แƒแƒ“แƒ˜แƒก แƒ”แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ™แƒแƒ แƒ’แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ‘แƒฃแƒœแƒ“แƒแƒ•แƒแƒœแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ˜แƒ“แƒ”แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜.

แƒžแƒแƒขแƒฉแƒ˜

แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒแƒ  แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒงแƒ•แƒ”แƒšแƒ แƒžแƒแƒขแƒฉแƒ˜ แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒก แƒ”แƒœแƒแƒ–แƒ” แƒฎแƒ”แƒšแƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— Android Studio, แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ˜แƒ›แƒแƒ•แƒ” แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒ“แƒ แƒฌแƒ”แƒ แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ— แƒ“แƒ แƒฉแƒแƒกแƒ•แƒ˜แƒ— แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ™แƒแƒ›แƒžแƒ˜แƒšแƒ”แƒ แƒ˜ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก. แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ.

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ”แƒ’แƒแƒ‘แƒ แƒ”แƒ‘แƒ˜ UC Browser-แƒ˜แƒก แƒ’แƒฃแƒœแƒ“แƒ˜แƒ“แƒแƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ–แƒ แƒฃแƒœแƒแƒ•แƒ“แƒœแƒ”แƒœ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ‘แƒแƒ–แƒ”. แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒœแƒแƒ’แƒ•แƒ˜แƒก แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒกแƒฎแƒ•แƒ. แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ ๐Ÿ™‚ แƒ—แƒฃแƒ›แƒชแƒ, แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒแƒ“แƒ’แƒ˜แƒšแƒ˜ แƒ™แƒแƒ“แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜. แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒ›แƒ˜แƒกแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒแƒ“ แƒ“แƒแƒงแƒแƒคแƒ แƒ“แƒ แƒ›แƒ”แƒ–แƒแƒ‘แƒ”แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ’แƒ•แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒกแƒฃแƒš แƒแƒ—แƒฎแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

ARM แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒแƒจแƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒแƒ—แƒฎแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒจแƒ˜ R0-R3, แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœแƒ˜, แƒแƒกแƒ”แƒ—แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒกแƒขแƒ”แƒ™แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—. LR แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก. แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜, แƒ แƒแƒ—แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ› แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒแƒ’แƒ“แƒ”แƒ‘แƒ— แƒ›แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒก. แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— PUSH.W {R0-R10,LR}. R7-แƒจแƒ˜ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒกแƒขแƒ”แƒ™แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก.

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒจแƒšแƒ˜แƒšแƒ˜ แƒ’แƒแƒ•แƒฎแƒกแƒœแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜ /data/local/tmp/aes "แƒแƒ‘" แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜
แƒแƒœแƒฃ แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“. R0-แƒจแƒ˜ แƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก, R1-แƒจแƒ˜ - แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜แƒก แƒแƒฆแƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜. แƒ“แƒ แƒแƒฅ แƒœแƒแƒ’แƒ•แƒ˜แƒก แƒ™แƒแƒ“แƒ˜ แƒ›แƒ—แƒแƒ•แƒ แƒ“แƒ”แƒ‘แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ”. แƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒœ แƒ’แƒแƒแƒ’แƒ แƒซแƒ”แƒšแƒแƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ, แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒ•แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ™แƒแƒ“แƒ–แƒ” แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒแƒก แƒœแƒแƒ’แƒ•แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒแƒ•แƒšแƒ˜แƒ— แƒ“แƒ แƒœแƒแƒ’แƒ•แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒžแƒแƒฉแƒ˜แƒก แƒ’แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒแƒก.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ แƒ”แƒ™แƒแƒ•แƒก แƒ’แƒแƒจแƒšแƒ˜แƒšแƒ˜.

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒกแƒแƒ›แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ Aes แƒแƒฅแƒ•แƒก แƒขแƒ˜แƒžแƒ˜ int. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ˜ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœแƒ•แƒ” แƒจแƒ”แƒ•แƒ˜แƒœแƒแƒฎแƒ”แƒ— แƒกแƒขแƒ”แƒ™แƒจแƒ˜, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ“แƒแƒฌแƒ”แƒ แƒ” แƒ›แƒแƒ—แƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜ แƒ“แƒแƒกแƒขแƒแƒ–แƒ”.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒกแƒแƒ›แƒ˜ แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ–แƒแƒ›แƒแƒก แƒ“แƒ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ“แƒแƒกแƒแƒกแƒ แƒฃแƒšแƒก, แƒ“แƒแƒฎแƒฃแƒ แƒ”แƒ— แƒคแƒแƒ˜แƒšแƒ˜, แƒแƒฆแƒแƒ“แƒ’แƒ˜แƒœแƒ”แƒ— แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒ”แƒ— แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ  แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ” Aes.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ— APK-แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒ—, แƒฎแƒ”แƒšแƒก แƒ•แƒแƒฌแƒ”แƒ แƒ— แƒ›แƒแƒก, แƒ•แƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ•แƒ— แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒแƒ–แƒ”/แƒ”แƒ›แƒฃแƒšแƒแƒขแƒแƒ แƒ–แƒ” แƒ“แƒ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒœแƒแƒ’แƒแƒ•แƒกแƒแƒงแƒ แƒ”แƒšแƒ˜ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ˜แƒฅ แƒฃแƒแƒ›แƒ แƒแƒ•แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ˜ แƒ˜แƒฌแƒ”แƒ แƒ”แƒ‘แƒ. แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒแƒก แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ แƒ’แƒแƒ“แƒ˜แƒก แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ–แƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒขแƒแƒ›แƒฆแƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ  แƒฉแƒแƒœแƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒจแƒ˜. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒแƒ  แƒ“แƒแƒ•แƒ”แƒšแƒแƒ“แƒแƒ— UC Browser-แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒกแƒแƒญแƒ˜แƒ แƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒแƒ•แƒ˜แƒฆแƒแƒ— แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒแƒ“แƒ แƒ” แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒ™แƒ•แƒšแƒแƒ• แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ: แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ onCreate-แƒ–แƒ” แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒแƒฅแƒขแƒ˜แƒ•แƒแƒ‘แƒ.

    const/16 v1, 0x62
new-array v1, v1, [B
fill-array-data v1, :encrypted_data
const/16 v0, 0x1f
invoke-static {v0, v1}, Lcom/uc/browser/core/d/c/g;->j(I[B)[B
move-result-object v1
array-length v2, v1
invoke-static {v2}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
const-string v0, "ololo"
invoke-static {v0, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I

แƒ•แƒแƒฌแƒงแƒแƒ‘แƒ—, แƒ•แƒแƒฌแƒ”แƒ แƒ— แƒฎแƒ”แƒšแƒก, แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— NullPointerException, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒ”แƒ—แƒแƒ“แƒ›แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ null.

แƒ™แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒก แƒ“แƒ แƒแƒก แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒจแƒ˜แƒคแƒ แƒแƒ•แƒก แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒฎแƒแƒ–แƒ”แƒ‘แƒก: โ€œMETA-INF/โ€ แƒ“แƒ โ€œ.RSAโ€. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒก. แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ™แƒšแƒแƒ•แƒ˜แƒจแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ”แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒแƒก. แƒ›แƒ” แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒ  แƒ›แƒกแƒฃแƒ แƒก แƒจแƒ”แƒ•แƒ”แƒฎแƒ แƒ˜แƒ›แƒแƒก, แƒ แƒแƒช แƒฎแƒ“แƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒกแƒฌแƒแƒ  แƒกแƒ”แƒ แƒ—แƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒก แƒ’แƒแƒ“แƒแƒ•แƒชแƒ”แƒ›แƒ—. แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜ แƒฎแƒแƒ–แƒ˜ แƒ˜แƒกแƒ”, แƒ แƒแƒ› "META-INF/"-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— "BLABLINF/", แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ” แƒแƒ› แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— APK-แƒจแƒ˜ แƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— squirrel แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒกแƒ”แƒ แƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒ˜.

แƒ•แƒแƒฌแƒงแƒแƒ‘แƒ—, แƒ•แƒแƒฌแƒ”แƒ แƒ— แƒฎแƒ”แƒšแƒก, แƒ•แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ—. แƒ‘แƒ˜แƒœแƒ’แƒ! แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜!

MitM

แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ— แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒขแƒแƒšแƒ˜ แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒ˜. แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒก แƒ’แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ CBC แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜.

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒก URL-แƒก, MD5-แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒก, โ€žextract_unzipsizeโ€œ แƒ“แƒ แƒ แƒ˜แƒชแƒฎแƒ•แƒก. แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ—: แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒก MD5 แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒจแƒ”แƒฃแƒคแƒฃแƒ—แƒแƒ•แƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ. แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— แƒ”แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒ“แƒ แƒ›แƒ˜แƒ•แƒชแƒ”แƒ— แƒ˜แƒ’แƒ˜ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒก. แƒ˜แƒ›แƒ˜แƒก แƒกแƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒ, แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ— SMS-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒ’แƒแƒœแƒ–แƒ แƒแƒฎแƒ•แƒ แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒ— โ€žPWNED!โ€œ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒชแƒ•แƒšแƒ˜แƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒแƒ  แƒžแƒแƒกแƒฃแƒฎแƒก: puds.ucweb.com/upgrade/index.xhtml แƒ“แƒ แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒแƒ แƒฅแƒ˜แƒ•แƒ˜. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒจแƒ˜ แƒ•แƒชแƒ•แƒšแƒ˜แƒ— MD5-แƒก (แƒ–แƒแƒ›แƒ แƒแƒ  แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒคแƒฃแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’), แƒ›แƒ”แƒแƒ แƒ”แƒจแƒ˜ แƒ•แƒแƒซแƒšแƒ”แƒ•แƒ— แƒแƒ แƒฅแƒ˜แƒ•แƒก แƒจแƒ”แƒคแƒฃแƒ—แƒฃแƒšแƒ˜ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒ—.

แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒฏแƒ”แƒ แƒ›แƒ” แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒก แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก แƒฃแƒจแƒ•แƒ”แƒ‘แƒก. แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒ แƒแƒฆแƒแƒช
แƒ›แƒแƒก แƒแƒ  แƒ›แƒแƒกแƒฌแƒแƒœแƒก. แƒแƒ› แƒ‘แƒฃแƒœแƒ“แƒแƒ•แƒแƒœแƒ˜ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒก แƒ’แƒแƒแƒœแƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ“แƒแƒกแƒชแƒ”แƒ›แƒก แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒก แƒ–แƒแƒ›แƒแƒก:

แƒ•แƒ”แƒซแƒ”แƒ‘แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒก UC แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜

แƒ˜แƒก แƒ“แƒแƒจแƒ˜แƒคแƒ แƒฃแƒšแƒ˜แƒ LEB128-แƒจแƒ˜. แƒžแƒแƒขแƒฉแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒแƒ“แƒœแƒแƒ• แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ›แƒ แƒฉแƒแƒ—แƒ•แƒแƒšแƒ, แƒ แƒแƒ› แƒแƒ แƒฅแƒ˜แƒ•แƒ˜ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒแƒ“ แƒ˜แƒงแƒ แƒ’แƒแƒ“แƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒœ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ แƒ“แƒแƒฃแƒจแƒ•แƒ.

แƒ•แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ— แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒก แƒ–แƒแƒ›แƒแƒก... แƒ“แƒ โ€“ แƒ’แƒแƒ›แƒแƒ แƒฏแƒ•แƒ”แƒ‘แƒ! ๐Ÿ™‚ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒแƒ แƒ˜แƒก แƒ•แƒ˜แƒ“แƒ”แƒแƒจแƒ˜.

https://www.youtube.com/watch?v=Nfns7uH03J8

แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒแƒฅแƒชแƒ˜แƒ

แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒแƒ“, แƒฐแƒแƒ™แƒ”แƒ แƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒœ UC Browser-แƒ˜แƒก แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ›แƒแƒ•แƒœแƒ” แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ“แƒ แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“. แƒ”แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ”แƒœ แƒ›แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒœแƒ”แƒ‘แƒแƒ แƒ—แƒ•แƒแƒก. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒคแƒ˜แƒจแƒ˜แƒœแƒ’แƒ˜แƒก แƒคแƒแƒœแƒฏแƒ แƒ”แƒ‘แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒแƒกแƒ”แƒ•แƒ” แƒคแƒแƒ แƒ—แƒแƒฎแƒšแƒ˜แƒก แƒฉแƒ˜แƒœแƒฃแƒ แƒ˜ แƒชแƒ˜แƒงแƒ•แƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒœแƒ˜, แƒžแƒแƒ แƒแƒšแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒแƒจแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒฅแƒฃแƒฅแƒ˜แƒ”แƒ‘แƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ˜แƒ— UC Browser-แƒ˜แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ“แƒ แƒ•แƒแƒชแƒœแƒแƒ‘แƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒ˜แƒ”แƒ  แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ˜แƒšแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ•แƒชแƒแƒ“แƒ”แƒ— แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒแƒ–แƒ” แƒ“แƒ แƒ›แƒ˜แƒก แƒกแƒแƒจแƒ˜แƒจแƒ แƒแƒ”แƒ‘แƒแƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ— แƒฉแƒ•แƒ”แƒœแƒ—แƒแƒœ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒก. แƒ˜แƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜ แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ“แƒ แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒกแƒแƒฎแƒ˜แƒคแƒแƒ—แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒแƒจแƒ™แƒแƒ แƒ แƒฎแƒ˜แƒšแƒ•แƒแƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ›แƒŸแƒฆแƒแƒ•แƒœแƒ”แƒ— แƒ“แƒแƒฃแƒชแƒ•แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜, แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒ แƒ›แƒ˜แƒกแƒ˜ แƒ˜แƒ’แƒœแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ“แƒ แƒ”. 27 แƒ›แƒแƒ แƒขแƒ˜ แƒ˜แƒงแƒ
แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ UC Browser 12.10.9.1193-แƒ˜แƒก แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒจแƒ”แƒ“แƒ˜แƒแƒ“แƒ HTTPS-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—: puds.ucweb.com/upgrade/index.xhtml.

แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, โ€žแƒจแƒ”แƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ˜แƒกโ€œ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒ แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒแƒ›แƒ“แƒ”, แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒจแƒ˜ PDF-แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒแƒ› แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒ— โ€žแƒแƒฃ, แƒ แƒแƒฆแƒแƒช แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ”แƒ“ แƒ›แƒแƒฎแƒ“แƒ!โ€œ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ  แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒฃแƒšแƒ PDF-แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒกแƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ แƒ‘แƒ แƒแƒฃแƒ–แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ แƒแƒช แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ• แƒฃแƒœแƒแƒ แƒ–แƒ” Google Play-แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ แƒฆแƒ•แƒ”แƒ•แƒ˜แƒ—.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ