Nivel 0: Hola Ethernaut
Este es el nivel 0 del juegoEthernaut.
requisitos previos
- Basics of web3js
Atajos
has leído las instrucciones del nivel 0 y ha adquirido el éter de prueba. Los métodos de contrato de nivel se inyectan directamente en la consola de nuestro navegador, por lo que podemos comenzar a llamar a los métodos.
antes de iniciar:
- Configurar MetaMask
- Abra la consola del navegador Abra la consola de su navegador: Tools > Developer Tools. comando (await chrome 64) player
- Usa los ayudantes de la consola getBalance(player)
- El ethernaut contract ethernaut
- Interactuar con ABI ethernaut.owner()
- Obtener una instancia de nivel level instance
- Inspección del contrato contract
- Interactuar con el contrato para completar el nivel contract.info()
Empecemos. Las instrucciones piden llamar a este método en la consola:
await contract.info()
// Output: 'You will find what you need in info1().'
Seguimos la salida y llamamos:
await contract.info1()
// Output: 'Try info2(), but with "hello" as a parameter.'
Siguiente...
await contract.info2("hello")
// Output: 'The property infoNum holds the number of the next info method to call.'
Para obtener infoNum
llamamos captador público:
await contract.infoNum().then(v => v.toString())
// Output: 42
Tenga en cuenta que infoNum()
devuelve un objeto BigNumber, por lo que lo convertimos en una cadena para ver el número real.
Procediendo con info42
:
await contract.info42()
// Output: 'theMethodName is the name of the next method.'
De nuevo, siguiente salida:
await contract.theMethodName()
// Output: 'The method name is method7123949.'
Y entonces:
await contract.method7123949()
// Output: 'If you know the password, submit it to authenticate().'
Ok... pero cual es la contraseña? Inspeccionemos los contratos ABI:
contract
// Output: { abi: ..., address: ..., ...., password: f () }
Al inspeccionar vemos que hay un password
método para el contrato. Llamémoslo:
await contract.password()
// Output: 'ethernaut0`
Tenemos la contraseña. Finalmente:
await contract.authenticate('ethernaut0')
y confirme la transacción en metamask. Enviar instancia.
Top comments (0)