เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดฎเต€เดฑเตเดฑเดฟเด‚เด—เดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟ 0x0A DC7831 DEF CON เดจเดฟเดธเตเดจเดฟ เดจเต‹เดตเตเด—เตŠเดฑเต‹เดกเต เดซเต†เดฌเตเดฐเตเดตเดฐเดฟ 16 เดจเต, เดฌเตˆเดจเดฑเดฟ เด•เต‹เดกเต เดŽเดฎเตเดฒเต‡เดทเดจเตเดฑเต† เด…เดŸเดฟเดธเตเดฅเดพเดจ เดคเดคเตเดตเด™เตเด™เดณเต†เดฏเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดตเดฟเด•เดธเดจเดคเตเดคเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดžเด™เตเด™เตพ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเต - เด’เดฐเต เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดชเตเดฒเดพเดฑเตเดฑเตเดซเต‹เด‚ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต.

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เด‰เดชเด•เดฐเดฃ เดซเต‡เด‚เดตเต†เดฏเตผ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚, เดกเต€เดฌเด—เตเด—เดฑเตเดฎเดพเดฏเตเดณเตเดณ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดŽเด™เตเด™เดจเต† เดจเดŸเดคเตเดคเดพเดฎเต†เดจเตเดจเตเด‚, เดซเต‡เด‚เดตเต†เดฏเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดšเดฒเดจเดพเดคเตเดฎเด• เดตเดฟเดถเด•เดฒเดจเด‚ เดจเดŸเดคเตเดคเดพเดฎเต†เดจเตเดจเตเด‚ เดžเด™เตเด™เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเด‚.

เดšเดฐเดฟเดคเตเดฐเดพเดคเต€เดคเด•เดพเดฒเด‚

เดตเดณเดฐเต† เดฆเต‚เดฐเต†เดฏเตเดณเตเดณ เด’เดฐเต เด—เดพเดฒเด•เตเดธเดฟเดฏเดฟเตฝ เดตเดณเดฐเต†เด•เตเด•เดพเดฒเด‚ เดฎเตเดฎเตเดชเต

เด•เตเดฑเดšเตเดšเต เดตเตผเดทเด™เตเด™เตพเด•เตเด•เต เดฎเตเดฎเตเดชเต, เดžเด™เตเด™เดณเตเดŸเต† เดฒเดฌเต‹เดฑเดŸเตเดŸเดฑเดฟเดฏเดฟเตฝ เด’เดฐเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดซเต‡เด‚เดตเต†เดฏเตผ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดจเตเดฑเต† เด†เดตเดถเตเดฏเด•เดค เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดซเต‡เด‚เดตเต†เดฏเตผ เด’เดฐเต เดฌเต‚เดŸเตเดŸเตเดฒเต‹เดกเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เด‚เดชเตเดฐเดธเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเต. เดตเดณเดฐเต† เดธเด™เตเด•เต€เดฐเต เดฃเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเดฒเดพเดฃเต เด…เดฆเตเดฆเต‡เดนเด‚ เด‡เดคเต เดšเต†เดฏเตเดคเดคเต, เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเต† เดกเดพเดฑเตเดฑ เดชเดฒเดคเดตเดฃ เดฎเดพเดฑเตเดฑเดฟ. เดซเต‡เด‚เดตเต†เดฏเตผ เดคเดจเตเดจเต† เดชเดฟเดจเตเดจเต€เดŸเต เดชเต†เดฐเดฟเดซเดฑเดฒเตเด•เดณเตเดฎเดพเดฏเดฟ เดธเดœเต€เดตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเดšเตเดšเต. MIPS เด•เต‹เดฑเดฟเตฝ เด‡เดคเต†เดฒเตเดฒเดพเด‚.

เดตเดธเตเดคเตเดจเดฟเดทเตเด เดฎเดพเดฏ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ, เดฒเดญเตเดฏเดฎเดพเดฏ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเตเด•เตพ เดžเด™เตเด™เตพเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ, เดชเด•เตเดทเต‡ เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เด•เต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เดคเตเดŸเตผเดจเตเดจเต เดžเด™เตเด™เตพ เดธเตเดตเดจเตเดคเดฎเดพเดฏเดฟ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต, เด…เดคเต เดเดฑเตเดฑเดตเตเด‚ เด•เตเดฑเดžเตเดžเดคเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดชเตเดฐเดงเดพเดจ เดซเต‡เด‚เดตเต†เดฏเตผ เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดžเด™เตเด™เตพ เด…เดคเต เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต, เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต. เดชเตเดฐเดงเดพเดจ เดซเต‡เด‚เดตเต†เดฏเตผ เดจเดฟเตผเดตเดนเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเต†เดฐเดฟเดซเดฑเดฒเตเด•เตพ เดšเต‡เตผเดคเตเดคเดพเดฒเต‹ เดŽเดจเตเดจเต เดžเด™เตเด™เตพ เดšเดฟเดจเตเดคเดฟเดšเตเดšเต. เด‡เดคเต เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดตเต‡เดฆเดจเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฒเตเดฒ - เด…เดคเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต. เดžเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เด†เดฒเต‹เดšเดฟเดšเตเดšเต เด’เดฐเต เดชเต‚เตผเดฃเตเดฃ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต.

เด’เดฐเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเตผ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดพเดฏเดฟเดฐเตเดจเตเดจเต เดซเดฒเด‚ เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต.

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•
เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต?

เดตเดพเด•เตเด•เตเด•เดณเดฟเตฝ เด’เดฐเต เด•เดณเดฟเดฏเตเดฃเตเดŸเต.

  1. copycat (เด‡เด‚เด—เตเดฒเต€เดทเต, เดจเดพเดฎเด‚ [หˆkษ’pษชkรฆt]) - เด…เดจเตเด•เดฐเดฃเด‚, เด…เดจเตเด•เดฐเดฃเด‚
  2. เดชเต‚เดšเตเดš (เด‡เด‚เด—เตเดฒเต€เดทเต, เดจเดพเดฎเด‚ [หˆkรฆt]) - เดชเต‚เดšเตเดš, เดชเต‚เดšเตเดš - เดชเดฆเตเดงเดคเดฟเดฏเตเดŸเต† เดธเตเดฐเดทเตโ€ŒเดŸเดพเด•เตเด•เดณเดฟเตฝ เด’เดฐเดพเดณเตเดŸเต† เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ เดฎเตƒเด—เด‚
  3. "เด•เต†" เดŽเดจเตเดจ เด…เด•เตเดทเดฐเด‚ เด•เต‹เดŸเตเดฒเดฟเตป เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต

เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต

เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดตเดณเดฐเต† เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดฒเด•เตเดทเตเดฏเด™เตเด™เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เดฟ:

  • เดชเตเดคเดฟเดฏ เดชเต†เดฐเดฟเดซเดฑเดฒเตเด•เตพ, เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ, เดชเตเดฐเต‹เดธเดธเตผ เด•เต‹เดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดต เดตเต‡เด—เดคเตเดคเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต;
  • เดตเดฟเดตเดฟเดง เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดตเต†เตผเดšเตเดตเตฝ เด‰เดชเด•เดฐเดฃเด‚ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต;
  • เด’เดฐเต เดตเต†เตผเดšเตเดตเตฝ เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฌเตˆเดจเดฑเดฟ เดกเดพเดฑเตเดฑ (เดซเต‡เด‚เดตเต†เดฏเตผ) เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต;
  • เดธเตเดจเดพเดชเตเดชเตเดทเต‹เดŸเตเดŸเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต (เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดตเดธเตเดฅเดฏเตเดŸเต† เดธเตเดจเดพเดชเตเดชเตเดทเต‹เดŸเตเดŸเตเด•เตพ);
  • เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดกเต€เดฌเด—เตเด—เตผ เดตเดดเดฟ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต;
  • เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเต เดจเดฒเตเดฒ เด†เดงเตเดจเดฟเด• เดญเดพเดท.

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด•เต‹เดŸเตโ€Œเดฒเดฟเตป เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, เด’เดฐเต เดฌเดธเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดšเตผ (เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดตเต†เตผเดšเตเดตเตฝ เดกเดพเดฑเตเดฑ เดฌเดธเตเด•เตพ เดตเดดเดฟ เดชเดฐเดธเตเดชเดฐเด‚ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดจเดŸเดคเตเดคเตเดฎเตเดชเต‹เดดเดพเดฃเต), เด’เดฐเต เด‰เดชเด•เดฐเดฃ เดตเดฟเดตเดฐเดฃ เดซเต‹เตผเดฎเดพเดฑเตเดฑเดพเดฏเดฟ JSON, เดกเต€เดฌเด—เตเด—เดฑเตเดฎเดพเดฏเตเดณเตเดณ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเดคเตเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด†เดฏเดฟ GDB RSP.

เดฐเดฃเตเดŸเต เดตเตผเดทเดคเตเดคเดฟเดฒเต‡เดฑเต†เดฏเดพเดฏเดฟ เดตเดฟเด•เดธเดจเด‚ เดจเดŸเด•เตเด•เตเดจเตเดจเต, เดธเดœเต€เดตเดฎเดพเดฏเดฟ เดคเตเดŸเดฐเตเดจเตเดจเต. เดˆ เดธเดฎเดฏเดคเตเดคเต, MIPS, x86, V850ES, ARM, PowerPC เดชเตเดฐเต‹เดธเดธเตผ เด•เต‹เดฑเตเด•เตพ เดŽเดจเตเดจเดฟเดต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ.

เดชเดฆเตเดงเดคเดฟ เดตเดฟเด•เดธเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดชเตŠเดคเตเดœเดจเด™เตเด™เตพเด•เตเด•เต เดฎเตเดจเตเดจเดฟเตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฏเดฟ. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเดฃเด‚ เดžเด™เตเด™เตพ เดชเดฟเดจเตเดจเต€เดŸเต เดšเต†เดฏเตเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดถเตเดฐเดฆเตเดง เด•เต‡เดจเตเดฆเตเดฐเต€เด•เดฐเดฟเด•เตเด•เตเด‚.

เดเดฑเตเดฑเดตเตเด‚ เด…เด•เตเดทเดฎเดฐเดพเดฏเดตเตผเด•เตเด•เต, เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เดชเตเดฐเตŠเดฎเต‹ เดชเดคเดฟเดชเตเดชเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต เดฒเดฟเด™เตเด•เต.

เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดฑเดฟเดจเต‹

เดจเต‡เดฐเดคเตเดคเต†, SMARTRHINO-2018 เด•เต‹เตบเดซเดฑเตปเดธเดฟเดจเดพเดฏเดฟ, เดฑเดฟเดตเต‡เดดเตเดธเต เดŽเดžเตเดšเดฟเดจเต€เดฏเดฑเดฟเด‚เด—เต เด•เดดเดฟเดตเตเด•เตพ เดชเด เดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดชเดฐเต€เด•เตเดทเดฃ เด‰เดชเด•เดฐเดฃเด‚ "เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚" เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเต เดจเดฎเตเด•เตเด•เต เด“เตผเด•เตเด•เดพเด‚. เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดซเต‡เด‚เดตเต†เดฏเตผ เดตเดฟเดถเด•เดฒเดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเด•เตเดฐเดฟเดฏ เดตเดฟเดตเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดˆ เดฒเต‡เด–เดจเด‚.

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต "เดธเตเดชเต€เด•เตเด•เดฑเตเด•เตพ" เดšเต‡เตผเด•เตเด•เดพเดจเตเด‚ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚.

เดžเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดฃเตเดŸเดคเต:
1) เดœเดพเดต 1.8
2) เดชเตˆเดคเตเดคเดฃเตเด‚ เดฎเตŠเดกเตเดฏเต‚เดณเตเด‚ เดœเต†เดชเตเดชเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดชเตˆเดคเตเดคเตบ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดฟเตปเดกเต‹เดธเดฟเดจเดพเดฏเดฟ WHL เดฎเตŠเดกเตเดฏเต‚เตพ เดœเต†เดชเตเดชเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ เด‡เดตเดฟเดŸเต† เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•.

เดตเดฟเตปเดกเต‹เดธเดฟเดจเดพเดฏเดฟ:
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 เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

