UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻŽāĻžāĻ°ā§āĻšā§‡āĻ° āĻļā§‡āĻˇā§‡ āĻ†āĻŽāĻ°āĻž āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸ, āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻ…āĻ¸āĻŽāĻžāĻĒā§āĻ¤ āĻ•ā§‹āĻĄ āĻ˛ā§‹āĻĄ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻāĻ•āĻŸāĻŋ āĻ˛ā§āĻ•āĻžāĻ¨ā§‹ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ†āĻŦāĻŋāĻˇā§āĻ•āĻžāĻ° āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤ āĻ†āĻœ āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–āĻŦ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻāĻ‡ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻšā§āĻ¯āĻžāĻ•āĻžāĻ°āĻ°āĻž āĻ¤āĻžāĻĻā§‡āĻ° āĻ¨āĻŋāĻœā§‡āĻĻā§‡āĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ•āĻŋāĻ›ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻ—ā§‡, UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°āĻŸāĻŋāĻ° āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻ¨ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻ–ā§āĻŦ āĻ†āĻ•ā§āĻ°āĻŽāĻ¨āĻžāĻ¤ā§āĻŽāĻ•āĻ­āĻžāĻŦā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛: āĻāĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ˛āĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ā§‡ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ†āĻĄāĻŧāĻžāĻ˛ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻ‡āĻŸ āĻĨā§‡āĻ•ā§‡ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ (āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ­ā§‡āĻŦā§‡āĻ›āĻŋāĻ˛ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ›ā§‡, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§āĻŖ āĻ­āĻŋāĻĄāĻŋāĻ“, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻāĻ‡ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°āĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ APK āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ), āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻš āĻ­ā§€āĻ¤āĻŋāĻ•āĻ° āĻŦā§āĻ¯āĻžāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°āĻŸāĻŋ āĻĒā§āĻ°āĻžāĻ¨ā§‹, āĻĻā§āĻ°ā§āĻŦāĻ˛ āĻāĻŦāĻ‚ āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻœāĻŋāĻ¨āĻŋāĻ¸āĨ¤ āĻ­āĻŋāĻ•ā§‡āĻ¤ā§‡ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ‡āĻ‰āĻ¸āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻ—ā§āĻ°ā§āĻĒā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻŦāĻŋāĻˇāĻ¯āĻŧ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧ āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ…āĻ­āĻŋāĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ…āĻ¨ā§‡āĻ• āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ 2016 āĻ¸āĻžāĻ˛ā§‡ āĻāĻŽāĻ¨āĻ•āĻŋ āĻ›āĻŋāĻ˛ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻ¨ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ­āĻžāĻˇāĻžāĻ¯āĻŧ (āĻšā§āĻ¯āĻžāĻ, āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻ¨-āĻŦā§āĻ˛āĻ•āĻŋāĻ‚ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻ¨)āĨ¤

āĻ˛ā§‡āĻ–āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ‡āĻ‰āĻ¸āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻ—ā§āĻ—āĻ˛ āĻĒā§āĻ˛ā§‡āĻ¤ā§‡ 500 āĻāĻ° āĻŦā§‡āĻļāĻŋ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ā§‡āĻļāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻāĻŸāĻŋ āĻšāĻŋāĻ¤ā§āĻ¤āĻžāĻ•āĻ°ā§āĻˇāĻ• - āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° Google Chrome āĻāĻ° āĻ†āĻ°āĻ“ āĻ†āĻ›ā§‡ā§ˇ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§‹āĻšāĻ¨āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻ¨ āĻāĻŦāĻ‚ Google Play-āĻ¤ā§‡ āĻ•āĻŋāĻ›ā§ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡ āĻĒā§āĻ¨āĻƒāĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻĒā§āĻ°āĻšā§āĻ° āĻ…āĻ­āĻŋāĻ¯ā§‹āĻ— āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ—āĻŦā§‡āĻˇāĻŖāĻžāĻ° āĻ•āĻžāĻ°āĻŖ āĻ›āĻŋāĻ˛: āĻ†āĻŽāĻ°āĻž UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻ–āĻžāĻ°āĻžāĻĒ āĻ•āĻŋāĻ›ā§ āĻ•āĻ°āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§‡āĻ–āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĨ¤ āĻ†āĻ° āĻĻā§‡āĻ–āĻž āĻ—ā§‡āĻ˛ āĻ¸ā§‡ āĻ•āĻŋ āĻ•āĻ°ā§‡!

āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ•ā§‹āĻĄā§‡, āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻ•ā§‹āĻĄ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻ†āĻŦāĻŋāĻˇā§āĻ•ā§ƒāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¯āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĒā§āĻ°āĻ•āĻžāĻļā§‡āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽā§‡āĻ° āĻĒāĻ°āĻŋāĻĒāĻ¨ā§āĻĨā§€ Google Play-āĻ¤ā§‡āĨ¤ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻ•ā§‹āĻĄ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻ‡āĻ‰āĻ¸āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻ•āĻ°ā§‡, āĻ¯āĻž āĻāĻ•āĻŸāĻŋ 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, āĻ¯āĻž āĻļā§āĻ°ā§ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻ•āĻŋāĻ›ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§‡ āĻ¯āĻžāĻ¨āĻœāĻŸā§‡ āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻ¤āĻŋāĻ¨āĻŋ āĻ•āĻŋāĻ›ā§ āĻ†āĻĒāĻĄā§‡āĻŸ āĻŦāĻž āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻĄāĻŋāĻ‰āĻ˛ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ†āĻĻā§‡āĻļ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋ āĻāĻ‡ āĻœāĻžāĻ¤ā§€āĻ¯āĻŧ āĻ†āĻĻā§‡āĻļ āĻĻā§‡āĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¯ā§‡ āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻŋāĻĄāĻŋāĻāĻĢ āĻ–ā§āĻ˛āĻ¤ā§‡ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋ, āĻāĻŸāĻŋ āĻ‰āĻĒāĻ°ā§‡ āĻ‰āĻ˛ā§āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ° āĻĒāĻ°ā§‡ āĻāĻŸāĻŋ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻ•ā§āĻ°āĻŽāĻŖ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻāĻ‡ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ: āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĒāĻŋāĻĄāĻŋāĻāĻĢ āĻ–ā§‹āĻ˛āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻ¯āĻž APK-āĻ āĻ¨ā§‡āĻ‡ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡ āĻāĻŸāĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻĨā§‡āĻ•ā§‡ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻ˛āĻ•ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ¯ā§‡, āĻ¤āĻžāĻ¤ā§āĻ¤ā§āĻŦāĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻ‡āĻ‰āĻ¸āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°āĻ•ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ•āĻŋāĻ›ā§ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻŦāĻžāĻ§ā§āĻ¯ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ - āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻšāĻžāĻ˛ā§ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ—āĻ āĻŋāĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĻ¨āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡āĻ° āĻĒā§āĻ°ā§‹āĻŸā§‹āĻ•āĻ˛āĻŸāĻŋ āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻ…āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ āĻ¯ā§‡ āĻŦāĻžāĻ§āĻžāĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻ•āĻ°āĻž āĻāĻŦāĻ‚ PDF āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¸āĻšāĻœ āĻšāĻŦā§‡āĨ¤

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻ¯āĻ–āĻ¨ āĻāĻ•āĻœāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻŋāĻĄāĻŋāĻāĻĢ āĻ–ā§āĻ˛āĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧ, āĻ¤āĻ–āĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ•ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻĻā§‡āĻ–āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻ•āĻŸāĻŋ POST āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ†āĻ›ā§‡ puds.ucweb.com/upgrade/index.xhtmlāĻ¤āĻžāĻšāĻ˛ā§‡
āĻĒāĻŋāĻĄāĻŋāĻāĻĢ āĻāĻŦāĻ‚ āĻ…āĻĢāĻŋāĻ¸ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸ āĻĻā§‡āĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ° āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŸāĻž āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°āĻž āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ• āĻ¯ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°ā§‡ (āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°), āĻāĻŦāĻ‚ āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ¯āĻŧ āĻ¯āĻž āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨: āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻāĻŦāĻ‚, āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ , āĻ…āĻ¨ā§āĻ¯āĻ•āĻŋāĻ›ā§. āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛ āĻāĻ‡ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻŸāĻŋ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ–āĻŖā§āĻĄā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°ā§āĻ¨

āĻ‰āĻ¤ā§āĻ¤āĻ° āĻ–āĻŖā§āĻĄ

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻœāĻŋāĻĒ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤

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", āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ), āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻŦāĻ˛āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¯āĻž āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻŦā§‡āĨ¤
āĻāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻāĻ—āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ• gj. āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–ā§āĻ¯ āĻ¯ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻšāĻ˛ āĻ…āĻĢāĻ¸ā§‡āĻŸ 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 āĻāĻ° āĻ¸āĻŽāĻžāĻ¨, āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ¸āĻŽā§āĻ­āĻžāĻŦā§āĻ¯ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻāĻ•āĻŸāĻŋāĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧāĨ¤

āĻ†āĻŽāĻ°āĻž āĻ•ā§‹āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ…āĻŦāĻŋāĻ°āĻ¤. āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻž āĻ˛āĻžāĻĢ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦ-āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻžāĻŽā§‚āĻ˛āĻ• āĻ¨āĻžāĻŽ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§‡ āĻ¨āĻŋāĻœā§‡āĻĻā§‡āĻ° āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ‡ decryptBytesByKey.

āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĨā§‡āĻ•ā§‡ āĻ†āĻ°āĻ“ āĻĻā§āĻŸāĻŋ āĻŦāĻžāĻ‡āĻŸ āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ—ā§‡āĻ›ā§‡āĨ¤ āĻāĻŸāĻž āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻ¯ā§‡ āĻāĻ‡ āĻ­āĻžāĻŦā§‡ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§€ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

    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 āĻŽāĻžāĻ¨ā§‡ āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒāĻļāĻ¨, āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻ¤ā§‹ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ•ā§āĻ˛āĻžāĻ¸ javax.crypto.Cipher. āĻāĻŦāĻ‚ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻŋāĻ›ā§ 10601 āĻ¨āĻŽā§āĻŦāĻ° āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ°āĻžāĻ‰āĻŸāĻžāĻ°ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ - āĻāĻŸāĻŋ āĻĻā§ƒāĻļā§āĻ¯āĻ¤ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ¨āĻŽā§āĻŦāĻ°āĨ¤

āĻŸā§āĻ°āĻžāĻ¨āĻœāĻŋāĻļāĻ¨ā§‡āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻšā§‡āĻ‡āĻ¨ā§‡āĻ° āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ‡ āĻ¯āĻž āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡ āĻ†āĻ‡āĻ†āĻ°āĻ‰āĻŸāĻžāĻ° āĻ•āĻŽā§āĻĒā§‹āĻ¨ā§‡āĻ¨ā§āĻŸ āĻāĻŦāĻ‚ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ 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.so (āĻ¯āĻž āĻ†āĻ¸āĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ .jar āĻāĻŦāĻ‚ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻ āĻŋāĻ• āĻ‰āĻĒāĻ°ā§‡ āĻ•āĻŋāĻ›ā§ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒāĻļāĻ¨-āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ā§‡āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ) āĻāĻ•āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ†āĻ›ā§‡: libsgmainso-6.4.36.so. āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ IDA-āĻ¤ā§‡ āĻ–ā§āĻ˛āĻŋ āĻāĻŦāĻ‚ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻš āĻāĻ•āĻ—ā§āĻšā§āĻ› āĻĄāĻžāĻ¯āĻŧāĻžāĻ˛āĻ— āĻŦāĻ•ā§āĻ¸ āĻĒāĻžāĻ‡āĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛ āĻŦāĻŋāĻ­āĻžāĻ— āĻļāĻŋāĻ°ā§‹āĻ¨āĻžāĻŽ āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ āĻ…āĻŦā§ˆāĻ§āĨ¤ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĻ•ā§‡ āĻœāĻŸāĻŋāĻ˛ āĻ•āĻ°āĻžāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ¤āĻŦā§‡ āĻāĻŸāĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡: āĻāĻ•āĻŸāĻŋ ELF āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻšā§‡āĻĄāĻžāĻ° āĻŸā§‡āĻŦāĻŋāĻ˛ āĻ¯āĻĨā§‡āĻˇā§āĻŸāĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻšā§‡āĻĄāĻžāĻ°ā§‡ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻļā§‚āĻ¨ā§āĻ¯ āĻ•āĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻ•ā§‡āĻŦāĻ˛ āĻŦāĻŋāĻ­āĻžāĻ— āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻŋāĨ¤

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ†āĻ‡āĻĄāĻŋāĻ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ†āĻŦāĻžāĻ° āĻ–ā§āĻ˛ā§āĻ¨āĨ¤

