Ethernaut: 0. 안녕 Ethernaut

Play the level

어서 오십시오! 길지만 엄청나게 교육적인 길이 될 것입니다. 이 수준에서는 콘솔 사용 방법을 준비합니다. help()를 입력하여 시작하십시오! 거기에 표시되는 명령에 익숙해지십시오. 테스트용 에테르도 필요하니 거기에 연결된 수도꼭지를 방문하여 에테르를 얻으십시오!
  • 시작하려면 큰 파란색 버튼을 클릭하여 새 수준 인스턴스를 가져옵니다. 이것은 모든 퍼즐에 대한 목표 계약이 될 것입니다. 당신은 그것의 소유권을 탈취하고 그것의 균형을 고갈시키는 등 무엇이든 할 것입니다!
  • 나머지 레벨은 contract.info() 를 호출하여 시작합니다. Chrome v62(또는 Brave 브라우저)에서는 콘솔에서 await를 사용할 수 있습니다. 그러면 작업이 훨씬 쉬워집니다. 전화 await contract.info() . contract.에 도달하면 콘솔에 계약 개체의 속성이 표시되며 여기에는 많은 기능이 있습니다!
  • info1()에 필요한 것이 있음을 알려줍니다. 따라서 자연스럽게 await contract.info1()를 호출합니다.
  • info2() 매개변수로 "hello"를 호출하라는 지시를 받았습니다! 우리는 await contract.info2("hello") 로 그렇게 합니다.
  • infoNum() 속성을 확인하라는 지시를 받았습니다. await contract.infoNum()로 그렇게 하면 콘솔에 이상한 내용이 다시 표시됩니다. 이게 대체 뭐야?? 초조해하지 마십시오. 단순한 것입니다BigNumber object. toNumber() 또는 toString() 를 통해 숫자나 문자열로 변환할 수 있습니다. 그렇게 하면 숫자 42를 나타내는 것을 볼 수 있습니다.

  • {
      negative: 0,
      words: [
        42,
        // empty
      ],
      length: 1,
      red: null
    }
    


  • 무엇을 해야 할지 이미 알고 있으므로 await contract.info42()를 호출해 보겠습니다. 대신 theMethodName를 호출했어야 한다는 것을 알 수 있습니다.
  • 그래서 우리는: await contract.theMethodName . 아, 대신 method7123949에 전화해야 해요!
  • await contract.method7123949()에 전화하면 "암호를 알고 있으면 authenticate()에 제출하십시오"라는 메시지가 표시됩니다. 암호를 알고 있습니까? 확실히 password() 객체의 속성으로 contract 함수가 있는 것 같으니 호출해 봅시다!
  • await contract.password() 다음에 암호를 ethernaut0로 얻습니다. 이것을 await contract.authenticate("ethernaut0")에 제출하면 거래를 확인하라는 메시지가 표시됩니다!

  • 그것이 채굴되면 더 이상 할 일이 없는 것 같습니다. 자연스럽게 해야 할 다음 작업으로 인스턴스(주황색 버튼)를 제출하는 것이 좋습니다. 실제로, 그것은 레벨의 끝입니다! 축하합니다. 이제 실제 거래를 할 준비가 되었습니다.

    좋은 웹페이지 즐겨찾기