com0com เด•เดฟเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเดœเตเดœเต€เด•เดฐเดฃ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดตเต†เตผเดšเตเดตเตฝ COM เดชเต‹เตผเดŸเตเดŸเตเด•เตพ เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต (เด•เตบเดธเต‹เตพ เดชเดคเดฟเดชเตเดชเต - เดธเดฟ:เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดซเดฏเดฒเตเด•เตพ (x86)com0comsetupั.exe, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ GUI เดชเดคเดฟเดชเตเดชเต - เดธเดฟ:เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดซเดฏเดฒเตเด•เตพ (x86)com0comsetupg.exe):

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดฌเต‹เด•เตเดธเตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด• เดฌเดซเตผ เด“เดตเตผเดฑเตบ เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด• เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดŽเดฒเตเดฒเดพ เดตเต†เตผเดšเตเดตเตฝ เดชเต‹เตผเดŸเตเดŸเตเด•เตพเด•เตเด•เตเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ COM เดชเต‹เตผเดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเตเดฐเดคเดฟเด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด‚.

เดธเต‹เด•เดพเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต

UNIX เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เดณเดฟเตฝ, เดธเต‹เด•เดพเดฑเตเดฑเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดธเตเดตเดฏเดฎเต‡เดต เดตเต†เตผเดšเตเดตเตฝ COM เดชเต‹เตผเดŸเตเดŸเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต; เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดชเต‹เตผเดŸเตเดŸเต เดจเดพเดฎเดคเตเดคเดฟเตฝ เดชเตเดฐเดฟเดซเดฟเด•เตเดธเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•. socat:.

เด†เดจเตเดคเดฐเดฟเด• เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด‡เดจเตเดฑเตผเดซเต‡เดธเต (Argparse เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ Python)

เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เด’เดฐเต เด•เตบเดธเต‹เตพ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฏเดคเดฟเดจเดพเตฝ, เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด…เดคเดฟเดจเตเดฑเต† เด’เดฌเตเดœเด•เตเดฑเตเดฑเตเด•เดณเตเดฎเดพเดฏเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเดฎเดพเดฏเตเด‚ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฐเดฃเตเดŸเต เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด‡เดจเตเดฑเตผเดซเต‡เดธเต เด“เดชเตเดทเดจเตเด•เตพ เดจเตฝเด•เตเดจเตเดจเต: เด†เตผเด—เตเดชเดพเตผเดธเต, เดชเตˆเดคเตเดคเตบ.

เด†เตผเด—เตเดชเดพเตผเดธเต เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เด’เดฐเต CLI เด†เดฃเต, เด…เดคเต เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเดฎเดพเดฏเดฟ เดŽเดชเตเดชเต‹เดดเตเด‚ เดฒเดญเตเดฏเดฎเดพเดฃเต.

เด’เดฐเต เดฌเดฆเตฝ CLI เด†เดฃเต เดชเตˆเดคเตเดคเตบ เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเตผ. เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดœเต†เดชเตเดชเต เดชเตˆเดคเตเดคเตบ เดฎเตŠเดกเตเดฏเต‚เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดชเตˆเดคเตเดคเดฃเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด•เตเดฐเดฎเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚ (เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดณเตเดณ เดชเตˆเดคเตเดคเตบ เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚).

เดชเตˆเดคเตเดคเตบ เดฎเตŠเดกเตเดฏเต‚เตพ เดœเต†เดชเตเดชเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

Linux เดœเต†เดชเตเดชเดฟเดจเต เด•เต€เดดเดฟเตฝ เดชเตˆเดชเตเดชเต เดตเดดเดฟ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚:

pip install jep

เดตเดฟเตปเดกเต‹เดธเดฟเตฝ เดœเต†เดชเตเดชเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป, เดจเดฟเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เดตเดฟเตปเดกเต‹เดธเต เดŽเดธเตเดกเดฟเด•เต†เดฏเตเด‚ เด…เดจเตเดฌเดจเตเดง เดฎเตˆเด•เตเดฐเต‹เดธเต‹เดซเตเดฑเตเดฑเต เดตเดฟเดทเตเดตเตฝ เดธเตเดฑเตเดฑเตเดกเดฟเดฏเต‹เดฏเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดฃเด‚. เดžเด™เตเด™เตพ เด‡เดคเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต WHL เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต เดตเดฟเตปเดกเต‹เดธเดฟเดจเดพเดฏเตเดณเตเดณ เดชเตˆเดคเตเดคเดฃเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เดชเดคเดฟเดชเตเดชเตเด•เตพเด•เตเด•เตเดณเตเดณ เดœเต†เด‡เดชเดฟ, เด…เดคเดฟเดจเดพเตฝ เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเตŠเดกเตเดฏเต‚เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚:

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 โ€” เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เดœเต†เดชเตเดชเต เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเดพเดค เด‡เดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚.

เดตเดฟเตปเดกเต‹เดธเดฟเดจเตเดฑเต† เดซเดฒเด‚ เด‡เดคเตเดชเต‹เดฒเต†เดฏเตเดณเตเดณ เด’เดฐเต เดตเดฐเดฟ เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚:

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 เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Linux-เดจเต เด•เต€เดดเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดฎเดพเตปเดกเต:

./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 โ€” GDB เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดชเตเดฐเดตเต‡เดถเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดคเตเดฑเดจเตเดจเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ TCP เดชเต‹เตผเดŸเตเดŸเต;
  • -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 เดชเตเดฐเต‹เดฏเตเดฎเดพเดฏเตเดณเตเดณ เด‡เดŸเดชเต†เดŸเตฝ

เดชเดฐเดฟเดถเต‹เดงเดจ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเตป, เดซเต‹เดฎเดฟเดฒเต† เดเดกเดฟเดŽเดฏเดฟเตฝ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด‰เดฑเดตเดฟเดŸ เดซเดฏเดฒเดพเดฏเดฟ เดžเด™เตเด™เตพ เดฑเดฟเดจเต‹ เดซเต‡เด‚เดตเต†เดฏเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต ELF เดซเดฏเตฝ (เดฎเต†เดฑเตเดฑเดพ เดตเดฟเดตเดฐเด™เตเด™เตพ เด…เดตเดฟเดŸเต† เดธเต‚เด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต).