āĻœāĻžāĻ­āĻž āĻ­āĻžāĻ°ā§āĻšā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§‡āĻļāĻŋāĻ¨āĻ•ā§‡ āĻŦāĻ˛āĻžāĻ° āĻĻā§āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡āĻŸāĻŋ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡ āĻœāĻžāĻ­āĻž āĻ•ā§‹āĻĄā§‡ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ˜ā§‹āĻˇāĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ āĻŋāĻ• āĻ•ā§‹āĻĨāĻžāĻ¯āĻŧ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻœāĻžāĻ¤āĻŋāĻ° āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻ¯āĻŧ Java_package_name_ClassName_MethodName.

āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋ āĻšāĻ˛ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŸāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻ•āĻ°āĻž (āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ JNI_āĻ…āĻ¨āĻ˛ā§‹āĻĄ)
āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ° āĻ¨ā§‡āĻŸāĻŋāĻ­āĻ¸.

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ¯āĻĻāĻŋ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ, āĻ¨āĻžāĻŽāĻŸāĻŋ āĻāĻ‡āĻ°āĻ•āĻŽ āĻšāĻ“āĻ¯āĻŧāĻž āĻ‰āĻšāĻŋāĻ¤: Java_com_taobao_wireless_security_adapter_JNICLibrary_doCommandNative.

āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻ•ā§ƒāĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻŽāĻ¨ āĻ•ā§‹āĻ¨āĻ“ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¨ā§‡āĻ‡, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ° āĻ¨ā§‡āĻŸāĻŋāĻ­āĻ¸.
āĻšāĻ˛ā§āĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻ¯āĻžāĻ‡ JNI_āĻ…āĻ¨āĻ˛ā§‹āĻĄ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ›āĻŦāĻŋāĻŸāĻŋ āĻĻā§‡āĻ–āĻŋ:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻŋ āĻšāĻšā§āĻ›ā§‡? āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻœāĻ°ā§‡, āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻļā§āĻ°ā§ āĻāĻŦāĻ‚ āĻļā§‡āĻˇ āĻāĻ†āĻ°āĻāĻŽ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¤āĻžāĻ° āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡ (āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, R0, R1 āĻāĻŦāĻ‚ R2), āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ LR āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§, āĻ¯āĻžāĻ¤ā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻĢā§‡āĻ°āĻ¤ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ . āĻļā§‡āĻˇ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻ¨āĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°ā§‡, āĻāĻŦāĻ‚ āĻĢā§‡āĻ°āĻ¤ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ…āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§‡ āĻĒāĻŋāĻ¸āĻŋ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ - āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ˜āĻ¨āĻŋāĻˇā§āĻ āĻ­āĻžāĻŦā§‡ āĻ¤āĻžāĻ•āĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻļā§‡āĻˇā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§‡āĨ¤ āĻāĻ° āĻĒāĻ° āĻ•ā§‡āĻŽāĻ¨ āĻšāĻŦā§‡ āĻ¤āĻž āĻšāĻŋāĻ¸āĻžāĻŦ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•
āĻ•ā§‹āĻĄ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ āĻŋāĻ•āĻžāĻ¨āĻž 1xB0 R130 āĻ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ 5 āĻŦāĻŋāĻ¯āĻŧā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŸāĻŋ R0 āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻāĻ¤ā§‡ 0x10 āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŸāĻž 0xB13B āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ†āĻ‰āĻŸ. āĻāĻ‡āĻ­āĻžāĻŦā§‡, IDA āĻŽāĻ¨ā§‡ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻļā§‡āĻˇ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ• āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡ āĻāĻŸāĻŋ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻ āĻŋāĻ•āĻžāĻ¨āĻž 0xB13B āĻ āĻ¯āĻžāĻšā§āĻ›ā§‡āĨ¤

āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸ā§āĻŽāĻ°āĻŖ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¯ā§‡ ARM āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°ā§‡āĻ° āĻĻā§āĻŸāĻŋ āĻŽā§‹āĻĄ āĻāĻŦāĻ‚ āĻĻā§āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: ARM āĻāĻŦāĻ‚ āĻĨāĻžāĻŽā§āĻŦāĨ¤ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ° āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻŦāĻŋāĻŸ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻ°āĻ•ā§‡ āĻŦāĻ˛ā§‡ āĻ¯ā§‡ āĻ•ā§‹āĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ¸ā§‡āĻŸāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻŸāĻŋ āĻ†āĻ¸āĻ˛ā§‡ 0xB13A, āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻŦāĻŋāĻŸā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĨāĻžāĻŽā§āĻŦ āĻŽā§‹āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡āĨ¤

āĻāĻ‡ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻļā§āĻ°ā§āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ "āĻ…ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻŸāĻžāĻ°" āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚
āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻž āĻ•ā§‹āĻĄāĨ¤ āĻ†āĻŽāĻ°āĻž āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ‰āĻĒāĻ° āĻŦāĻžāĻ¸ āĻ•āĻ°āĻŦ āĻ¨āĻž - āĻ†āĻŽāĻ°āĻž āĻļā§āĻ§ā§ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŋ
āĻ¯ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŦ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ†āĻ¸āĻ˛ āĻļā§āĻ°ā§āĻŸāĻž āĻāĻ•āĻŸā§ āĻĻā§‚āĻ°ā§‡āĨ¤

āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ 0xB13A-āĻ āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻžāĻ‡ IDA āĻ¨āĻŋāĻœā§‡āĻ‡ āĻšāĻŋāĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĻŋ āĻ¯ā§‡ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻāĻ‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻāĻ•āĻ‡ āĻ•āĻžāĻ°āĻŖā§‡, āĻāĻŸāĻŋ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ•ā§‹āĻĄāĻ•ā§‡ āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ āĻ¨āĻž, āĻ¯āĻž āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖāĻ•ā§‡ āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻ•āĻ āĻŋāĻ¨ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž IDA āĻ•ā§‡ āĻŦāĻ˛āĻŋ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻ•ā§‹āĻĄ, āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ‡ āĻ˜āĻŸā§‡:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻŸā§‡āĻŦāĻŋāĻ˛āĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ 0xB144 āĻ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤ sub_494C-āĻ¤ā§‡ āĻ•ā§€ āĻ†āĻ›ā§‡?

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻ˛āĻ†āĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ•āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻŽāĻ°āĻž āĻĒā§‚āĻ°ā§āĻŦā§‡ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻŋāĻ¤ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž (0xB144) āĻĒāĻžāĻ‡āĨ¤ R0 āĻ - āĻāĻ‡ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ āĻ¸ā§‚āĻšāĻ•āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻŽāĻžāĻ¨āĻŸāĻŋ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻāĻ˛āĻ†āĻ°-āĻ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻšāĻ¯āĻŧ
āĻ¯ā§‡ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¯ā§‡āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻāĻŸāĻŋ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋ: 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 āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ†āĻ‡āĻĄāĻŋāĻ āĻ†āĻŦāĻžāĻ° āĻāĻ‡ āĻāĻ˛āĻžāĻ•āĻžāĻŸāĻŋāĻ•ā§‡ āĻ•ā§‹āĻĄ āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧāĻ¨āĻŋāĨ¤ āĻ†āĻŽāĻ°āĻž āĻ¤āĻžāĻ•ā§‡ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ¨āĻ•āĻļāĻž āĻĻā§‡āĻ–āĻŋ:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

BLX āĻāĻ° āĻĒāĻ°ā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ–ā§āĻŦ āĻāĻ•āĻŸāĻž āĻ…āĻ°ā§āĻĨāĻŦāĻš āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻāĻŸāĻž āĻ…āĻ¨ā§‡āĻ•āĻŸāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻšā§āĻ¯ā§āĻ¤āĻŋāĻ° āĻŽāĻ¤ā§‹āĨ¤ āĻ†āĻ¸ā§āĻ¨ sub_4964 āĻĻā§‡āĻ–āĻŋ:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•ā§ƒāĻ¤āĻĒāĻ•ā§āĻˇā§‡, āĻāĻ–āĻžāĻ¨ā§‡ LR-āĻ āĻĨāĻžāĻ•āĻž āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ dword āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻ‡ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻžāĻ° āĻĒāĻ°ā§‡ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻŽāĻžāĻ¨ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ°āĻžāĻ–āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, LR-āĻ 4 āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻžāĻ¤ā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ†āĻ¸āĻžāĻ° āĻĒāĻ°ā§‡, āĻāĻ‡ āĻāĻ•āĻ‡ āĻ…āĻĢāĻ¸ā§‡āĻŸāĻŸāĻŋ āĻŦāĻžāĻĻ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻĒāĻ°ā§‡ 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 āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ†āĻŽāĻ°āĻž āĻ…āĻĢāĻ¸ā§‡āĻŸāĻŸāĻŋ āĻāĻ˛āĻ†āĻ° āĻĨā§‡āĻ•ā§‡ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ‡, āĻāĻŸāĻŋ āĻāĻ˛āĻ†āĻ°-āĻ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¯āĻžāĻ‡āĨ¤ 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 āĻ•ā§‡ āĻāĻ° āĻ†āĻ¸āĻ˛ āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻāĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•ā§‹āĻĄāĻ•ā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻšā§‡āĻ•ā§āĻ¸āĻ°ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻĄāĻŋāĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻĄāĻŋāĻ•ā§‹āĻĄāĻŋāĻ‚ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚

āĻ†āĻŽāĻ°āĻž āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ¤ā§‡ āĻŽā§‡āĻļāĻŋāĻ¨ āĻ•ā§‹āĻĄā§‡āĻ° āĻ…āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻž āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°āĻ¤ā§‡ āĻļāĻŋāĻ–ā§‡āĻ›āĻŋ libsgmainso-6.4.36.so UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻāĻŦāĻ‚ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•ā§‹āĻĄ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ JNI_āĻ…āĻ¨āĻ˛ā§‹āĻĄ.

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 āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ­āĻžāĻŦā§‡ āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§‡, āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻžāĻ° āĻŽāĻ¤ā§‹ āĻĄā§‡āĻŸāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ°, āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻ‡, āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ•āĻ˛ āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡, āĻŦāĻžāĻĢāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻ˛āĻžāĻ‡āĻ¨ āĻĨāĻžāĻ•āĻŦā§‡, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻĢāĻžāĻ‡āĻ¨ā§āĻĄāĻ•ā§āĻ˛āĻžāĻ¸, āĻ¯āĻž āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¨ā§‡āĻ¯āĻŧāĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻŸāĻŋ āĻŦāĻžāĻĢāĻžāĻ°ā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻŦāĻž āĻ˛āĻžāĻ‡āĻ¨ā§‡āĻ° āĻĻā§ˆāĻ°ā§āĻ˜ā§āĻ¯āĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻ•ā§āĻ˛āĻžāĻ¸ā§‡āĻ° āĻ¨āĻžāĻŽāĻŸāĻŋ āĻŦā§‹āĻāĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋ, āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ°āĻ•ā§‡ āĻŦāĻ˛āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸āĻ āĻŋāĻ• āĻĒāĻĨā§‡ āĻ¯āĻžāĻšā§āĻ›āĻŋ āĻ•āĻŋāĻ¨āĻžāĨ¤ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻŋ āĻ˜āĻŸāĻ›ā§‡ āĻ¤āĻž āĻ˜āĻ¨āĻŋāĻˇā§āĻ āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ• 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. āĻĻāĻžāĻ°ā§āĻŖ! āĻ†āĻŽāĻ°āĻž āĻ¸āĻ āĻŋāĻ• āĻĒāĻĨā§‡ āĻ†āĻ›āĻŋāĨ¤

