āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻĄāĻŧāĻžāϞ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻ—āĻ¨ā§āĻĄāĻžāϰ - āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ āĻāĻŽā§āϞ⧇āϟāϰ⧇ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āϚāĻžāϞāĻžāύ

āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻĄāĻŧāĻžāϞ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻ—āĻ¨ā§āĻĄāĻžāϰ - āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ āĻāĻŽā§āϞ⧇āϟāϰ⧇ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āϚāĻžāϞāĻžāύ

āĻŦ⧈āĻ āϕ⧇āϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏ⧇āĻŦ⧇ 0x0A DC7831 āĻĄāĻŋāχāĻāĻĢ āĻ•āύ āύāĻŋāĻāύāĻŋ āύāĻ­āĻ—ā§‹āϰāĻĄ āĻĢ⧇āĻŦā§āϰ⧁āϝāĻŧāĻžāϰ⧀ 16-āĻ, āφāĻŽāϰāĻž āĻŦāĻžāχāύāĻžāϰāĻŋ āϕ⧋āĻĄ āχāĻŽā§āϞ⧇āĻļāύ⧇āϰ āĻŽā§ŒāϞāĻŋāĻ• āύ⧀āϤāĻŋ āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻŦāĻŋāĻ•āĻžāĻļ⧇āϰ āωāĻĒāϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāĻŦ⧇āĻĻāύ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĻ›āĻŋ - āĻāĻ•āϟāĻŋ āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽ āĻāĻŽā§āϞ⧇āϟāϰ āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ.

āĻāχ āύāĻŋāĻŦāĻ¨ā§āϧ⧇ āφāĻŽāϰāĻž āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻŦ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāĻŽā§āϞ⧇āϟāϰ⧇ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āϚāĻžāϞāĻžāύ⧋ āϝāĻžāϝāĻŧ, āĻĄāĻŋāĻŦāĻžāĻ—āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ‚ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ⧇āϰ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻ—āϤāĻŋāĻļā§€āϞ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤

āĻĒā§āϰāĻžāĻ—āϐāϤāĻŋāĻšāĻžāϏāĻŋāĻ•

āĻŦāĻšā§āĻĻāĻŋāύ āφāϗ⧇ āĻŦāĻšā§ āĻĻā§‚āϰ⧇āϰ āĻāĻ• āĻ—ā§āϝāĻžāϞāĻžāĻ•ā§āϏāĻŋāϤ⧇

āĻ•āϝāĻŧ⧇āĻ• āĻŦāĻ›āϰ āφāϗ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻ—āĻžāϰ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āϤāĻĻāĻ¨ā§āϤ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻ›āĻŋāϞāĨ¤ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŦ⧁āϟāϞ⧋āĻĄāĻžāϰ āĻĻāĻŋāϝāĻŧ⧇ āϏāĻ‚āϕ⧁āϚāĻŋāϤ āĻāĻŦāĻ‚ āφāύāĻĒā§āϝāĻžāĻ• āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āϤāĻŋāύāĻŋ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϖ⧁āĻŦ āϜāϟāĻŋāϞ āωāĻĒāĻžāϝāĻŧ⧇ āĻ•āϰ⧇āϛ⧇āύ, āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āĻĄā§‡āϟāĻž āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰ⧇āϛ⧇āύ āĻ•āϝāĻŧ⧇āĻ•āĻŦāĻžāϰāĨ¤ āĻāĻŦāĻ‚ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āύāĻŋāĻœā§‡āχ āϤāĻ–āύ āϏāĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĒ⧇āϰāĻŋāĻĢ⧇āϰāĻžāϞāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰ⧇āĻ›āĻŋāϞāĨ¤ āĻāĻŦāĻ‚ āĻāχ āϏāĻŦ MIPS āϕ⧋āϰ⧇āĨ¤

