āĻŦā§āĻ āĻā§āĻ° āĻ
āĻāĻļ āĻšāĻŋāĻ¸ā§āĻŦā§ 0x0A DC7831
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧ, āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻžāĻāĻāĻ¤āĻŋāĻšāĻžāĻ¸āĻŋāĻ
āĻŦāĻšā§āĻĻāĻŋāĻ¨ āĻāĻā§ āĻŦāĻšā§ āĻĻā§āĻ°ā§āĻ° āĻāĻ āĻā§āĻ¯āĻžāĻ˛āĻžāĻā§āĻ¸āĻŋāĻ¤ā§
āĻāĻ¯āĻŧā§āĻ āĻŦāĻāĻ° āĻāĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤āĻĻāĻ¨ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŋāĻ˛āĨ¤ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻāĻ˛ā§āĻĄāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻāĻā§āĻāĻŋāĻ¤ āĻāĻŦāĻ āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ¤āĻŋāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻāĻāĻŋāĻ˛ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻāĻ°ā§āĻā§āĻ¨, āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§āĻā§āĻ¨ āĻāĻ¯āĻŧā§āĻāĻŦāĻžāĻ°āĨ¤ āĻāĻŦāĻ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¨āĻŋāĻā§āĻ āĻ¤āĻāĻ¨ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°ā§āĻāĻŋāĻ˛āĨ¤ āĻāĻŦāĻ āĻāĻ āĻ¸āĻŦ MIPS āĻā§āĻ°ā§āĨ¤
āĻāĻĻā§āĻĻā§āĻļā§āĻ¯āĻŽā§āĻ˛āĻ āĻāĻžāĻ°āĻŖā§, āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŽā§āĻ˛ā§āĻāĻ°āĻā§āĻ˛āĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻŋāĻ˛ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻā§āĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻ¯āĻž āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽā§āĻ˛ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻāĻŋ āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻā§āĻŦā§āĻāĻŋāĻ˛āĻžāĻŽ, āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻŽā§āĻ˛ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻŋāĨ¤ āĻāĻāĻŋ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻāĻāĻžāĻ¤ āĻāĻ°ā§āĻ¨āĻŋ - āĻāĻŦāĻ āĻāĻāĻŋāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻŦāĻžāĻ° āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻžāĻā§āĻ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤
āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻŋāĻ˛
āĻā§āĻ¨ āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻ?
āĻļāĻŦā§āĻĻ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¨āĻžāĻāĻ āĻāĻā§āĨ¤
- copycat (āĻāĻāĻ°ā§āĻāĻŋ, āĻŦāĻŋāĻļā§āĻˇā§āĻ¯ [ËkÉpÉĒkÃĻt]) - āĻ āĻ¨ā§āĻāĻ°āĻŖāĻāĻžāĻ°ā§, āĻ āĻ¨ā§āĻāĻ°āĻŖāĻāĻžāĻ°ā§
- āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛ (āĻāĻāĻ°ā§āĻāĻŋ, āĻŦāĻŋāĻļā§āĻˇā§āĻ¯ [ËkÃĻt]) - āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛, āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛ - āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻ¤āĻžāĻĻā§āĻ° āĻāĻāĻāĻ¨ā§āĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻŖā§
- "K" āĻ āĻā§āĻˇāĻ°āĻāĻŋ āĻā§āĻāĻ˛āĻŋāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻĨā§āĻā§ āĻāĻ¸ā§āĻā§
āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻ
āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻā§āĻŦ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
- āĻĻā§āĻ°ā§āĻ¤ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻžāĻ˛, āĻŽāĻĄāĻŋāĻāĻ˛, āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž;
- āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž;
- āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¯ā§āĻā§āĻ¨ā§ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĄā§āĻāĻž (āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°) āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž;
- āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž (āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻā§āĻā§āĻ° āĻ¸ā§āĻ¨ā§āĻ¯āĻžāĻĒāĻļāĻ);
- āĻŦāĻŋāĻ˛ā§āĻ-āĻāĻ¨ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž;
- āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻāĻ§ā§āĻ¨āĻŋāĻ āĻāĻžāĻˇāĻžāĨ¤
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻā§āĻāĻ˛āĻŋāĻ¨āĻā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻŦāĻžāĻ¸ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ° (āĻāĻāĻŋ āĻšāĻ˛ āĻ¯āĻāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄā§āĻāĻž āĻŦāĻžāĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°ā§), āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ JSON āĻāĻŦāĻ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ GDB RSPāĨ¤
āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻĻā§āĻ āĻŦāĻāĻ°ā§āĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ§āĻ°ā§ āĻāĻ˛āĻā§ āĻāĻŦāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻāĻ˛āĻā§āĨ¤ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŽāĻ§ā§āĻ¯ā§, MIPS, x86, V850ES, ARM, āĻāĻŦāĻ PowerPC āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻā§āĻ°āĻā§āĻ˛āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻĒāĻ āĻāĻ¨āĻ¸āĻžāĻ§āĻžāĻ°āĻŖā§āĻ° āĻāĻžāĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻāĻŽāĻ°āĻž āĻĒāĻ°ā§ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻ°āĻŦ, āĻ¤āĻŦā§ āĻāĻĒāĻžāĻ¤āĻ¤ āĻāĻŽāĻ°āĻž āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻŦāĨ¤
āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ
āĻ§ā§āĻ°ā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻžāĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĨā§āĻā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻ°āĻžāĻāĻ¨ā§
āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻŽāĻ°āĻŖ āĻāĻ°āĻž āĻ¯āĻžāĻ āĻ¯ā§ āĻāĻ° āĻāĻā§ SMARTRHINO-2018 āĻ¸āĻŽā§āĻŽā§āĻ˛āĻ¨ā§, āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻĒā§āĻ°āĻā§āĻļāĻ˛ āĻĻāĻā§āĻˇāĻ¤āĻž āĻļā§āĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ "āĻāĻŖā§āĻĄāĻžāĻ°" āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ "āĻ¸ā§āĻĒāĻŋāĻāĻžāĻ°" āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻŦāĻ āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋāĨ¤
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§:
1) āĻāĻžāĻāĻž 1.8
2) āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻŦāĻ āĻŽāĻĄāĻŋāĻāĻ˛
āĻāĻāĻ¨ā§āĻĄā§āĻ āĻāĻ¨ā§āĻ¯:
1)
2)
āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯:
1) āĻ¸ā§āĻāĻžāĻ
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ GDB āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ Eclipse, IDA Pro āĻŦāĻž radare2 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§?
āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ "āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻž" āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻ¯āĻž āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻāĨ¤
āĻāĻ¸āĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ ("āĻāĻ¨ā§āĻĄāĻžāĻ°") āĻŦā§āĻ˛āĻ āĻĄāĻžāĻ¯āĻŧāĻžāĻā§āĻ°āĻžāĻŽā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
āĻāĻŽā§āĻ˛ā§āĻāĻ°āĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻŽāĻĄā§āĻ˛āĻžāĻ° āĻāĻžāĻ āĻžāĻŽā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻāĻāĻāĻŋ JSON āĻĢāĻžāĻāĻ˛ā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
JSON 105 āĻ˛āĻžāĻāĻ¨
{
"top": true,
// Plugin name should be the same as file name (or full path from library start)
"plugin": "rhino",
// Directory where plugin places
"library": "user",
// Plugin parameters (constructor parameters if jar-plugin version)
"params": [
{ "name": "tty_dbg", "type": "String"},
{ "name": "tty_bt", "type": "String"},
{ "name": "firmware", "type": "String", "default": "NUL"}
],
// Plugin outer ports
"ports": [ ],
// Plugin internal buses
"buses": [
{ "name": "mem", "size": "BUS30" },
{ "name": "nand", "size": "4" },
{ "name": "gpio", "size": "BUS32" }
],
// Plugin internal components
"modules": [
{
"name": "u1_stm32",
"plugin": "STM32F042",
"library": "mcu",
"params": {
"firmware:String": "params.firmware"
}
},
{
"name": "usart_debug",
"plugin": "UartSerialTerminal",
"library": "terminals",
"params": {
"tty": "params.tty_dbg"
}
},
{
"name": "term_bt",
"plugin": "UartSerialTerminal",
"library": "terminals",
"params": {
"tty": "params.tty_bt"
}
},
{
"name": "bluetooth",
"plugin": "BT",
"library": "mcu"
},
{ "name": "led_0", "plugin": "LED", "library": "mcu" },
{ "name": "led_1", "plugin": "LED", "library": "mcu" },
{ "name": "led_2", "plugin": "LED", "library": "mcu" },
{ "name": "led_3", "plugin": "LED", "library": "mcu" },
{ "name": "led_4", "plugin": "LED", "library": "mcu" },
{ "name": "led_5", "plugin": "LED", "library": "mcu" },
{ "name": "led_6", "plugin": "LED", "library": "mcu" },
{ "name": "led_7", "plugin": "LED", "library": "mcu" },
{ "name": "led_8", "plugin": "LED", "library": "mcu" },
{ "name": "led_9", "plugin": "LED", "library": "mcu" },
{ "name": "led_10", "plugin": "LED", "library": "mcu" },
{ "name": "led_11", "plugin": "LED", "library": "mcu" },
{ "name": "led_12", "plugin": "LED", "library": "mcu" },
{ "name": "led_13", "plugin": "LED", "library": "mcu" },
{ "name": "led_14", "plugin": "LED", "library": "mcu" },
{ "name": "led_15", "plugin": "LED", "library": "mcu" }
],
// Plugin connection between components
"connections": [
[ "u1_stm32.ports.usart1_m", "usart_debug.ports.term_s"],
[ "u1_stm32.ports.usart1_s", "usart_debug.ports.term_m"],
[ "u1_stm32.ports.usart2_m", "bluetooth.ports.usart_m"],
[ "u1_stm32.ports.usart2_s", "bluetooth.ports.usart_s"],
[ "bluetooth.ports.bt_s", "term_bt.ports.term_m"],
[ "bluetooth.ports.bt_m", "term_bt.ports.term_s"],
[ "led_0.ports.pin", "u1_stm32.buses.pin_output_a", "0x00"],
[ "led_1.ports.pin", "u1_stm32.buses.pin_output_a", "0x01"],
[ "led_2.ports.pin", "u1_stm32.buses.pin_output_a", "0x02"],
[ "led_3.ports.pin", "u1_stm32.buses.pin_output_a", "0x03"],
[ "led_4.ports.pin", "u1_stm32.buses.pin_output_a", "0x04"],
[ "led_5.ports.pin", "u1_stm32.buses.pin_output_a", "0x05"],
[ "led_6.ports.pin", "u1_stm32.buses.pin_output_a", "0x06"],
[ "led_7.ports.pin", "u1_stm32.buses.pin_output_a", "0x07"],
[ "led_8.ports.pin", "u1_stm32.buses.pin_output_a", "0x08"],
[ "led_9.ports.pin", "u1_stm32.buses.pin_output_a", "0x09"],
[ "led_10.ports.pin", "u1_stm32.buses.pin_output_a", "0x0A"],
[ "led_11.ports.pin", "u1_stm32.buses.pin_output_a", "0x0B"],
[ "led_12.ports.pin", "u1_stm32.buses.pin_output_a", "0x0C"],
[ "led_13.ports.pin", "u1_stm32.buses.pin_output_a", "0x0D"],
[ "led_14.ports.pin", "u1_stm32.buses.pin_output_a", "0x0E"],
[ "led_15.ports.pin", "u1_stm32.buses.pin_output_a", "0x0F"]
]
}
āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¨ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ¯āĻž āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻŦāĻ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ° āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻ¤ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§ āĻĒā§āĻ°āĻ§āĻžāĻ¨ OS āĻāĻ° COM āĻĒā§āĻ°ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻĄāĻŧāĻŋāĻ¤ (āĻŦā§āĻ˛ā§āĻā§āĻĨ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ UART āĻāĻŦāĻ UART āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻž)āĨ¤ āĻāĻā§āĻ˛āĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĒā§āĻ°ā§āĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻā§āĻ˛āĻŋ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻŦāĻž āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ COM āĻĒā§āĻ°ā§āĻ (āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ com0com/socat).
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻŦāĻžāĻāĻ°ā§ āĻĨā§āĻā§ āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻžāĻ° āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻĒāĻžāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§:
- GDB RSP āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ (āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻāĻ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋ āĻšāĻ˛ Eclipse/IDA/radare2);
- āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ (āĻāĻ°ā§āĻāĻĒāĻžāĻ°ā§āĻ¸ āĻŦāĻž āĻĒāĻžāĻāĻĨāĻ¨)āĨ¤
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ COM āĻĒā§āĻ°ā§āĻ
āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° UART-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻā§āĻĄāĻŧāĻž āĻ¯ā§āĻā§āĻ¤ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ COM āĻĒā§āĻ°ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ (PuTTY āĻŦāĻž āĻ¸ā§āĻā§āĻ°ā§āĻ¨) āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ:
com0com āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ COM āĻĒā§āĻ°ā§āĻāĻā§āĻ˛āĻŋ com0com āĻāĻŋāĻ āĻĨā§āĻā§ āĻ¸ā§āĻāĻāĻĒ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻāĻ¨āĻ¸ā§āĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ - C:āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĢāĻžāĻāĻ˛ (x86)com0comsetupŅ.exe, āĻŦāĻž GUI āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ - C: āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĢāĻžāĻāĻ˛ (x86)com0comsetupg.exe):
āĻŦāĻā§āĻ¸ āĻā§āĻ āĻāĻ°ā§āĻ¨ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻāĻžāĻ°āĻ°āĻžāĻ¨ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤ā§āĻ°āĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ āĻ¨ā§āĻ¯āĻĨāĻžāĻ¯āĻŧ āĻāĻŽā§āĻ˛ā§āĻāĻ°āĻāĻŋ COM āĻĒā§āĻ°ā§āĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§āĨ¤
āĻ¸ā§āĻāĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻāĻ¨āĻŋāĻā§āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§, āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ COM āĻĒā§āĻ°ā§āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ; āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻŦāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĒāĻ¸āĻ°ā§āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ socat:
.
āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ (āĻāĻ°ā§āĻāĻĒāĻžāĻ°ā§āĻ¸ āĻŦāĻž āĻĒāĻžāĻāĻĨāĻ¨)
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻ āĻāĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨, āĻ¤āĻžāĻ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻ¤āĻžāĻ° āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻŦāĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°ā§: Argparse āĻāĻŦāĻ PythonāĨ¤
Argparse āĻšāĻ˛ āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻā§ āĻ¤ā§āĻ°āĻŋ āĻāĻāĻāĻŋ CLI āĻāĻŦāĻ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸āĻŦāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ˛āĻŦā§āĻ§āĨ¤
āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ CLI āĻšāĻ˛ āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°ā§āĻāĻžāĻ°āĨ¤ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻĒ āĻĒāĻžāĻāĻĨāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĒāĻžāĻāĻĨāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽā§āĻ˛ā§āĻāĻ°āĻāĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻĒāĻžāĻāĻĨāĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§)āĨ¤
āĻĒāĻžāĻāĻĨāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻā§āĻĒ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻā§āĻĒā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻĒāĻŋāĻĒā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
pip install jep
Windows āĻ Jep āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ Windows SDK āĻāĻŦāĻ āĻ¸āĻāĻļā§āĻ˛āĻŋāĻˇā§āĻ Microsoft Visual Studio āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻā§ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋ āĻāĻŦāĻ
pip install jep-3.8.2-cp27-cp27m-win_amd64.whl
āĻā§āĻĒā§āĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ā§ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻŦā§:
python -c "import jep"
āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤:
ImportError: Jep is not supported in standalone Python, it must be embedded in Java.
āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦā§āĻ¯āĻžāĻ āĻĢāĻžāĻāĻ˛ā§ (copycat.bat - āĻāĻāĻ¨ā§āĻĄā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻ - āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯) āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ DEFAULT_JVM_OPTS
āĻāĻāĻāĻŋ āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ Djava.library.path
â āĻāĻ¤ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž Jep āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻĒāĻžāĻĨ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻāĻ¨ā§āĻĄā§āĻā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻāĻāĻ°āĻāĻŽ āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤:
set DEFAULT_JVM_OPTS="-XX:MaxMetaspaceSize=256m" "-XX:+UseParallelGC" "-XX:SurvivorRatio=6" "-XX:-UseGCOverheadLimit" "-Djava.library.path=C:/Python27/Lib/site-packages/jep"
āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ JVM āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĨ¤ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ (sh/cmd) āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ˛āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻ¨ā§āĻĄā§āĻā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ¨ā§āĻĄ:
binkopycat -g 23946 -n rhino -l user -y library -p firmware=firmwarerhino_pass.bin,tty_dbg=COM26,tty_bt=COM28
socat āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ¨ā§āĻĄ:
./bin/kopycat -g 23946 -n rhino -l user -y library -p firmware=./firmware/rhino_pass.bin, tty_dbg=socat:./COM26,tty_bt=socat:./COM28
-g 23646
â TCP āĻĒā§āĻ°ā§āĻ āĻ¯āĻž GDB āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ˛āĻž āĻĨāĻžāĻāĻŦā§;-n rhino
- āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ (āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸);-l user
â āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻ¨āĻžāĻŽ;-y library
â āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§āĻ° āĻĒāĻĨ;firmwarerhino_pass.bin
â āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻĨ;- COM26 āĻāĻŦāĻ COM28 āĻšāĻ˛ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ COM āĻĒā§āĻ°ā§āĻāĨ¤
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻŽā§āĻĒāĻ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§ Python >
(āĻŦāĻž Argparse >
):
18:07:59 INFO [eFactoryBuilder.create ]: Module top successfully created as top
18:07:59 INFO [ Module.initializeAndRes]: Setup core to top.u1_stm32.cortexm0.arm for top
18:07:59 INFO [ Module.initializeAndRes]: Setup debugger to top.u1_stm32.dbg for top
18:07:59 WARN [ Module.initializeAndRes]: Tracer wasn't found in top...
18:07:59 INFO [ Module.initializeAndRes]: Initializing ports and buses...
18:07:59 WARN [ Module.initializePortsA]: ATTENTION: Some ports has warning use printModulesPortsWarnings to see it...
18:07:59 FINE [ ARMv6CPU.reset ]: Set entry point address to 08006A75
18:07:59 INFO [ Module.initializeAndRes]: Module top is successfully initialized and reset as a top cell!
18:07:59 INFO [ Kopycat.open ]: Starting virtualization of board top[rhino] with arm[ARMv6Core]
18:07:59 INFO [ GDBServer.debuggerModule ]: Set new debugger module top.u1_stm32.dbg for GDB_SERVER(port=23946,alive=true)
Python >
IDA Pro āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸āĻšāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻĢāĻ°ā§āĻŽā§ IDA-āĻ¤ā§ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻ°ā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ Rhino āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ
āĻāĻĒāĻ¨āĻŋ āĻŽā§āĻāĻž āĻ¤āĻĨā§āĻ¯ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻĄāĻŋāĻ āĻĒā§āĻ°ā§āĻ¤ā§ āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻŽā§āĻ¨ā§āĻ¤ā§ āĻāĻāĻā§āĻŽāĻāĻŋāĻ¤ā§ āĻ¯āĻžāĻ¨ âāĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§āĻ¨..."āĻāĻŦāĻ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨"āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ GDB āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°" āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§, āĻ¸āĻāĻ¯ā§āĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻ¨: āĻŽā§āĻ¨ā§ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° - āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ...
āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨:
- āĻāĻŦā§āĻĻāĻ¨ - āĻ¯ā§āĻā§āĻ¨ā§ āĻŽāĻžāĻ¨
- āĻšā§āĻ¸ā§āĻāĻ¨āĻžāĻŽ: 127.0.0.1 (āĻ āĻĨāĻŦāĻž āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻŋāĻā§āĻ¯āĻžāĻ āĻāĻ˛āĻā§)
- āĻĒā§āĻ°ā§āĻ: 23946
āĻāĻāĻ¨ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻŦā§āĻ¤āĻžāĻŽāĻāĻŋ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ (F9 āĻā§):
āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻāĻŋāĻ¤ā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨āĨ¤ IDA āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻŽā§āĻĄā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻāĻ¨ā§āĻĄā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ: āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯, āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§āĨ¤
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
- āĻ§āĻžāĻĒā§ āĻ§āĻžāĻĒā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ (āĻĒāĻĻāĻžāĻ°ā§āĻĒāĻŖ āĻāĻ°āĻž и āĻ§āĻžāĻĒ āĻāĻĒāĻ°ā§ â āĻā§ F7 āĻāĻŦāĻ F8, āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§);
- āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻļā§āĻ°ā§ āĻāĻŦāĻ āĻŦāĻŋāĻ°āĻ¤āĻŋ;
- āĻā§āĻĄ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž (F2 āĻā§)āĨ¤
āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻŽāĻžāĻ¨ā§ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¨āĻ¯āĻŧāĨ¤ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻ
āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻšāĻ¤ā§ āĻšāĻŦā§ 0x08006A74
- āĻĢāĻžāĻāĻļāĻ¨ āĻļā§āĻ°ā§ āĻ°āĻŋāĻ¸ā§āĻ_āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°. āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻāĻŋ āĻ¨ā§āĻā§ āĻ¸ā§āĻā§āĻ°ā§āĻ˛ āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛āĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻĒā§āĻ°āĻ§āĻžāĻ¨. āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻ˛āĻžāĻāĻ¨ā§ āĻāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻ āĻŋāĻāĻžāĻ¨āĻž 0x08006ABE
) āĻāĻŦāĻ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻā§āĻāĻžāĻ˛āĻ¨ āĻāĻžāĻ°ā§āĻ¸āĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻžāĻ˛āĻžāĻ¨ (āĻā§ F4)āĨ¤
āĻāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻ¤ā§ F7 āĻāĻŋāĻĒā§āĻ¨ āĻĒā§āĻ°āĻ§āĻžāĻ¨.
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨ (F9 āĻā§), āĻ¤āĻžāĻ°āĻĒāĻ° "āĻĻāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨" āĻāĻāĻ¨ā§āĻĄā§āĻāĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ āĻŦā§āĻ¤āĻžāĻŽ āĻ¸āĻš āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§ āĻā§āĻ˛āĻžāĻ¨:
āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻĒā§āĻ¨ āĻā§āĻ˛āĻžāĻ¨ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻā§āĻĄ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻ¸ā§āĻĨāĻāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻā§āĻĄā§ āĻ¯ā§ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻŋ āĻŦāĻžāĻ§āĻžāĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¸ā§āĻ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻĨā§āĻā§ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻā§āĻĄāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨, āĻāĻĒāĻ¨āĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ COM āĻĒā§āĻ°ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛āĻžāĻāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨:
"āĻ¸ā§āĻā§āĻ āĻŦāĻžāĻāĻĒāĻžāĻ¸" āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻ¯ā§ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ˛ā§āĻā§āĻĨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° COM āĻĒā§āĻ°ā§āĻ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻā§āĻ°āĻšāĻŖā§āĻ° āĻŽā§āĻĄā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§āĻā§āĨ¤
āĻāĻāĻ¨ āĻŦā§āĻ˛ā§āĻā§āĻĨ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ā§ (āĻāĻŦāĻŋāĻ¤ā§ COM29) āĻāĻĒāĻ¨āĻŋ āĻ°āĻžāĻāĻ¨ā§ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, "MEOW" āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¸ā§āĻā§āĻ°āĻŋāĻ "mur-mur" āĻŦā§āĻ˛ā§āĻā§āĻĨ āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛ā§ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§:
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ¨āĻž āĻāĻŽāĻžāĻā§ āĻ āĻ¨ā§āĻāĻ°āĻŖ
āĻāĻāĻāĻŋ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻŦāĻŋāĻļāĻĻ/āĻāĻŽā§āĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸ā§āĻ¤āĻ° āĻāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦā§āĻ˛ā§āĻā§āĻĨ āĻŽāĻĄāĻŋāĻāĻ˛āĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
- āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻ āĻ¸āĻš āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ;
- AT āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻĄāĻžāĻāĻž āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° COM āĻĒā§āĻ°ā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧ;
- āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻĒā§āĻ°āĻā§āĻ¤ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§;
- āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸ā§āĻāĻžāĻŦ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¯āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž "āĻ āĻŋāĻ āĻāĻā§" āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ - āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŦā§āĻ˛ā§āĻā§āĻĨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°ā§, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° COM āĻĒā§āĻ°ā§āĻ āĻĨā§āĻā§ āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° UART āĻĒā§āĻ°ā§āĻā§ āĻĄā§āĻāĻž "āĻĒā§āĻ°āĻā§āĻ¸āĻŋāĻŋāĻ" āĻŽā§āĻĄā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§āĨ¤
āĻĒā§āĻ°āĻŋāĻĢā§āĻ°āĻŋāĻ° āĻāĻŋāĻā§ āĻ
āĻāĻļ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ¨āĻž āĻšāĻ˛ā§ āĻā§āĻĄā§āĻ° āĻ¸āĻšāĻ āĻāĻ¨ā§āĻ¸āĻā§āĻ°ā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ DMA-āĻ¤ā§ āĻĄā§āĻāĻž āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻāĻžāĻāĻŽāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¨āĻž āĻšāĻ¯āĻŧ (āĻā§āĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ ws2812b_āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ 0x08006840
), āĻ¤āĻžāĻ°āĻĒāĻ° āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻĒāĻ¤āĻžāĻāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§ āĻŦā§āĻ¯āĻ¸ā§āĻ¤āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ 0x200004C4
āĻ¯āĻž DMA āĻĄā§āĻāĻž āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻĻāĻāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧ:
āĻĒāĻ¤āĻžāĻāĻžāĻāĻŋ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻŦā§āĻ¯āĻ¸ā§āĻ¤ āĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻĒāĻ°āĻāĨ¤ IDA Pro-āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻā§ āĻŽāĻžāĻ¨ 1 āĻ˛ā§āĻāĻžāĻ° āĻĒāĻ°ā§ āĻā§āĻĄā§ āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻāĻŋ āĻ¨āĻŋāĻā§āĻ āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻŦā§āĻ¯āĻ¸ā§āĻ¤.
āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°
āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻĄāĻŋāĻ-āĻ¤ā§ āĻāĻāĻāĻŋ āĻĒāĻžāĻāĻĨāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĢāĻžāĻāĻ˛ - āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ...
āĻŦāĻžāĻŽ āĻĻāĻŋāĻā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸ā§āĻ¨āĻŋāĻĒā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, BPT),
āĻĄāĻžāĻ¨āĻĻāĻŋāĻā§ āĻĒāĻžāĻ ā§āĻ¯ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻĄ āĻ˛āĻŋāĻā§āĻ¨:
def skip_dma():
print "Skipping wait ws2812..."
value = Byte(0x200004C4)
if value == 1:
PatchDbgByte(0x200004C4, 0)
return False
āĻāĻ° āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻŋāĻĒā§āĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻāĻ¨ā§āĻĄā§ āĻŦāĻ¨ā§āĻ§ āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻ¨ āĻā§āĻĄ āĻ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ 0x0800688A
, āĻāĻāĻāĻŋ āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨ (F2 āĻā§), āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°ā§āĻ¨ (āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻŽā§āĻ¨ā§ āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°ā§āĻ¨...), āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻāĻĒ āĻĒāĻžāĻāĻĨāĻ¨ā§ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛āĻŦā§āĻ¨ āĻ¨āĻž:
āĻ¯āĻĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒāĻ¤āĻžāĻāĻž āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻ¸ā§āĻ¤ 1 āĻāĻ° āĻ¸āĻŽāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻāĻāĻŋāĻ¤ skip_dma āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ˛āĻžāĻāĻ¨ā§:
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¨, āĻāĻĒāĻ¨āĻŋ IDA āĻāĻāĻ¨ā§āĻĄā§āĻ¤ā§ āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻā§āĻĄā§āĻ° āĻā§āĻ°āĻŋāĻāĻžāĻ°āĻŋāĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻāĻāĻāĻĒā§āĻ āĻ˛āĻžāĻāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž Skipping wait ws2812...
. āĻāĻāĻ¨ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĒāĻ¤āĻžāĻāĻž āĻ°āĻŋāĻ¸ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§ āĻ¨āĻž āĻŦā§āĻ¯āĻ¸ā§āĻ¤.
āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻ āĻ¨ā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ¨āĻ¨ā§āĻĻ āĻāĻŦāĻ āĻāĻ¨āĻ¨ā§āĻĻā§āĻ° āĻāĻžāĻ°āĻŖ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻ¨ā§āĻāĨ¤ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻ¯āĻĻāĻŋ āĻāĻŦā§āĻˇāĻāĻā§ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻĄā§āĻāĻž āĻĻā§āĻāĻ¤ā§ āĻŦāĻž āĻĨā§āĻ°ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻ°āĻ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧāĨ¤
āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻĻā§āĻāĻžāĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ RTOS āĻāĻžāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻĄāĻāĻŋ āĻāĻ˛āĻŽāĻžāĻ¨ āĻĨāĻžāĻāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻāĻŋāĻ° āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨āĻā§ āĻŦāĻŋāĻ°āĻ¤āĻŋ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻā§āĻ˛ā§ bluetooth_task_entry "LED" āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻļāĻžāĻāĻžāĻ¯āĻŧ (āĻ āĻŋāĻāĻžāĻ¨āĻž 0x080057B8
), āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ ledControlQueueHandle āĻāĻŋāĻā§ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĨ¤
āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ ledControlQueueHandleāĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ 0x20000624
āĻāĻŦāĻ āĻā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¨:
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸ā§āĻāĻĒ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻāĻāĻŦā§ 0x080057CA
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻā§ osMailAllocāĻ¤āĻžāĻ°āĻĒāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ 0x08005806
āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻā§ osMailPut, āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŋāĻā§āĻā§āĻˇāĻŖ āĻĒāĻ°ā§ - āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ 0x08005BD4
(āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻāĻā§ osMailGet), āĻ¯āĻž āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ leds_task_entry (āĻāĻ˛āĻāĻĄāĻŋ-āĻāĻžāĻ¸ā§āĻ), āĻ
āĻ°ā§āĻĨāĻžā§, āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻ˛āĻāĻĄāĻŋ-āĻāĻžāĻ¸ā§āĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻāĻĒāĻ¨āĻŋ RTOS āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻāĻžāĻŦā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°ā§ āĻ¤āĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻ āĻŦāĻļā§āĻ¯āĻ, āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§, āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻŦā§ āĻāĻāĻāĻŋ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°āĻž āĻāĻŽ āĻļā§āĻ°āĻŽāĻ¸āĻžāĻ§ā§āĻ¯ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĨ¤
Radare2 āĻĻāĻŋāĻ¯āĻŧā§ āĻ˛āĻā§āĻ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻŋ Radare2 āĻāĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§ āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤
r2 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻāĻāĻ°āĻāĻŽ āĻšāĻŦā§:
radare2 -A -a arm -b 16 -d gdb://localhost:23946 rhino_fw42k6.elf
āĻ˛āĻā§āĻ āĻāĻāĻ¨ āĻāĻĒāĻ˛āĻŦā§āĻ§ (dc
) āĻāĻŦāĻ āĻĒāĻ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ (Ctrl+C)āĨ¤
āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§, āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŋāĻĄāĻŋāĻŦāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻ˛ā§āĻāĻāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ r2-āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ°āĻ¯āĻŧā§āĻā§; āĻāĻ° āĻāĻžāĻ°āĻŖā§, āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŦāĻ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻž (āĻāĻŽāĻžāĻ¨ā§āĻĄ ds
) āĻāĻŽāĻ°āĻž āĻāĻļāĻž āĻāĻ°āĻŋ āĻāĻāĻŋ āĻļā§āĻā§āĻ°āĻ āĻ āĻŋāĻ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
Eclipse āĻ¸āĻā§āĻā§ āĻāĻ˛āĻŽāĻžāĻ¨
āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻ˛ āĻĄā§āĻā§āĻ˛āĻĒ āĻāĻ°āĻž āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻžāĨ¤ āĻ¸ā§āĻŦāĻā§āĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž Rhino āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ IDE āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻ āĻĨā§āĻā§ Eclipse āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ
Eclipse-āĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻāĻāĻ˛āĻŋāĻ¤ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ˛ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽā§āĻ˛ā§āĻāĻ°āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ firmware=null
āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻ˛āĻā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄā§:
binkopycat -g 23946 -n rhino -l user -y modules -p firmware=null,tty_dbg=COM26,tty_bt=COM28
āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻā§āĻā§
Eclipse āĻ, āĻŽā§āĻ¨ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻāĻžāĻ˛āĻžāĻ¨ - āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨... āĻ¯ā§ āĻāĻāĻ¨ā§āĻĄā§āĻāĻŋ āĻā§āĻ˛ā§ āĻ¸ā§ āĻŦāĻŋāĻāĻžāĻā§ GDB āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¤āĻžāĻ°āĻĒāĻ° "āĻĒā§āĻ°āĻ§āĻžāĻ¨" āĻā§āĻ¯āĻžāĻŦā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻāĻŦāĻ āĻĄāĻŋāĻŦāĻžāĻāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨:
"āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ°" āĻā§āĻ¯āĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ GDB āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
${openstm32_compiler_path}arm-none-eabi-gdb
āĻāĻŦāĻ GDB āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ (āĻšā§āĻ¸ā§āĻ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻ) āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ āĻ˛āĻŋāĻā§āĻ¨:
"āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒ" āĻā§āĻ¯āĻžāĻŦā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
- āĻā§āĻāĻŦāĻā§āĻ¸ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻŋ āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ (āĻ¯āĻžāĻ¤ā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ);
- āĻā§āĻāĻŦāĻā§āĻ¸ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨ āĻ˛ā§āĻĄ āĻĒā§āĻ°āĻ¤ā§āĻ;
- āĻ˛āĻā§āĻ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
set $pc = *0x08000004
(āĻĒāĻŋāĻ¸āĻŋ āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°āĻā§ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ¯āĻŧ āĻŽā§āĻŽāĻ°āĻŋ āĻĨā§āĻā§ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĻ¨0x08000004
- āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻāĻā§ āĻ°āĻŋāĻ¸ā§āĻāĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°).
āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻžāĻ, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ Eclipse āĻĨā§āĻā§ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĢāĻžāĻāĻ˛ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻ¨āĻž āĻāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻāĻŦāĻŋ āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ и āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤
āĻĄāĻŋāĻŦāĻžāĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻŽā§āĻĄā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
- āĻ§āĻžāĻĒā§ āĻ§āĻžāĻĒā§ āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨
- āĻŦā§āĻ°ā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯. Eclipse āĻāĻā§, āĻšā§āĻŽ... āĻāĻŋāĻā§ quirks... āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¯āĻĻāĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ "0x0âŗ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻā§āĻ¸ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¨ā§āĻ" āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ§āĻžāĻĒ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ (F5)
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°ā§āĻ°
āĻ¨ā§āĻāĻŋāĻ āĻā§āĻĄ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻā§āĻŦ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻŋāĻ¨āĻŋāĻ¸āĨ¤ āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ° āĻĒāĻā§āĻˇā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻāĻžāĻĄāĻŧāĻžāĻ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧā§ˇ āĻāĻāĻāĻ¨ āĻāĻŦā§āĻˇāĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻā§āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ¯ā§āĻ, āĻ¯āĻž āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§āĻ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻļā§āĻˇāĻā§āĻāĻĻā§āĻ° āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻ˛ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¯āĻž āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ, āĻŽāĻžāĻāĻžāĻ°āĻŋāĻāĻžāĻŦā§ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻ¸ā§āĻ āĻāĻĒ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻž āĻāĻŦāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻā§ āĻ¨āĻžāĨ¤
āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ āĻ˛āĻŋāĻā§āĻ¨āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻžāĻ¨āĻžāĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻāĻ¤ā§āĻ¤āĻ° āĻĻāĻŋāĻ¤ā§ āĻĒā§āĻ°ā§ āĻā§āĻļāĻŋ āĻšāĻŦāĨ¤
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ°āĻŋāĻĒā§ āĻ
āĻāĻļāĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻāĻ¨ā§āĻ¯ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§āĻ¨?
-
āĻāĻŽāĻŋ (āĻĄāĻŋāĻŦāĻžāĻ) āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻāĻžāĻļ āĻāĻ°āĻŋ
-
āĻāĻŽāĻŋ āĻĢāĻžāĻ°ā§āĻŽāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻŦā§āĻˇāĻŖāĻž āĻāĻ°āĻāĻŋ
-
āĻāĻŽāĻŋ āĻā§āĻŽ āĻāĻžāĻ˛ā§ āĻāĻ°āĻŋ (āĻĄā§āĻ¨ā§āĻĄāĻŋ, āĻ¸ā§āĻāĻž, āĻĒāĻŋāĻāĻ¸āĻĒāĻŋ)
-
āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ (āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ āĻ˛āĻŋāĻā§āĻ¨)
7 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĻ¨āĨ¤ 2 āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻŦāĻŋāĻ°āĻ¤ āĻāĻŋāĻ˛ā§āĻ¨āĨ¤
āĻ¨ā§āĻāĻŋāĻ āĻā§āĻĄ āĻ āĻ¨ā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¨ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨?
-
QEMU āĻĻā§āĻŦāĻžāĻ°āĻž
-
āĻāĻāĻ¨āĻŋāĻāĻ°ā§āĻ¨ āĻāĻā§āĻāĻŋāĻ¨
-
āĻĒā§āĻ°ā§āĻāĻŋāĻ¯āĻŧāĻžāĻ¸
-
āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ (āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ āĻ˛āĻŋāĻā§āĻ¨)
6 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĻ¨āĨ¤ 2 āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻŦāĻŋāĻ°āĻ¤ āĻāĻŋāĻ˛ā§āĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§āĻ¨ āĻ¤āĻžāĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻā§ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨?
-
āĻāĻŽāĻŋ āĻāĻ¤āĻŋ āĻāĻžāĻ
-
āĻāĻŽāĻŋ āĻ¸ā§āĻāĻāĻĒ/āĻ˛āĻā§āĻā§āĻ° āĻ¸āĻšāĻāĻ¤āĻž āĻāĻžāĻ
-
āĻāĻŽāĻŋ āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻžāĻ (API, āĻšā§āĻ)
-
āĻāĻŽāĻŋ āĻ¸āĻŦāĻāĻŋāĻā§āĻ¤ā§āĻ āĻā§āĻļāĻŋ
-
āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ (āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§ āĻ˛āĻŋāĻā§āĻ¨)
8 āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĻ¨āĨ¤ ā§§ āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻŦāĻŋāĻ°āĻ¤ āĻāĻŋāĻ˛ā§āĻ¨āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com