āĻ†āĻĻā§‡āĻļ āĻ—āĻžāĻ›

āĻāĻ–āĻ¨ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ˛ā§‡āĻžā§āĻœ āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ° āĻ¨ā§‡āĻŸāĻŋāĻ­āĻ¸, āĻ¯āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻŦā§‡ doCommandNative. āĻāĻ° āĻĨā§‡āĻ•ā§‡ āĻŦāĻ˛āĻž āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ¤āĻžāĻ•āĻžāĻ¨ JNI_āĻ…āĻ¨āĻ˛ā§‹āĻĄ, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ‡ 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_āĻ…āĻ¨āĻ˛ā§‹āĻĄ.
āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻ—āĻžāĻ›ā§‡āĻ° āĻĒāĻĨāĻŸāĻŋāĻ•ā§‡ āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°ā§‡āĨ¤ āĻ—āĻžāĻ›ā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻžāĻ¤āĻžāĻ¯āĻŧ āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻĒāĻ•āĻĄ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•ā§€āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ°ā§‡āĻ¨ā§āĻŸ āĻ¨ā§‹āĻĄā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ—āĻžāĻ›ā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ•ā§‹āĻĄā§‡ āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ•āĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻŦā§āĻāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ (āĻ†āĻŽāĻ°āĻž āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻŋ āĻ¨āĻž āĻ¯āĻžāĻ¤ā§‡ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻĄāĻŧ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻĢā§āĻ˛ā§‡ āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ)āĨ¤

āĻ†āĻ°āĻ“ āĻŦāĻŋāĻ­ā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋ

āĻ†āĻŽāĻ°āĻž āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ āĻ¯āĻž āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ• āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻŦā§‡: 0x5F1ACāĨ¤ āĻ¤āĻŦā§‡ āĻ†āĻ¨āĻ¨ā§āĻĻ āĻ•āĻ°āĻž āĻ–ā§āĻŦ āĻ¤āĻžāĻĄāĻŧāĻžāĻ¤āĻžāĻĄāĻŧāĻŋ: UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻšāĻŽāĻ• āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤

āĻœāĻžāĻ­āĻž āĻ•ā§‹āĻĄā§‡ āĻ—āĻ āĻŋāĻ¤ āĻ…ā§āĻ¯āĻžāĻ°ā§‡ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻĒāĻžāĻ‡
0x4D070 āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĨ¤ āĻāĻŦāĻ‚ āĻāĻ–āĻžāĻ¨ā§‡ āĻ…āĻ¨ā§āĻ¯ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻ•ā§‹āĻĄ āĻ…āĻ¸ā§āĻĒāĻˇā§āĻŸāĻ¤āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž R7 āĻāĻŦāĻ‚ R4 āĻ āĻĻā§āĻŸāĻŋ āĻ¸ā§‚āĻšāĻ• āĻ°āĻžāĻ–āĻŋ:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§‚āĻšāĻ•āĻŸāĻŋ R11 āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻŋ:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻ•āĻŸāĻŋ āĻŸā§‡āĻŦāĻŋāĻ˛ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĒā§‡āĻ¤ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸ā§‚āĻšāĻ• āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§āĻ¨:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻĒā§āĻ°āĻĨāĻŽ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§‡, āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻ¸ā§‚āĻšāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻž R4 āĻ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻŸā§‡āĻŦāĻŋāĻ˛ā§‡ 230āĻŸāĻŋ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻāĻŸāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡? āĻ†āĻĒāĻ¨āĻŋ IDA āĻ•ā§‡ āĻŦāĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ‡āĻš: āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž -> āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ -> āĻ¸ā§āĻ‡āĻš āĻŦāĻžāĻ—āĻ§āĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°ā§āĻ¨ā§ˇ

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ•ā§‹āĻĄ āĻ­ā§€āĻ¤āĻŋāĻ•āĻ°. āĻ•āĻŋāĻ¨ā§āĻ¤ā§, āĻāĻ° āĻœāĻ™ā§āĻ—āĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒāĻĨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ˛ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ sub_6115C:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ‡āĻš āĻ›āĻŋāĻ˛ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ 3 āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ RC4 āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒāĻļāĻ¨ āĻ›āĻŋāĻ˛āĨ¤ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻ•āĻžāĻ āĻžāĻŽā§‹āĻŸāĻŋ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻĨā§‡āĻ•ā§‡ āĻĒā§‚āĻ°ā§āĻŖ āĻšāĻ¯āĻŧ doCommandNative. āĻ†āĻ¸ā§āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•āĻŋ āĻ›āĻŋāĻ˛ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻž āĻ¯āĻžāĻ• magicInt āĻŽāĻžāĻ¨ āĻĻāĻŋāĻ¯āĻŧā§‡ 16. āĻ†āĻŽāĻ°āĻž āĻ¸āĻ‚āĻļā§āĻ˛āĻŋāĻˇā§āĻŸ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻĻā§‡āĻ–āĻŋ - āĻāĻŦāĻ‚ āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻŸā§āĻ°āĻžāĻ¨āĻœāĻŋāĻļāĻ¨ā§‡āĻ° āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻ•ā§‹āĻĄ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ‡ āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ āĻ¸āĻ¨āĻžāĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻ‡ AES!

āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨, āĻ¯āĻž āĻ…āĻŦāĻļāĻŋāĻˇā§āĻŸ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻž āĻšāĻ˛ āĻāĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ•āĻ°āĻž: āĻŽā§‹āĻĄ, āĻ•ā§€ āĻāĻŦāĻ‚ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤, āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻ­āĻŋāĻ• āĻ­ā§‡āĻ•ā§āĻŸāĻ° (āĻāĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ AES āĻ…ā§āĻ¯āĻžāĻ˛āĻ—āĻ°āĻŋāĻĻāĻŽā§‡āĻ° āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻŽā§‹āĻĄā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡)āĨ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻ āĻžāĻŽā§‹ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛ āĻ†āĻ—ā§‡ āĻ•ā§‹āĻĨāĻžāĻ“ āĻ—āĻ āĻŋāĻ¤ āĻšāĻ¤ā§‡ āĻšāĻŦā§‡ sub_6115C, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•ā§‹āĻĄā§‡āĻ° āĻāĻ‡ āĻ…āĻ‚āĻļāĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇāĻ­āĻžāĻŦā§‡ āĻ…āĻ¸ā§āĻĒāĻˇā§āĻŸ, āĻ¤āĻžāĻ‡ āĻ§āĻžāĻ°āĻŖāĻžāĻŸāĻŋ āĻ•ā§‹āĻĄ āĻĒā§āĻ¯āĻžāĻš āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĻā§āĻ­ā§‚āĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻžāĻ¤ā§‡ āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒāĻļāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻĄāĻžāĻŽā§āĻĒ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤

āĻ¤āĻžāĻ˛āĻŋ

āĻ…ā§āĻ¯āĻžāĻ¸ā§‡āĻŽā§āĻŦāĻ˛āĻŋ āĻ˛ā§āĻ¯āĻžāĻ™ā§āĻ—ā§āĻ¯āĻŧā§‡āĻœā§‡ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻš āĻ•ā§‹āĻĄ āĻ¨āĻž āĻ˛ā§‡āĻ–āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻŋ āĻ…ā§āĻ¯āĻžāĻ¨ā§āĻĄā§āĻ°āĻ¯āĻŧā§‡āĻĄ āĻ¸ā§āĻŸā§āĻĄāĻŋāĻ“ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒāĻļāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻ‡ āĻ‡āĻ¨āĻĒā§āĻŸ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ˛āĻŋāĻ–ā§‡, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ•āĻŽā§āĻĒāĻžāĻ‡āĻ˛āĻžāĻ° āĻ¯ā§‡ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻ•āĻĒāĻŋ-āĻĒā§‡āĻ¸ā§āĻŸ āĻ•āĻ°āĻŦā§‡ āĻ‰ā§ŽāĻĒāĻ¨ā§āĻ¨

āĻ‡āĻ‰āĻ¸āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻŸāĻŋāĻŽā§‡āĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦāĻ¨ā§āĻ§ā§āĻ°āĻžāĻ“ āĻ•ā§‹āĻĄ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻ†āĻŽāĻ°āĻž āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŋ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻž āĻ•ā§‹āĻĄ āĻĨāĻžāĻ•ā§‡ āĻ¯āĻž āĻ¸āĻšāĻœā§‡āĻ‡ āĻ…āĻ¨ā§āĻ¯ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ–ā§āĻŦ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• 🙂 āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻŸāĻžāĻ°ā§āĻ—ā§‡āĻŸ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ•ā§‹āĻĄā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻœāĻžāĻ¯āĻŧāĻ—āĻž āĻ¨ā§‡āĻ‡ āĻ¯āĻž āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻ†āĻŽāĻžāĻ•ā§‡ āĻāĻŸāĻŋāĻ•ā§‡ āĻ…āĻ‚āĻļā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§‡āĻļā§€ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻž āĻŦā§āĻ˛āĻ•āĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻŽā§‹āĻŸ āĻšāĻžāĻ°āĻŸāĻŋ āĻ…āĻ‚āĻļ āĻ›āĻŋāĻ˛āĨ¤

āĻĒā§āĻ°āĻĨāĻŽ āĻ…āĻ‚āĻļ:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻ†āĻ°āĻāĻŽ āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°ā§‡, āĻĒā§āĻ°āĻĨāĻŽ āĻšāĻžāĻ°āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ° R0-R3 āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻŦāĻžāĻ•āĻŋāĻ—ā§āĻ˛āĻŋ, āĻ¯āĻĻāĻŋ āĻĨāĻžāĻ•ā§‡, āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ˛āĻ†āĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻĢāĻŋāĻ°āĻ¤āĻŋ āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĨāĻžāĻ•ā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻĻāĻ°āĻ•āĻžāĻ° āĻ¯āĻžāĻ¤ā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¯āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻāĻ° āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻ—ā§āĻ˛āĻŋ āĻĄāĻžāĻŽā§āĻĒ āĻ•āĻ°āĻŋāĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸ā§‡āĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ° āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋāĻ¤ā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž PUSH.W {R0-R10,LR} āĻ•āĻ°āĻŋāĨ¤ R7 āĻ āĻ†āĻŽāĻ°āĻž āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻž āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°ā§‡āĻ° āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻĒāĻžāĻ‡āĨ¤

āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ fopen āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ• /data/local/tmp/aes "ab" āĻŽā§‹āĻĄā§‡
āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯āĨ¤ R0 āĻ āĻ†āĻŽāĻ°āĻž āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻŸāĻŋ āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻŋ, R1-āĻ - āĻŽā§‹āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ āĻ˛āĻžāĻ‡āĻ¨ā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĨ¤ āĻāĻŦāĻ‚ āĻāĻ–āĻžāĻ¨ā§‡ āĻ—āĻžāĻ°āĻŦā§‡āĻœ āĻ•ā§‹āĻĄ āĻļā§‡āĻˇ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻšāĻ˛ā§‡ āĻ¯āĻžāĻ‡āĨ¤ āĻāĻŸāĻŋ āĻ•āĻžāĻœ āĻšāĻžāĻ˛āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻžāĻ•ā§‡ āĻŦāĻžāĻ‡āĻĒāĻžāĻ¸ āĻ•āĻ°ā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ†āĻ¸āĻ˛ āĻ•ā§‹āĻĄā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ†āĻŦāĻ°ā§āĻœāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ¯āĻžāĻšā§‡āĻ° āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻ•āĻ¤āĻž āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻŋāĨ¤

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ•āĻ˛āĻŋāĻ‚ fopen.

āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ° AES āĻŸāĻžāĻ‡āĻĒ āĻ†āĻ›ā§‡ āĻ•ā§‹āĻ¨ int. āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻļā§āĻ°ā§āĻ¤ā§‡ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ†āĻŽāĻ°āĻž āĻ¸āĻšāĻœāĻ­āĻžāĻŦā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻĒāĻžāĻ¸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ fwrite āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ¤āĻžāĻĻā§‡āĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž.

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻ°āĻĒāĻ°ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°āĻžāĻ•āĻšāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸āĻžāĻ‡āĻœ āĻāĻŦāĻ‚ āĻ•ā§€, āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ­ā§‡āĻ•ā§āĻŸāĻ° āĻāĻŦāĻ‚ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻĄā§‡āĻŸāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄā§‡āĻŸāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻļā§‡āĻˇā§‡, āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§āĻ¨, āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§āĻ¨ AES.

āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻš āĻ•āĻ°āĻž āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ APK āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻŋ, āĻāĻ¤ā§‡ āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° āĻ•āĻ°āĻŋ, āĻāĻŸāĻŋāĻ•ā§‡ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸/āĻāĻŽā§āĻ˛ā§‡āĻŸāĻ°ā§‡ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŋāĨ¤ āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄāĻžāĻŽā§āĻĒ āĻ¤ā§ˆāĻ°āĻŋ āĻšāĻšā§āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻšā§āĻ° āĻĄā§‡āĻŸāĻž āĻ˛ā§‡āĻ–āĻž āĻšāĻšā§āĻ›ā§‡āĨ¤ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŸā§āĻ°ā§āĻ¯āĻžāĻĢāĻŋāĻ•ā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĻ‡ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¨āĻž, āĻāĻŦāĻ‚ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒāĻļāĻ¨ āĻĒā§āĻ°āĻļā§āĻ¨ā§‡ āĻĨāĻžāĻ•āĻž āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•āĻŋāĻ›ā§ āĻ•āĻžāĻ°āĻŖā§‡ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ¤āĻĨā§āĻ¯ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¨ā§‡āĻ‡, āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻŸā§āĻ°āĻžāĻĢāĻŋāĻ• āĻĻā§ƒāĻļā§āĻ¯āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž. UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ¨āĻž āĻšāĻ“āĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻ—ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ• āĻāĻŦāĻ‚ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ†āĻŦāĻžāĻ° āĻĒā§āĻ¯āĻžāĻš āĻ•āĻ°ā§āĻ¨: āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ˛āĻžāĻĒā§‡āĻ° 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 āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ āĻ•āĻžāĻ°āĻŖ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ¨āĻžāĻ˛ āĻĢāĻŋāĻ°ā§‡ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤

āĻ•ā§‹āĻĄāĻŸāĻŋāĻ° āĻ†āĻ°āĻ“ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ†āĻŦāĻŋāĻˇā§āĻ•ā§ƒāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¯āĻž āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ˛āĻžāĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦā§‹āĻāĻžāĻ¯āĻŧ: "META-INF/" āĻāĻŦāĻ‚ ".RSA"ā§ˇ āĻĻā§‡āĻ–ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻšā§āĻ›ā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋ āĻ¤āĻžāĻ° āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻ›ā§‡ā§ˇ āĻ…āĻĨāĻŦāĻž āĻāĻŽāĻ¨āĻ•āĻŋ āĻāĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ•ā§€ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤ āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯āĻž āĻ˜āĻŸāĻ›ā§‡ āĻ¤āĻž āĻ†āĻŽāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ‡ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¨āĻž, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋāĻ•ā§‡ āĻ¸āĻ āĻŋāĻ• āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ°āĻŸāĻŋ āĻ¸ā§āĻ˛āĻŋāĻĒ āĻ•āĻ°āĻŦāĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻāĻ¨āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻš āĻ•āĻ°āĻŋ āĻ¯āĻžāĻ¤ā§‡ “META-INF/” āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž “BLABLINF/” āĻĒāĻžāĻ‡, APK-āĻ āĻ¸ā§‡āĻ‡ āĻ¨āĻžāĻŽā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•āĻžāĻ āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° āĻ¸āĻžāĻ°ā§āĻŸāĻŋāĻĢāĻŋāĻ•ā§‡āĻŸ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨āĨ¤

āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻŋ, āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° āĻ•āĻ°āĻŋ, āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻŋ, āĻ˛āĻžā§āĻš āĻ•āĻ°āĻŋāĨ¤ āĻŦāĻŋāĻ™ā§āĻ—ā§‹ ! āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻšāĻžāĻŦāĻŋ āĻ†āĻ›ā§‡!

MitM

āĻ†āĻŽāĻ°āĻž āĻ•ā§€ āĻāĻ° āĻ¸āĻŽāĻžāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ•ā§€ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ¨āĻŋāĻļāĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻ­ā§‡āĻ•ā§āĻŸāĻ° āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĨ¤ āĻ†āĻ¸ā§āĻ¨ CBC āĻŽā§‹āĻĄā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĄāĻŋāĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋāĨ¤

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻ†āĻŽāĻ°āĻž āĻ†āĻ°ā§āĻ•āĻžāĻ‡āĻ­ āĻ‡āĻ‰āĻ†āĻ°āĻāĻ˛ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ‡, MD5 āĻāĻ° āĻŽāĻ¤ā§‹ āĻ•āĻŋāĻ›ā§, "extract_unzipsize" āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĨ¤ āĻ†āĻŽāĻ°āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŋ: āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°ā§‡āĻ° MD5 āĻāĻ•āĻ‡, āĻ†āĻ¨āĻĒā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻž āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻ†āĻ•āĻžāĻ° āĻāĻ•āĻ‡āĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻš āĻ•āĻ°ā§‡ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻ›āĻŋāĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ¯āĻžāĻš āĻ•āĻ°āĻž āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ˛ā§‹āĻĄ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻĻā§‡āĻ–āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž "PWNED!" āĻĒāĻžāĻ ā§āĻ¯ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻāĻ¸āĻāĻŽāĻāĻ¸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…āĻ­āĻŋāĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŦāĨ¤ āĻ†āĻŽāĻ°āĻž āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻĻā§āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻŦ: puds.ucweb.com/upgrade/index.xhtml āĻāĻŦāĻ‚ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ° āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡. āĻĒā§āĻ°āĻĨāĻŽāĻŸāĻŋāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž MD5 āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻŋ (āĻ†āĻ¨āĻĒā§āĻ¯āĻžāĻ• āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ āĻ†āĻ•āĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž), āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĻŸāĻŋāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ¯āĻžāĻš āĻ•āĻ°āĻž āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°āĻŸāĻŋ āĻĻāĻŋāĻ‡āĨ¤

āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°āĻŸāĻŋ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŦāĻžāĻ° āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°āĻŸāĻŋ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻĻā§ƒāĻļā§āĻ¯āĻ¤ āĻ•āĻŋāĻ›ā§
āĻ¸ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°ā§‡ āĻ¨āĻž. āĻāĻ‡ āĻ…āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻāĻŸāĻŋ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°ā§‡āĻ° āĻ†āĻ•āĻžāĻ°āĻ“ āĻĒā§āĻ°ā§‡āĻ°āĻŖ āĻ•āĻ°ā§‡:

UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻ–ā§āĻāĻœāĻ›ā§‡āĻ¨

āĻāĻŸāĻŋ LEB128 āĻ āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻĒā§āĻ¯āĻžāĻšā§‡āĻ° āĻĒāĻ°ā§‡, āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°āĻŸāĻŋāĻ° āĻ†āĻ•āĻžāĻ° āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻ‡ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°āĻŸāĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ•āĻ°ā§‡āĻ›ā§‡ āĻ¯ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°āĻŸāĻŋ āĻŦāĻžāĻāĻ•āĻžāĻ­āĻžāĻŦā§‡ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻžāĻ° āĻĒāĻ°ā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ›ā§āĻĄāĻŧā§‡ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖāĻžāĻ—āĻžāĻ°ā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯ āĻ•āĻ°āĻŋ... āĻāĻŦāĻ‚ - āĻŦāĻŋāĻœāĻ¯āĻŧ! 🙂 āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ­āĻŋāĻĄāĻŋāĻ“āĻ¤ā§‡ āĻ†āĻ›ā§‡āĨ¤

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

āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž

āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡, āĻšā§āĻ¯āĻžāĻ•āĻžāĻ°āĻ°āĻž āĻ•ā§āĻˇāĻ¤āĻŋāĻ•āĻžāĻ°āĻ• āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ—ā§āĻ˛āĻŋ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻŦāĻ‚ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻ…āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻ‡ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡āĻ° āĻĒā§āĻ°āĻ¸āĻ™ā§āĻ—ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻŦā§‡, āĻ¤āĻžāĻ‡ āĻ¤āĻžāĻ°āĻž āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĒāĻžāĻŦā§‡ā§ˇ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĢāĻŋāĻļāĻŋāĻ‚ āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻ•āĻŽāĻ˛āĻž āĻšāĻžāĻ‡āĻ¨āĻŋāĻœ āĻ•āĻžāĻ āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛āĻŋāĻ° āĻ•āĻžāĻœā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸, āĻ˛āĻ—āĻ‡āĻ¨, āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻŦāĻ‚ āĻĄāĻžāĻŸāĻžāĻŦā§‡āĻ¸ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻ•ā§āĻ•āĻŋ āĻ¸āĻšāĨ¤

āĻ†āĻŽāĻ°āĻž UC Browser āĻāĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ…āĻŦāĻšāĻŋāĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻāĻŦāĻ‚ āĻāĻ° āĻŦāĻŋāĻĒāĻĻ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻŋāĻ›ā§ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°ā§‡āĻ¨āĻŋāĨ¤ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡, āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°āĻŸāĻŋ āĻ¤āĻžāĻ° āĻŦāĻŋāĻĒāĻœā§āĻœāĻ¨āĻ• āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĻŸāĻŋ āĻ¸āĻ°āĻ˛ āĻĻā§ƒāĻˇā§āĻŸāĻŋāĻ¤ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŦāĻžāĻ° āĻ†āĻŽāĻ°āĻž āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻžāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻ˛ā§‡, āĻāĻŸāĻŋ āĻ†āĻ° āĻ†āĻ—ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻ‰āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ›āĻŋāĻ˛ āĻ¨āĻžāĨ¤ ā§¨ā§­ āĻŽāĻžāĻ°ā§āĻš āĻ›āĻŋāĻ˛
UC āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ° 12.10.9.1193 āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž HTTPS āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°ā§‡āĻ›ā§‡: puds.ucweb.com/upgrade/index.xhtml.

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, "āĻĢāĻŋāĻ•ā§āĻ¸" āĻ•āĻ°āĻžāĻ° āĻĒāĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ˛ā§‡āĻ–āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻŋāĻĄāĻŋāĻāĻĢ āĻ–ā§‹āĻ˛āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻĢāĻ˛ā§‡ "āĻ“āĻšā§‹, āĻ•āĻŋāĻ›ā§ āĻ­ā§āĻ˛ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡!" āĻĒāĻžāĻ ā§āĻ¯ āĻ¸āĻš āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻĒāĻŋāĻĄāĻŋāĻāĻĢ āĻ–ā§‹āĻ˛āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻ¤āĻŦā§‡ āĻŦā§āĻ°āĻžāĻ‰āĻœāĻžāĻ°āĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ¯āĻž Google Play āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ˛āĻ™ā§āĻ˜āĻ¨ āĻ•āĻ°ā§‡ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻŸā§‡āĻŦāĻ˛ āĻ•ā§‹āĻĄ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻ…āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻ•ā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ‡āĻ™ā§āĻ—āĻŋāĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