เดฎเต†เดฑเตเดฑเดพ เดตเดฟเดตเดฐเด™เตเด™เดณเดฟเดฒเตเดฒเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดชเตเดฐเดงเดพเดจ เดซเต‡เด‚เดตเต†เดฏเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เดเดกเดฟเดŽ เดชเตเดฐเต‹เดฏเดฟเตฝ เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดธเดฎเดพเดฐเด‚เดญเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเด‚, เดกเต€เดฌเด—เตเด—เตผ เดฎเต†เดจเตเดตเดฟเดฒเต† เด‡เดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด• "เดกเต€เดฌเด—เตเด—เตผ เดฎเดพเดฑเตเด•..."เด’เดชเตเดชเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•"เดตเดฟเดฆเต‚เดฐ GDB เดกเต€เดฌเด—เตเด—เตผ". เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เด•เดฃเด•เตเดทเตป เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•: เดฎเต†เดจเต เดกเต€เดฌเด—เตเด—เตผ - เดชเตเดฐเต‹เดธเดธเตเดธเต เด“เดชเตเดทเดจเตเด•เตพ...

เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•:

  • เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป - เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเต‚เดฒเตเดฏเด‚
  • เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเตเดฑเต† เดชเต‡เดฐเต: 127.0.0.1 (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดฑเดฟเดฎเต‹เดŸเตเดŸเต เดฎเต†เดทเต€เดจเตเดฑเต† IP เดตเดฟเดฒเดพเดธเด‚)
  • เดชเต‹เตผเดŸเตเดŸเต: 23946

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เด‡เดชเตเดชเต‹เตพ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดฌเดŸเตเดŸเตบ เดฒเดญเตเดฏเดฎเดพเด•เตเดจเตเดจเต (F9 เด•เต€):

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดฒเต† เดกเต€เดฌเด—เตเด—เตผ เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเดพเตป เด…เดคเดฟเตฝ เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•. IDA เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต, เด…เดงเดฟเด• เดตเดฟเตปเดกเต‹เด•เตพ เดฒเดญเตเดฏเดฎเดพเด•เตเดจเตเดจเต: เดฐเดœเดฟเดธเตเดฑเตเดฑเดฑเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ, เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ.

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดกเต€เดฌเด—เตเด—เดฑเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚:

  • เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเดŸเต† เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเตเดณเตเดณ เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ (เด‡เดคเดฟเดฒเต‡เด•เตเด•เต เด•เดŸเด•เตเด•เตเด• ะธ เดšเตเดตเดŸเตเดตเต†เด•เตเด•เตเด• - เด•เต€เด•เตพ เดฏเดฅเดพเด•เตเดฐเดฎเด‚ F7, F8);
  • เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเตเดจเตเดจเดคเตเด‚;
  • เด•เต‹เดกเดฟเดจเตเด‚ เดกเดพเดฑเตเดฑเดฏเตเด•เตเด•เตเดฎเดพเดฏเดฟ เดฌเตเดฐเต‡เด•เตเด•เตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต (F2 เด•เต€).

เด’เดฐเต เดกเต€เดฌเด—เตเด—เดฑเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดซเต‡เด‚เดตเต†เดฏเตผ เด•เต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดฒเตเดฒ. เดจเดฟเดฒเดตเดฟเดฒเต† เดจเดฟเตผเดตเตเดตเดนเดฃ เดธเตเดฅเดพเดจเด‚ เดตเดฟเดฒเดพเดธเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ 0x08006A74 - เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เด‚ Reset_Handler. เดจเดฟเด™เตเด™เตพ เดฒเดฟเดธเตเดฑเตเดฑเดฟเด‚เด—เต เดคเดพเดดเต‡เด•เตเด•เต เดธเตเด•เตเดฐเต‹เตพ เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดซเด‚เด—เตเดทเตป เด•เต‹เตพ เด•เดพเดฃเดพเด‚ เดชเตเดฐเดงเดพเดจ. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดˆ เดตเดฐเดฟเดฏเดฟเตฝ เด•เดดเตเดธเตผ เดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเด‚ (เดตเดฟเดฒเดพเดธเด‚ 0x08006ABE) เด•เต‚เดŸเดพเดคเต† เด“เดชเตเดชเดฑเต‡เดทเตป เดจเดŸเดคเตเดคเตเด• เด•เดดเตเดธเตผ เดตเดฐเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• (เด•เต€ F4).

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดซเด‚เด—เตเดทเดจเดฟเตฝ เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพเด•เตเด•เต F7 เด…เดฎเตผเดคเตเดคเดพเด‚ เดชเตเดฐเดงเดพเดจ.

เดจเดฟเด™เตเด™เตพ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดคเตเดŸเดฐเตเด• (F9 เด•เต€), เดคเตเดŸเตผเดจเตเดจเต "เดฆเดฏเดตเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•" เดตเดฟเตปเดกเต‹ เด’เดฐเตŠเดฑเตเดฑ เดฌเดŸเตเดŸเดฃเดฟเตฝ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเด‚ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเดฟเดตเดฏเตเด•เตเด•เตเด•:

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดจเดฟเด™เตเด™เตพ เด…เดฎเตผเดคเตเดคเตเดฎเตเดชเต‹เตพ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเดฟเดตเดฏเตเด•เตเด•เตเด• เดซเต‡เด‚เดตเต†เดฏเตผ เด•เต‹เดกเดฟเดจเตเดฑเต† เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเดฟ, เด…เดคเต เดคเดŸเดธเตเดธเดชเตเดชเต†เดŸเตเดŸ เด•เต‹เดกเดฟเดฒเต† เด…เดคเต‡ เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเตเดŸเดฐเดพเด‚.

เดจเดฟเด™เตเด™เตพ เด•เต‹เดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดคเตเดŸเดฐเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดตเต†เตผเดšเตเดตเตฝ COM เดชเต‹เตผเดŸเตเดŸเตเด•เดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณ เดŸเต†เตผเดฎเดฟเดจเดฒเตเด•เดณเดฟเตฝ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเดฐเดฟเด•เตพ เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚:

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

"เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเต เดฌเตˆเดชเดพเดธเต" เดฒเตˆเดจเดฟเดจเตเดฑเต† เดธเดพเดจเตเดจเดฟเดงเตเดฏเด‚ เดตเต†เตผเดšเตเดตเตฝ เดฌเตเดฒเต‚เดŸเต‚เดคเตเดคเต เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเดฑเต† COM เดชเต‹เตผเดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเดฟเดฏเดคเดพเดฏเดฟ เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดชเตเดชเต‹เตพ เดฌเตเดฒเต‚เดŸเต‚เดคเตเดคเต เดŸเต†เตผเดฎเดฟเดจเดฒเดฟเตฝ (เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ COM29) เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฑเดฟเดจเต‹ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เด•เดฎเดพเตปเดกเตเด•เตพ เดจเตฝเด•เดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, "MEOW" เด•เดฎเดพเตปเดกเต เดฌเตเดฒเต‚เดŸเต‚เดคเตเดคเต เดŸเต†เตผเดฎเดฟเดจเดฒเดฟเดฒเต‡เด•เตเด•เต "mur-mur" เดŽเดจเตเดจ เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด‚:

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดŽเดจเตเดจเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เด…เดจเตเด•เดฐเดฟเด•เตเด•เดฐเตเดคเต

เด’เดฐเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเดฆเดพเด‚เดถเด‚/เดŽเดฎเตเดฒเต‡เดทเตป เดฒเต†เดตเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฌเตเดฒเต‚เดŸเต‚เดคเตเดคเต เดฎเตŠเดกเตเดฏเต‚เตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฐเต€เดคเดฟเด•เดณเดฟเตฝ เด…เดจเตเด•เดฐเดฟเด•เตเด•เดพเด‚:

  • เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เด•เดฎเดพเตปเดกเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‰เดชเด•เดฐเดฃเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เด…เดจเตเด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต;
  • AT เด•เดฎเดพเตปเดกเตเด•เตพ เด…เดจเตเด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดชเตเดฐเดงเดพเดจ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† COM เดชเต‹เตผเดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดธเตเดŸเตเดฐเต€เด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต;
  • เดตเต†เตผเดšเตเดตเตฝ เด‰เดชเด•เดฐเดฃเด‚ เดฏเดฅเดพเตผเดคเตเดฅ เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เดฑเต€เดกเดฏเดฑเด•เตเดทเตป เดจเตฝเด•เตเดจเตเดจเต;
  • เดŽเดฒเตเดฒเดพเดฏเตโ€Œเดชเตเดชเต‹เดดเตเด‚ "เดถเดฐเดฟ" เดŽเดจเตเดจเต เดจเตฝเด•เตเดจเตเดจ เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เด…เดชเต‚เตผเดฃเตเดฃเด‚.

เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เดชเดคเดฟเดชเตเดชเต เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดธเดฎเต€เดชเดจเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต - เดตเต†เตผเดšเตเดตเตฝ เดฌเตเดฒเต‚เดŸเต‚เดคเตเดคเต เดฎเตŠเดกเตเดฏเต‚เตพ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดจเดŸเดคเตเดคเตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด‡เดคเต เดชเตเดฐเดงเดพเดจ เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† COM เดชเต‹เตผเดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† UART เดชเต‹เตผเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต โ€œเดชเตเดฐเต‹เด•เตเดธเดฟเดฏเดฟเด‚เด—เตโ€ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดฎเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดจเตเดจเต.

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดšเตเดฑเตเดฑเดณเดตเดฟเดจเตเดฑเต† เดšเดฟเดฒ เดญเดพเด—เด™เตเด™เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เต‹เดกเดฟเดจเตเดฑเต† เดฒเดณเดฟเดคเดฎเดพเดฏ เด‡เตปเดธเตเดŸเตเดฐเตเดฎเต†เดจเตเดฑเต‡เดทเตป เดธเดพเดงเตเดฏเดค เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, DMA-เดฏเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเดฎเตเดณเตเดณ เด’เดฐเต เดŸเตˆเดฎเตผ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ (เดšเต†เด•เตเด•เต เดซเด‚เด—เตเดทเดจเดฟเตฝ เดจเดŸเดคเตเดคเตเดจเตเดจเต ws2812b_waitเดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต 0x08006840), เดคเตเดŸเตผเดจเตเดจเต เดซเตเดฒเดพเด—เต เดชเตเดจเดƒเดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดซเต‡เด‚เดตเต†เดฏเตผ เดŽเดชเตเดชเต‹เดดเตเด‚ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด‚ เดคเดฟเดฐเด•เตเด•เตเดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต 0x200004C4เด‡เดคเต เดกเดฟเดŽเด‚เดŽ เดกเดพเดฑเตเดฑเดพ เดฒเตˆเดจเดฟเดจเตเดฑเต† เด’เด•เตเดฏเตเดชเต†เตปเดธเดฟ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต:

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดซเตเดฒเดพเด—เต เดธเตเดตเดฎเต‡เดงเดฏเดพ เดชเตเดจเดƒเดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดจเดฎเตเด•เตเด•เต เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเต† เดฎเดฑเดฟเด•เดŸเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚ เดคเดฟเดฐเด•เตเด•เต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เด‰เดŸเดจเต†. เดโ€Œเดกเดฟโ€ŒเดŽ เดชเตเดฐเต‹เดฏเดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดชเตˆเดคเตเดคเตบ เดซเด‚เด—เตโ€Œเดทเตป เดธเตƒเดทเตโ€ŒเดŸเดฟเดšเตเดšเต เด…เดคเดฟเดจเต† เดฌเตเดฐเต‡เด•เตเด•เตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเดฟเตฝ เดตเดฟเดณเดฟเด•เตเด•เดพเด‚, เดซเตเดฒเดพเด—เดฟเตฝ เดฎเต‚เดฒเตเดฏเด‚ 1 เดŽเดดเตเดคเดฟเดฏเดคเดฟเดจเต เดถเต‡เดทเด‚ เดฌเตเดฐเต‡เด•เตเด•เตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเต เดคเดจเตเดจเต† เด•เต‹เดกเดฟเตฝ เด‡เดŸเตเด•. เดคเดฟเดฐเด•เตเด•เต.

เดฌเตเดฐเต‡เด•เตเด•เตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเต เดนเดพเตปเดกเตโ€Œเดฒเตผ