āωāĻĻā§āĻĻ⧇āĻļā§āϝāĻŽā§‚āϞāĻ• āĻ•āĻžāϰāϪ⧇, āωāĻĒāϞāĻŦā§āϧ āĻāĻŽā§āϞ⧇āϟāϰāϗ⧁āϞāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āωāĻĒāϝ⧁āĻ•ā§āϤ āĻ›āĻŋāϞ āύāĻž, āϤāĻŦ⧇ āφāĻŽāϰāĻž āĻāĻ–āύāĻ“ āϕ⧋āĻĄāϟāĻŋ āϚāĻžāϞāĻžāϤ⧇ āĻšā§‡āϝāĻŧ⧇āĻ›āĻŋāϞāĻžāĻŽāĨ¤ āϤāĻžāϰāĻĒāϰ⧇ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻāĻŽā§āϞ⧇āϟāϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϝāĻŧ⧇āĻ›āĻŋ, āϝāĻž āϏāĻ°ā§āĻŦāύāĻŋāĻŽā§āύ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āĻŽā§‚āϞ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ āφāύāĻĒā§āϝāĻžāĻ• āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āĻŦ⧇āĨ¤ āφāĻŽāϰāĻž āĻāϟāĻŋ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻ•āĻžāϜ āĻ•āϰ⧇āϛ⧇āĨ¤ āφāĻŽāϰāĻž āϭ⧇āĻŦ⧇āĻ›āĻŋāϞāĻžāĻŽ, āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻŽā§‚āϞ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āϏāĻžā§āϚāĻžāϞāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĒ⧇āϰāĻŋāĻĢ⧇āϰāĻžāϞ āϝ⧋āĻ— āĻ•āϰāĻŋāĨ¤ āĻāϟāĻŋ āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āφāϘāĻžāϤ āĻ•āϰ⧇āύāĻŋ - āĻāĻŦāĻ‚ āĻāϟāĻŋāĻ“ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āφāĻŽāϰāĻž āφāĻŦāĻžāϰ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻĒā§‚āĻ°ā§āĻŖāĻžāĻ™ā§āĻ— āĻāĻŽā§āϞ⧇āϟāϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϝāĻŧ⧇āĻ›āĻŋāĨ¤

āĻĢāϞāĻžāĻĢāϞ āĻāĻ•āϟāĻŋ āĻ•āĻŽā§āĻĒāĻŋāωāϟāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻŽā§āϞ⧇āϟāϰ āĻ›āĻŋāϞ āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ.

āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻĄāĻŧāĻžāϞ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻ—āĻ¨ā§āĻĄāĻžāϰ - āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ āĻāĻŽā§āϞ⧇āϟāϰ⧇ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āϚāĻžāϞāĻžāύ
āϕ⧇āύ āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ?

āĻļāĻŦā§āĻĻ āύāĻŋāϝāĻŧ⧇ āύāĻžāϟāĻ• āφāϛ⧇āĨ¤

  1. copycat (āχāĻ‚āϰ⧇āϜāĻŋ, āĻŦāĻŋāĻļ⧇āĻˇā§āϝ [ˈkɒpÉĒkÃĻt]) - āĻ…āύ⧁āĻ•āϰāĻŖāĻ•āĻžāϰ⧀, āĻ…āύ⧁āĻ•āϰāĻŖāĻ•āĻžāϰ⧀
  2. āĻŦāĻŋāĻĄāĻŧāĻžāϞ (āχāĻ‚āϰ⧇āϜāĻŋ, āĻŦāĻŋāĻļ⧇āĻˇā§āϝ [ˈkÃĻt]) - āĻŦāĻŋāĻĄāĻŧāĻžāϞ, āĻŦāĻŋāĻĄāĻŧāĻžāϞ - āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āύāĻŋāĻ°ā§āĻŽāĻžāϤāĻžāĻĻ⧇āϰ āĻāĻ•āϜāύ⧇āϰ āĻĒā§āϰāĻŋāϝāĻŧ āĻĒā§āϰāĻžāĻŖā§€
  3. "K" āĻ…āĻ•ā§āώāϰāϟāĻŋ āϕ⧋āϟāϞāĻŋāύ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻŋāĻ‚ āĻ­āĻžāώāĻž āĻĨ⧇āϕ⧇ āĻāϏ⧇āϛ⧇

āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ

āĻāĻŽā§āϞ⧇āϟāϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āϖ⧁āĻŦ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϞāĻ•ā§āĻˇā§āϝ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ:

  • āĻĻā§āϰ⧁āϤ āύāϤ⧁āύ āĻĒ⧇āϰāĻŋāĻĢ⧇āϰāĻžāϞ, āĻŽāĻĄāĻŋāωāϞ, āĻĒā§āϰāϏ⧇āϏāϰ āϕ⧋āϰ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž;
  • āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻŽāĻĄāĻŋāωāϞ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĄāĻŋāĻ­āĻžāχāϏ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž;
  • āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āĻŽā§‡āĻŽāϰāĻŋāϤ⧇ āϝ⧇āϕ⧋āύ⧋ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĄā§‡āϟāĻž (āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ) āϞ⧋āĻĄ āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž;
  • āĻ¸ā§āĻ¨ā§āϝāĻžāĻĒāĻļāϟāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž (āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸ā§āĻŸā§‡āĻŸā§‡āϰ āĻ¸ā§āĻ¨ā§āϝāĻžāĻĒāĻļāϟ);
  • āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻĄāĻŋāĻŦāĻžāĻ—āĻžāϰ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻŽā§āϞ⧇āϟāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž;
  • āωāĻ¨ā§āύāϝāĻŧāύ⧇āϰ āϜāĻ¨ā§āϝ āϏ⧁āĻ¨ā§āĻĻāϰ āφāϧ⧁āύāĻŋāĻ• āĻ­āĻžāώāĻžāĨ¤

āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϕ⧋āϟāϞāĻŋāύāϕ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦ⧇āϛ⧇ āύ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ, āĻŦāĻžāϏ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ (āĻāϟāĻŋ āĻšāϞ āϝāĻ–āύ āĻŽāĻĄāĻŋāωāϞāϗ⧁āϞāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻĄā§‡āϟāĻž āĻŦāĻžāϏ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰ⧇), āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āĻŦāĻ°ā§āĻŖāύāĻžāϰ āĻŦāĻŋāĻ¨ā§āϝāĻžāϏ āĻšāĻŋāϏāĻžāĻŦ⧇ JSON āĻāĻŦāĻ‚ āĻĄāĻŋāĻŦāĻžāĻ—āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰāĻžāϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻšāĻŋāϏāĻžāĻŦ⧇ GDB RSPāĨ¤

āωāĻ¨ā§āύāϝāĻŧāύ āĻĻ⧁āχ āĻŦāĻ›āϰ⧇āϰāĻ“ āĻŦ⧇āĻļāĻŋ āϏāĻŽāϝāĻŧ āϧāϰ⧇ āϚāϞāϛ⧇ āĻāĻŦāĻ‚ āϏāĻ•ā§āϰāĻŋāϝāĻŧāĻ­āĻžāĻŦ⧇ āϚāϞāϛ⧇āĨ¤ āĻāχ āϏāĻŽāϝāĻŧ⧇āϰ āĻŽāĻ§ā§āϝ⧇, MIPS, x86, V850ES, ARM, āĻāĻŦāĻ‚ PowerPC āĻĒā§āϰāϏ⧇āϏāϰ āϕ⧋āϰāϗ⧁āϞāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

āĻĒā§āϰāĻ•āĻ˛ā§āĻĒāϟāĻŋ āĻ•ā§āϰāĻŽāĻŦāĻ°ā§āϧāĻŽāĻžāύ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻŦā§āϝāĻžāĻĒāĻ• āϜāύāϏāĻžāϧāĻžāϰāϪ⧇āϰ āĻ•āĻžāϛ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧāĨ¤ āφāĻŽāϰāĻž āĻĒāϰ⧇ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāϰāĻŖ āĻ•āϰāĻŦ, āϤāĻŦ⧇ āφāĻĒāĻžāϤāϤ āφāĻŽāϰāĻž āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āωāĻĒāϰ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰāĻŦāĨ¤

āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āĻ…āϧ⧈āĻ°ā§āϝ⧇āϰ āϜāĻ¨ā§āϝ, āĻāĻŽā§āϞ⧇āϟāϰ⧇āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϚāĻžāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖ āĻĨ⧇āϕ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āϞāĻŋāĻ‚āĻ•.

