본문 바로가기
aaa

분류 전체보기

(20)
스마트컨트랙트에서 코인 훔치기 #2 스마트컨트랙트에서 코인 훔치기 #2 [요약] 잔고가 일정 범위 이상이어야 인출할 수 있는 스마트컨트랙트가 있다. 현재 스마트컨트랙트의 잔고는 0.5 eth 인출 조건은 잔고가 1.0 eth 이상이 되어야 하는데 이 스마트컨트랙트에는 메타마스크로는 이더리움을 전송할 수 없다. 이 스마트 컨트랙트의 이더를 인출해보자. 타켓 스마트컨트랙트 코드 pragma solidity 0.8.6; contract Test7 { constructor() payable { } function withdraw() public { require(address(this).balance >= 1 ether); payable(msg.sender).transfer(address(this).balance); } } 스마트 컨트랙트 Tes..
스마트컨트랙트에서 코인을 훔쳐보자 스마트컨트랙트에서 코인을 훔쳐보자 [요약] 이더리움을 받을 수 있는 간단한 스마트컨트랙트를 작성하고 취약점을 발견하여 스마트컨트랙트 내에 있는 이더리움을 탈취한다. 사례1 [Test1] Full Script pragma solidity 0.8.6; contract Test1 { uint nonce; constructor(uint _nonce) payable { nonce = _nonce; } function getNonce() public view returns (uint) { return nonce; } function withdraw(uint _nonce) public { require(nonce == _nonce); payable(msg.sender).transfer(address(this).bal..
이더리움 기반 ERC20 토큰 만들기 이더리움 기반 ERC20 토큰 만들기 [요약] Remix에서 ERC20 토큰 생성 & 전송. 이를 통해 코인과 토큰이 차이를 알아보자. 토큰 생성하기 리믹스 접속. https://remix.ethereum.org/ Remix - Ethereum IDE remix.ethereum.org 스마트 컨트랙트 작성 '더보기'로 코드 내용확인가능. 더보기 pragma solidity >=0.4.22 uint256) balances; mapping(address => mapping (address => uint256)) allowed; // 맵핑 uint256 totalSupply_; // totalSupply 숫자 변수. using SafeMath for uint256; constructor(uint256 tota..
스마트컨트랙트 배포 스마트컨트랙트 배포 [요약] Remix에서 솔리디티로 간단하게 스마트컨트랙트를 작성하여 테스트넷환경 'Ropsten'에서 스마트컨트랙트 배포하기. 1. 리믹스 접속 https://remix.ethereum.org/ Remix - Ethereum IDE remix.ethereum.org 퍼런색 외계인 같은 녀석이 나온다. 2. 리믹스와 메타마스크 연결 2. 메타마스크(랍스텐 테스트 네트워크)와 리믹스를 연결한다. 메타마스크 - 우측 상단 땡땡땡(설정) 클릭 - 연결된 사이트 - "현재 사이트에 수동으로 연결" 클릭 그럼 리믹스와 메타마스크와 연결이된다. 3. 리믹스 개발환경 설정 왼쪽 탭에서 3번째 이더리움 모양의 아이콘을 누르고 ENVIRONMENT를 Injected Web3로 변경하여 메타마스크의 내 ..

loading