43Ź沽ˤĤƤܤɵ


PetyaϼٰʤҤ꤬ͤäƤ뿷󥵥०ǥΥեŹ沽ˡǥΤåƤۤȤɻȤʪˤʤʤ֤ˤ롣Ūˤϡե륷ƥMFTmaster file tableˤŹ沽롣ĤޤOSեΰ֤Ǥʤʤ뤳Ȥ̣롣Petyaϡ֡ȥåȤƱͤ˼ȤǥMBRmaster boot recordˤ˥󥹥ȡ뤹롣̩΢˳ưΤǤϤʤ֤̾˥ƥ줹ˡˤĤƤɽ롣

MFT᤯Ǥ롣ǡեŹ沽ˤû֤ǺѤΤǤŪʷ̤ȤƤϰŹ沽Ʊʤǡ˥Ǥʤʤ롣

Petya, Press Any Key!

Petya2ʳǼ¹Ԥ롣1ʳϥᥤΥɥåѡǡʲ¹Ԥ롣

  • \\.\PhysicalDriveľMBR˴
  • ϢΰŹ業롣ˤ16ХȤΥʥǥŹѤΥʱ߰ŹECElliptic CurveˤΥڥޤޤ롣λǡ̤ʡ楳ɡפѰդ
  • ȤMBR˴ɤǻȤᡢǥΰŹ業楳ɤǥ¸롣¾줿ŹǡϤ٤˴
  • ʤηٹʤ˥ޥ򥷥åȥ󤷡MBRΥɤǥ֡Ȥ

PetyaоΥˤŹ沽Τˡʱ߶Ź楹ѤƤ롣192ӥåȤθsecp192k1ѥ᡼ϡɥåѡΥХʥ˥ϡɥǥ󥰤ۿ롣PetyaϥФθECDHElliptic Curve Diffie-Hellman르ꥺѤƶ̩ͭۤ롣ζ̩ͭѤ16ХȤΥǥŹ業AESŹ沽롣̩ͭϤΥޥ륦ȥФѤǤʤХʥASCII˥󥳡ǥ󥰤Base58ˤꡢΥޥ륦ʱ߶θȤä˥ǥŹ業ѥå롣ѥå֤꡼󼨤楳ɡפǤ롣

Petya physdrive
PetyaɥåѡˤPhysicaldrive

Petya server pubkey
ɥåѡˤPetyaФʱ߶Źθ

Petya ecc params
ɥåѡˤPetyasecp192k1ζѥ᡼

Petya encode pubkey
ASCII󥳡ǥ󥰤Petyaɥåѡʱ߶Źθ

Petya gen salsa20 key
Petyaɥåѡsalsa20Х

塢ޥMBRΥɤǥ֡Ȥ롣ϰʲΤ褦ˤʤ롣

  • ޤǥƤ뤫ǧ
  • ƤʤеCHKDSK̤ɽŹ業˶̩ͭѤMFTŹ沽
  • ǥΰŹ沽salsa20Ѥ롣Ź沽˴
  • ֤֥륹꡼ס³TorαӥURL̤ȡ楳ɡפɽ롣楳ɡפȤϡФǤʤŹ沽줿åǤ
Petya debug environment
PetyaĶ᤹Ȥ

petya_disk_encryption
salsa20ǥǥŹ沽ݤΡΡCHKDSKפ˴ؤMBRΥ

Petya salsa20 expand32
MBR֤salsa20Υ

ʱ߶르ꥺѤưŹ業ǤΤϡϤ䥵Фʤϥޥ륦ˤäƥ˴줿ޤȤ˴ƤʤäȤƤ⡢ޥ󤬥åƻȤʤޤޤꥫХǥMBR줷ȤƤˤΩʤʤʤMFTޤŹ沽Ƥ뤫϶̩ͭ줷ơꥫХǥǥǥŹ沽椷᤹ȤϲǽΤˤϡʱ߶ŹΥڥꤷʤФʤʤΤɬפʱ߶ΥǡϤ٤ƥɥåѡ˴ƤޤäƤ롣ϤޤDzȤ뤿θ2ĤäơտŪ̵褦ʤΤ

¦Ǥϡ楳ɤΥǥɤդν֤ǹԤ뤳Ȥꤵ롣

  • Base58沽줿Хʥǡǥɤ
  • ޥ륦θȰŹ沽줿ǡŸ
  • Ѥơ̩ͭۤ
  • ζ̩ͭѤȡФAESȤäƥǥŹ沽Ǥ
  • ǹԤϡå줿ޥǤŹ沽򸵤᤹ȤǤ

ȤơҤΥܤΥޥ楳ɤ1ĤϼΤ褦˸ʥϥեƬ2ʸϺФϤǥɤ˻Ѥʤˡ

Q5rL1YMqnJPCsCgji4KcDv5XnQrtqttBQ7tfbAq7QStmTXNQ6Voepeaiem8uzaQxYq3LwpvMCXBvMx2Mmqkdt8Fi

ΥɤɸBase58르ꥺѤƥǥɤȡʲΥǡΤˡޥ륦ФǡǥŹ沽륭֤Ǽˡ

Petya decryption code opened

ФΥإ̵ǥޥ줹ͣˡϡǥХåȤäƴץsalsa20Υª뤳Ȥ̾Υԥ塼桼ˤȤäƤϡޤ̥ŪйʤǤϤʤ:)

ȥӥ