สรุปวิธีที่ joe grand ทำเรยคือ
- ปัญหาคือเจ้าของ btc ลืม passphrase ที่ใข้ unlock btc เมื่อ 11ปีก่อน แต่รู้ว่า passphrase generate มาจาก โปรแกรมสุ่มรหัสผ่านชื่อ Roboform ที่เป็น window app
- joe grand ใข้ ghidra (tool สำหรับ reverse engineer โปรแกรม ให้เป็นภาษา Assembly)
- joe grand ไล่อ่าน Assembly จนเจอช่องโหว่ ที่ฟังก์ชั่น random generator ที่ใช้ ค่า input เป็นค่าเวลา (ซึ่งปกติควรใช้ ฟังก์ชั่น random ที่เป็น secure random)
ทำให้เรียกใช้ ฟังก์ชั่น random ที่เรา control ค่า input เวลา ให้อยู่ในช่วงแถวๆ 11 ปีก่อน แล้ว generate รหัสผ่านออกมา เป็น wordlist
- จากนั้นก็เอา wordlist มา brute force กับ mnemonic phase จนเจอ private key ที่ใช้ unlock btc
คิดอีกแง่คือ ระวังอย่าใช้ passphrase ที่สร้างจาก โปรแกรมที่ใช้ unsecure random เพราะมันสามารถ generate wordlist มา brute force ได้
https://youtu.be/o5IySpAkThg?si=sxL1g1dpQcuNwn0t
#siamstr