Les + populaires

BTC ETH SOL XRP BNB USDC USDT

Suivez-nous

Les risques liés au stockage de données sensibles dans Ethereum | de Alex Devassy | Coinmons | mai 2022

IAavec
Titres Titres

Une perspective d’attaquant

pragma solidity ^0.5.0; contract OddEven { 
struct Player {
address addr;
uint number;
}
Player[2] private players;
uint count = 0;
function play(uint number) public payable {
require(msg.value == 1 ether, ‘msg.value must be 1 eth’); players[count] = Player(msg.sender, number);
count++;
if (count == 2) selectWinner();
}
function selectWinner() private {
uint n = players[0].number + players[1].number;
(bool success, ) = players[n%2].addr.call.value(address(this).balance)(“”); require(success, ‘transfer failed’);
delete players; count = 0;
}
}

Extraction de données privées à partir d’une transaction utilisateur

0x6898f82b0000000000000000000000000000000000000000000000000000000000000066
Photo de Jefferson Santos sur Unsplash

Que se passe-t-il s’il s’agit d’une signature de fonction complexe ?

[
{
"constant": false,
"inputs": [
{
"name": "number",
"type": "uint256"
}
],
"name": "play",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
]
npm install ethereum-input-data-decoder
const InputDataDecoder = require('ethereum-input-data-decoder');
const decoder = new InputDataDecoder(`${__dirname}/abi.json`);
const data = `0x6898f82b0000000000000000000000000000000000000000000000000000000000000066`;const result = decoder.decodeData(data);
console.log(result);

Conclusion

Rejoignez Coinmonks Telegram Channel et Youtube Channel pour en savoir plus sur le trading et l’investissement cryptographiques

Source medium.com

Gérez votre patrimoine
Finary
Un mois de Premium offert

Donnez votre avis

Soyez le 1er à noter cet article


Partagez cet article maintenant !

Envoyez simplement nos contenus crypto et finance à vos proches.