āĻāĻŽā§āϞ⧇āϟāϰ⧇ āϰāĻžāχāύ⧋

āφāĻŽāĻžāĻĻ⧇āϰ āĻ¸ā§āĻŽāϰāĻŖ āĻ•āϰāĻž āϝāĻžāĻ• āϝ⧇ āĻāϰ āφāϗ⧇ SMARTRHINO-2018 āϏāĻŽā§āĻŽā§‡āϞāύ⧇, āĻŦāĻŋāĻĒāϰ⧀āϤ āĻĒā§āϰāĻ•ā§ŒāĻļāϞ āĻĻāĻ•ā§āώāϤāĻž āĻļ⧇āĻ–āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻžāĻŽā§‚āϞāĻ• āĻĄāĻŋāĻ­āĻžāχāϏ "āĻ—āĻŖā§āĻĄāĻžāϰ" āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤ āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŦāĻŋāĻļā§āϞ⧇āώāϪ⧇āϰ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āĻāχ āύāĻŋāĻŦāĻ¨ā§āϧāϟāĻŋ.

āĻāĻ–āύ āφāϏ⧁āύ "āĻ¸ā§āĻĒāĻŋāĻ•āĻžāϰ" āϝ⧋āĻ— āĻ•āϰāĻžāϰ āĻāĻŦāĻ‚ āĻāĻŽā§āϞ⧇āϟāϰ⧇ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āϚāĻžāϞāĻžāύ⧋āϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŋāĨ¤

āφāĻŽāϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇:
1) āϜāĻžāĻ­āĻž 1.8
2) āĻĒāĻžāχāĻĨāύ āĻāĻŦāĻ‚ āĻŽāĻĄāĻŋāωāϞ āĻœā§‡āĻĒ āĻāĻŽā§āϞ⧇āϟāϰ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻĒāĻžāχāĻĨāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇āĨ¤ Jep āĻŽāĻĄāĻŋāωāϞ⧇āϰ WHL āĻŦāĻŋāĻ˛ā§āĻĄāĨ¤ Windows āĻĒāĻžāϰ⧇āύ āĻāĻ–āĻžāύ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰ⧁āύ.

āĻĨ⧇āϕ⧇ Windows:
1) com0com
2) āĻĒ⧁āϟāĻŋāĻ‚

āĻĨ⧇āϕ⧇ Linux:
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 āĻšāϞ āĻĒāĻžāχāĻĨāύ āχāĻ¨ā§āϟāĻžāϰāĻĒā§āϰ⧇āϟāĻžāϰāĨ¤ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻĒāύāĻžāϕ⧇ āĻœā§‡āĻĒ āĻĒāĻžāχāĻĨāύ āĻŽāĻĄāĻŋāωāϞāϟāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻĒāĻžāχāĻĨāύ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻŽā§āϞ⧇āϟāϰāϟāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ (āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻĒā§āϰāϧāĻžāύ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻĒāĻžāχāĻĨāύ āχāĻ¨ā§āϟāĻžāϰāĻĒā§āϰ⧇āϟāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇)āĨ¤

āĻĒāĻžāχāĻĨāύ āĻŽāĻĄāĻŋāωāϞ āĻœā§‡āĻĒ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇

āϤāϞāĻĻ⧇āĻļ⧇ Linux Jep pip āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āϝāĻžāϝāĻŧ:

pip install jep