เด†เดฆเตเดฏเด‚, เดจเดฎเตเด•เตเด•เต IDA-เดฏเดฟเตฝ เด’เดฐเต เดชเตˆเดคเตเดคเตบ เดซเด‚เด—เตโ€Œเดทเตป เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚. เดฎเต†เดจเต เดซเดฏเตฝ - เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด•เดฎเดพเตปเดกเต...

เด‡เดŸเดคเตเดตเดถเดคเตเดคเตเดณเตเดณ เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เดธเตโ€Œเดจเดฟเดชเตเดชเต†เดฑเตเดฑเต เดšเต‡เตผเด•เตเด•เตเด•, เด…เดคเดฟเดจเต เด’เดฐเต เดชเต‡เดฐเต เดจเตฝเด•เตเด• (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 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.... เดซเตเดฒเดพเด—เต เดชเตเดจเดƒเดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด‡เดชเตเดชเต‹เตพ เดซเต‡เด‚เดตเต†เดฏเตผ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เดฟเดฒเตเดฒ เดคเดฟเดฐเด•เตเด•เต.

เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเตเดฎเดพเดฏเตเดณเตเดณ เด‡เดŸเดชเต†เดŸเตฝ

เด…เดจเตเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดตเต‡เดฃเตเดŸเดฟเดฏเตเดณเตเดณ เด…เดจเตเด•เดฐเดฃเด‚ เดธเดจเตเดคเต‹เดทเดตเตเด‚ เดธเดจเตเดคเต‹เดทเดตเตเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเตป เดธเดพเดงเตเดฏเดคเดฏเดฟเดฒเตเดฒ. เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเต† เดกเดพเดฑเตเดฑ เด•เดพเดฃเดพเดจเต‹ เดคเตเดฐเต†เดกเตเด•เดณเตเดŸเต† เด‡เดŸเดชเต†เดŸเตฝ เดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเดจเต‹ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด—เดตเต‡เดทเด•เดจเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ เด…เดคเต เด•เต‚เดŸเตเดคเตฝ เดฐเดธเด•เดฐเดฎเดพเดฃเต.

เด†เตผโ€ŒเดŸเดฟโ€Œเด’โ€ŒเดŽเดธเต เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เด†เดถเดฏเดตเดฟเดจเดฟเดฎเดฏเด‚ เดŽเด™เตเด™เดจเต† เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเต† เด•เดพเดฃเดฟเด•เตเด•เตเด‚. เด•เต‹เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เด…เดคเดฟเดจเตเดฑเต† เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเดฃเด‚. เดšเดŸเด™เตเด™เดฟเดจเต เดชเต‹เดฏเดพเดฒเต‹ bluetooth_task_entry "LED" เด•เดฎเดพเตปเดกเดฟเดจเตเดฑเต† เดชเตเดฐเต‹เดธเดธเตเดธเดฟเด‚เด—เต เดฌเตเดฐเดพเดžเตเดšเดฟเดฒเต‡เด•เตเด•เต (เดตเดฟเดฒเดพเดธเด‚ 0x080057B8), เดคเตเดŸเตผเดจเตเดจเต เด†เดฆเตเดฏเด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเตเด‚ เดชเดฟเดจเตเดจเต€เดŸเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เตเดฏเต‚เดตเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดšเตเดšเดคเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚ ledControlQueueHandle เดšเดฟเดฒ เดธเดจเตเดฆเต‡เดถเด‚.

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดฌเตเดฐเต‡เด•เตเด•เตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดฃเด‚ ledControlQueueHandleเดธเตเดฅเดฟเดคเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต 0x20000624 เด•เต‹เดกเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดคเตเดŸเดฐเตเด•:

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดธเตเดฑเตเดฑเต‹เดชเตเดชเต เด†เดฆเตเดฏเด‚ เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚ 0x080057CA เดซเด‚เด—เตเดทเตป เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต osMailAlloc, เดชเดฟเดจเตเดจเต† เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ 0x08005806 เดซเด‚เด—เตเดทเตป เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต osMailPut, เดชเดฟเดจเตเดจเต† เด•เตเดฑเดšเตเดšเต เด•เดดเดฟเดžเตเดžเต - เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต 0x08005BD4 (เดซเด‚เด—เตเดทเตป เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต osMailGet), เด‡เดคเต เดซเด‚เด—เตเดทเดจเดฟเตฝ เดชเต†เดŸเตเดจเตเดจเต leds_task_entry (LED-เดŸเดพเดธเตเด•เต), เด…เดคเดพเดฏเดคเต, เดŸเดพเดธเตเด•เตเด•เตเด•เตพ เดฎเดพเดฑเดฟ, เด‡เดชเตเดชเต‹เตพ LED- เดŸเดพเดธเตเด•เตเด•เต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด‚ เดฒเดญเดฟเดšเตเดšเต.

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

RTOS เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เดŽเด™เตเด™เดจเต† เดชเดฐเดธเตเดชเดฐเด‚ เด‡เดŸเดชเดดเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดˆ เดฒเดณเดฟเดคเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเดจเดพเด•เตเด‚.

เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เด‡เดŸเดชเต†เดŸเตฝ เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏเต‡เด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดˆ เด‡เดŸเดชเต†เดŸเตฝ เดŸเตเดฐเดพเด•เตเด•เตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เด…เดงเตเดตเดพเดจเด‚ เด•เตเดฑเดตเดพเดฃเต.

เด‡เดตเดฟเดŸเต† เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ IDA เดชเตเดฐเต‹เดฏเตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต†เดฏเตเด‚ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดตเต€เดกเดฟเดฏเต‹ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเด‚.

Radare2 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•

Radare2 เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เด’เดฐเต เดธเดพเตผเดตเดคเตเดฐเดฟเด• เด‰เดชเด•เดฐเดฃเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดตเด—เดฃเดฟเด•เตเด•เดพเดจเดพเดตเดฟเดฒเตเดฒ.

r2 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด•เดฎเดพเตปเดกเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเด‚:

radare2 -A -a arm -b 16 -d gdb://localhost:23946 rhino_fw42k6.elf

เดฒเต‹เดžเตเดšเต เด‡เดชเตเดชเต‹เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต (dc) เด•เต‚เดŸเดพเดคเต† เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเตเดจเตเดจ เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ (Ctrl+C).

เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เด‡เดชเตเดชเต‹เตพ, เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ gdb เดธเต†เตผเดตเดฑเดฟเดฒเตเด‚ เดฎเต†เดฎเตเดฎเดฑเดฟ เดฒเต‡เด”เดŸเตเดŸเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ r2 เดจเต เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดฃเตเดŸเต; เด‡เด•เตเด•เดพเดฐเดฃเดคเตเดคเดพเตฝ, เดฌเตเดฐเต‡เด•เตเด•เตโ€Œเดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเตเด‚ เดธเตเดฑเตเดฑเต†เดชเตเดชเตเด•เดณเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ (เด•เดฎเดพเตปเดกเต ds). เด‡เดคเต เด‰เดŸเตป เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เดŽเด•เตเดฒเดฟเดชเตเดธเดฟเดจเตŠเดชเตเดชเด‚ เด“เดŸเตเดจเตเดจเต

เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดซเต‡เด‚เดตเต†เดฏเตผ เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด“เดชเตเดทเดจเตเด•เดณเดฟเดฒเตŠเดจเตเดจเต. เดตเตเดฏเด•เตเดคเดคเดฏเตเด•เตเด•เดพเดฏเดฟ, เดžเด™เตเด™เตพ เดฑเดฟเดจเต‹ เดซเต‡เด‚เดตเต†เดฏเดฑเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดซเต‡เด‚เดตเต†เดฏเตผ เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเด‚ เด‡เดตเดฟเดŸเต† เดจเดฟเดจเตเดจเต.

เดžเด™เตเด™เตพ เดธเต†เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŽเด•เตเดฒเดฟเดชเตเดธเต เด’เดฐเต IDE เด†เดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ STM32-เดจเตเดณเตเดณ เดธเดฟเดธเตเดฑเตเดฑเด‚ เดตเตผเด•เตเด•เตเดฌเต†เดžเตเดšเต.

เดŽเด•เตเดฒเดฟเดชเตเดธเดฟเตฝ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดค เดซเต‡เด‚เดตเต†เดฏเตผ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดจเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต firmware=null เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เดฒเต‹เดžเตเดšเต เด•เดฎเดพเตปเดกเดฟเดฒเต‡เด•เตเด•เต:

binkopycat -g 23946 -n rhino -l user -y modules -p firmware=null,tty_dbg=COM26,tty_bt=COM28

เดกเต€เดฌเด—เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต

เดŽเด•เตเดฒเดฟเดชเตเดธเดฟเตฝ, เดฎเต†เดจเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด• เดฑเตบ - เดกเต€เดฌเด—เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เตพ... เดคเตเดฑเด•เตเด•เตเดจเตเดจ เดตเดฟเตปเดกเต‹เดฏเดฟเตฝ, เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ GDB เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เดคเตเดŸเตผเดจเตเดจเต "เดฎเต†เดฏเดฟเตป" เดŸเดพเดฌเดฟเตฝ เดจเดฟเดฒเดตเดฟเดฒเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด‚ เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เดฟเดจเตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเด•:

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

"เดกเต€เดฌเด—เตเด—เตผ" เดŸเดพเดฌเดฟเตฝ เดจเดฟเด™เตเด™เตพ GDB เด•เดฎเดพเตปเดกเต เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:
${openstm32_compiler_path}arm-none-eabi-gdb

เด•เต‚เดŸเดพเดคเต† GDB เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต (เดนเต‹เดธเตเดฑเตเดฑเตเด‚ เดชเต‹เตผเดŸเตเดŸเตเด‚) เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚ เดจเตฝเด•เตเด•:

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

"เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต" เดŸเดพเดฌเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฃเด‚:

  • เดšเต†เด•เตเด•เตเดฌเต‹เด•เตเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด• เดšเดฟเดคเตเดฐเด‚ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• (เด…เด™เตเด™เดจเต† เด…เดธเด‚เดฌเดฟเตพ เดšเต†เดฏเตเดค เดซเต‡เด‚เดตเต†เดฏเตผ เด‡เดฎเต‡เดœเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต);
  • เดšเต†เด•เตเด•เตเดฌเต‹เด•เตเดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด• เดšเดฟเดนเตเดจเด™เตเด™เตพ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด•;
  • เดฒเต‹เดžเตเดšเต เด•เดฎเดพเตปเดกเต เดšเต‡เตผเด•เตเด•เตเด•: set $pc = *0x08000004 (เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเดฟเดธเดฟ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด• 0x08000004 - เดตเดฟเดฒเดพเดธเด‚ เด…เดตเดฟเดŸเต† เดธเต‚เด•เตเดทเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต ResetHandler).

เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเด•เตเดฒเดฟเดชเตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดซเต‡เด‚เดตเต†เดฏเตผ เดซเดฏเตฝ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด“เดชเตเดทเดจเตเด•เตพ เดšเดฟเดคเตเดฐเด‚ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• ะธ เด•เดฎเดพเตปเดกเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด• เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดกเต€เดฌเด—เต เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดค เดถเต‡เดทเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดกเต€เดฌเด—เตเด—เตผ เดฎเต‹เดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเด‚:

  • เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเตเดณเตเดณ เด•เต‹เดกเต เดจเดฟเตผเดตเตเดตเดนเดฃเด‚
    เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•
  • เดฌเตเดฐเต‡เด•เตเด•เต เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เดณเตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต
    เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เด…เดญเดฟเดชเดพเดฏเดชเตเดชเต†เดŸเตเด•. เด—เตเดฐเดนเดฃเดคเตเดคเดฟเดจเต เดšเดฟเดฒ เดตเตˆเดšเดฟเดคเตเดฐเตเดฏเด™เตเด™เดณเตเดฃเตเดŸเต... เดจเดฟเด™เตเด™เตพ เด…เดตเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดœเต€เดตเดฟเด•เตเด•เดฃเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดกเต€เดฌเด—เตเด—เตผ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ "0x0โ€ณ เดŽเดจเตเดจเดคเดฟเดจเต เด‰เดฑเดตเดฟเดŸเดฎเตŠเดจเตเดจเตเด‚ เดฒเดญเตเดฏเดฎเดฒเตเดฒ" เดŽเดจเตเดจ เดธเดจเตเดฆเต‡เดถเด‚ เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดธเตเดฑเตเดฑเต†เดชเตเดชเต เด•เดฎเดพเตปเดกเต (F5) เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเด•.

เด’เดฐเต เดชเต‚เดšเตเดšเดฏเตเด•เตเด•เตเดณเตเดณเดฟเตฝ เด•เดพเดฃเตเดŸเดพเดฎเตƒเด—เด‚ - เด•เต‹เดชเตเดชเดฟเด•เดพเดฑเตเดฑเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดซเต‡เด‚เดตเต†เดฏเตผ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเด•

เดชเด•เดฐเด‚ เด’เดฐเต เดจเดฟเด—เดฎเดจเดคเตเดคเดฟเตฝ เดŽเดจเตเดจ

เดจเต‡เดฑเตเดฑเต€เดตเต เด•เต‹เดกเต เด…เดจเตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฐเดธเด•เดฐเดฎเดพเดฏ เด’เดฐเต เด•เดพเดฐเตเดฏเดฎเดพเดฃเต. เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เด‰เดชเด•เดฐเดฃเดฎเดฟเดฒเตเดฒเดพเดคเต† เดซเต‡เด‚เดตเต†เดฏเตผ เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเดพเตป เด’เดฐเต เด‰เดชเด•เดฐเดฃ เดกเต†เดตเดฒเดชเตเดชเตผเด•เตเด•เต เดธเดพเดงเตเดฏเดฎเดพเด•เตเด‚. เด’เดฐเต เด—เดตเต‡เดทเด•เดจเต† เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดšเดฟเดŸเดคเตเดคเต‹เดณเด‚, เดกเตˆเดจเดพเดฎเดฟเด•เต เด•เต‹เดกเต เดตเดฟเดถเด•เดฒเดจเด‚ เดจเดŸเดคเตเดคเดพเดจเตเดณเตเดณ เด…เดตเดธเดฐเดฎเดพเดฃเดฟเดคเต, เด’เดฐเต เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเตฝ เดชเต‹เดฒเตเด‚ เด‡เดคเต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ.

เดธเตเดชเต†เดทเตเดฏเดฒเดฟเดธเตเดฑเตเดฑเตเด•เตพเด•เตเด•เต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดตเตเด‚ เดฎเดฟเดคเดฎเดพเดฏ เดฒเดณเดฟเดคเดตเตเด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดชเดฐเดฟเดถเตเดฐเดฎเดตเตเด‚ เดธเดฎเดฏเดตเตเด‚ เดŽเดŸเตเด•เตเด•เดพเดคเตเดคเดคเตเดฎเดพเดฏ เด’เดฐเต เด‰เดชเด•เดฐเดฃเด‚ เดจเตฝเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เดนเดพเตผเดกเตโ€Œเดตเต†เดฏเตผ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เด…เดจเตเดญเดตเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดŽเดดเตเดคเตเด•. เดšเตผเดšเตเดš เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเต† เด•เตเดทเดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต‹เดฆเตเดฏเด™เตเด™เตพเด•เตเด•เต เด‰เดคเตเดคเดฐเด‚ เดจเตฝเด•เตเดจเตเดจเดคเดฟเตฝ เดธเดจเตเดคเต‹เดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚.

เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดค เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเต‡ เดธเตผเดตเต‡เดฏเดฟเตฝ เดชเด™เตเด•เต†เดŸเตเด•เตเด•เดพเตป เด•เดดเดฟเดฏเต‚. เดธเตˆเตป เด‡เตปเดฆเดฏเดตเดพเดฏเดฟ.

เดจเดฟเด™เตเด™เตพ เดŽเดจเตเดคเดฟเดจเดพเดฃเต เดŽเดฎเตเดฒเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต?

  • เดžเดพเตป (เดกเต€เดฌเด—เต) เดซเต‡เด‚เดตเต†เดฏเตผ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต

  • เดžเดพเตป เดซเต‡เด‚เดตเต†เดฏเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด…เดจเตเดตเต‡เดทเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต

  • เดžเดพเตป เด—เต†เดฏเดฟเดฎเตเด•เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต (เดกเต†เดฃเตเดŸเดฟ, เดธเต†เด—, PSP)

  • เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ (เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดŽเดดเตเดคเตเด•)

7 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. 2 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดฟเดŸเตเดŸเตเดจเดฟเดจเตเดจเต.

เดจเต‡เดฑเตเดฑเต€เดตเต เด•เต‹เดกเต เด…เดจเตเด•เดฐเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เดเดคเต เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต?

  • เด•เตเดฏเตเด‡เดŽเด‚เดฏเต

  • เดฏเต‚เดฃเดฟเด•เต‹เตบ เดŽเดžเตเดšเดฟเตป

  • Proteus

  • เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ (เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดŽเดดเตเดคเตเด•)

6 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. 2 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเดฟเดŸเตเดŸเตเดจเดฟเดจเตเดจเต.

เดจเดฟเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดคเต?

  • เดŽเดจเดฟเด•เตเด•เต เดตเต‡เด—เดค เดตเต‡เดฃเด‚

  • เดŽเดจเดฟเด•เตเด•เต เดธเดœเตเดœเต€เด•เดฐเดฃเด‚/เดฒเต‹เดžเตเดšเต เดŽเดณเตเดชเตเดชเด‚ เดตเต‡เดฃเด‚

  • เดŽเดฎเตเดฒเต‡เดฑเตเดฑเดฑเตเดฎเดพเดฏเดฟ เดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดŽเดจเดฟเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เด“เดชเตเดทเดจเตเด•เตพ เดตเต‡เดฃเด‚ (API, เดนเตเด•เตเด•เตเด•เตพ)

  • เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดฒเตเด‚ เดžเดพเตป เดธเดจเตเดคเตเดทเตเดŸเดจเดพเดฃเต

  • เดฎเดฑเตเดฑเต†เดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ (เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เดณเดฟเตฝ เดŽเดดเตเดคเตเด•)

8 เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดตเต‹เดŸเตเดŸเต เดšเต†เดฏเตเดคเต. 1 เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดตเดฟเดŸเตเดŸเตเดจเดฟเดจเตเดจเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•