āĻœā§‡āĻĒ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ Windows āĻ…āĻŦāĻļā§āϝāχ āφāϗ⧇ āĻĨ⧇āϕ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ Windows āĻāϏāĻĄāĻŋāϕ⧇ āĻāĻŦāĻ‚ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻĢāϟ āĻ­āĻŋāĻœā§āϝ⧁āϝāĻŧāĻžāϞ āĻ¸ā§āϟ⧁āĻĄāĻŋāĻ“āĨ¤ āφāĻŽāϰāĻž āφāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāώāϝāĻŧāϗ⧁āϞ⧋ āφāϰāĻ“ āĻāĻ•āϟ⧁ āϏāĻšāϜ āĻ•āϰ⧇ āĻĻāĻŋāϝāĻŧ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĻ›āĻŋ WHL āϤ⧈āϰāĻŋ āĻ•āϰ⧇ āĻĒāĻžāχāĻĨāύ⧇āϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ JEP WindowsāϏ⧁āϤāϰāĻžāĻ‚ āĻŽāĻĄāĻŋāωāϞāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇:

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 - āϜāĻ¨ā§āϝ Windows, āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ - āϜāĻ¨ā§āϝ LinuxāĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻ•āĻžāϝāĻŧ ) DEFAULT_JVM_OPTS āĻāĻ•āϟāĻŋ āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āϝ⧋āĻ— āĻ•āϰ⧁āύ Djava.library.path — āĻāϤ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž Jep āĻŽāĻĄāĻŋāωāϞ⧇āϰ āĻĒāĻžāĻĨ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ Windows āφāĻĒāύāĻžāϰ āĻāχāϰāĻ•āĻŽ āĻāĻ•āϟāĻŋ āϞāĻžāχāύ āĻĒāĻžāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ:

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) āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϞāĻžā§āϚ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āĻāϰ āĻ…āϧ⧀āύ⧇ āϚāĻžāϞāĻžāύ⧋āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ Windows:

binkopycat -g 23946 -n rhino -l user -y library -p firmware=firmwarerhino_pass.bin,tty_dbg=COM26,tty_bt=COM28

āĻāϰ āĻ…āϧ⧀āύ⧇ āϚāĻžāϞāĻžāύ⧋āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ Linux 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 āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ ELF āĻĢāĻžāχāϞ (āĻŽā§‡āϟāĻž āϤāĻĨā§āϝ āϏ⧇āĻ–āĻžāύ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ)āĨ¤

āφāĻĒāύāĻŋ āĻŽā§‡āϟāĻž āϤāĻĨā§āϝ āĻ›āĻžāĻĄāĻŧāĻžāχ āĻĒā§āϰāϧāĻžāύ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āφāχāĻĄāĻŋāĻ āĻĒā§āϰ⧋āϤ⧇ āĻ•āĻĒāĻŋāĻ•ā§āϝāĻžāϟ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āĻĄāĻŋāĻŦāĻžāĻ—āĻžāϰ āĻŽā§‡āύ⧁āϤ⧇ āφāχāĻŸā§‡āĻŽāϟāĻŋāϤ⧇ āϝāĻžāύ “āĻĄāĻŋāĻŦāĻžāĻ—āĻžāϰ āĻ¸ā§āϝ⧁āχāϚ āĻ•āϰ⧁āύ..."āĻāĻŦāĻ‚ āϚāϝāĻŧāύ āĻ•āϰ⧁āύ"āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ 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 āĻ•āĻžāϜāϗ⧁āϞāĻŋ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•ā§āϟ āĻ•āϰ⧇ āϤāĻž āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

āĻ…āĻŦāĻļā§āϝāχ, āĻŦāĻžāĻ¸ā§āϤāĻŦ⧇, āĻ•āĻžāĻ°ā§āϝāϗ⧁āϞāĻŋāϰ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āϰāĻŋāϝāĻŧāĻž āφāϰāĻ“ āϜāϟāĻŋāϞ āĻšāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻāĻŽā§āϞ⧇āϟāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āĻāχ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰāĻž āĻ•āĻŽ āĻļā§āϰāĻŽāϏāĻžāĻ§ā§āϝ āĻšāϝāĻŧ⧇ āĻ“āϠ⧇āĨ¤

āĻāĻ–āĻžāύ⧇ āφāĻĒāύāĻŋ āĻāĻŽā§āϞ⧇āϟāϰ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻāĻŦāĻ‚ IDA Pro āĻāϰ āϏāĻžāĻĨ⧇ āχāĻ¨ā§āϟāĻžāϰāĻ…ā§āϝāĻžāĻ•ā§āϟ āĻ•āϰāĻžāϰ āĻāĻ•āϟāĻŋ āϛ⧋āϟ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤

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 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ STM32 āĻāϰ āϜāĻ¨ā§āϝ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āĻŦ⧇āĻžā§āϚ.

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

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster