본문 바로가기

728x90

study

(53)
Reversing Basic- helloworld.exe *ollydbg 2.0, 윈도우 10에서 진행하고 있습니다. 앞에서 작성한 helloworld 코드를 다시 보겠습니다. #include "windows.h" #include "tchar.h" int _tmain(int argc, TCHAR* argv[]) { MessageBox(NULL, L"Hello World!", L"www.reversecore.com", MB_OK); return 0; } 저희가 작성한 메인은 아주 짧은데요. 이 메인함수를 찾아보겠습니다. 첫번째 방법은 F8(step over)를 이용하는 것입니다. 계속 누르다보면 창이 하나 뜨게됩니다. visual studio에서 창이 뜨도록 코딩을 해놓았기 때문이죠! 여기서 주목해야할 점은 CALL 00401000 이 호출되고, main함수로 ..
Reversing Basic- ollydbg 기본 명령어 올리디버거를 사용하기전에, 왜 사용하는지! 디버깅이 무엇인가요? 우리가 기본적으로 작성한 소스코드(cpp)를 컴파일하면 exe파일로 나타나게 됩니다. 그렇게 되면, 당연히 제작자는 exe파일이 어떻게 동작하는지 압니다. 소스코드를 직접 작성했으니까요. 앞에서 helloworld를 작성한 것은 아주 간단하게 메시지 창을 띄워주는 프로그램이었습니다. 만약에 소스코드 없이, exe파일만 가지고 있다면 이게 어떤 파일인지 알 수 없겠죠? 우리의 코드는 창을 띄워주어서 실행한다면 알 수 있지만, 보여지는 것 없이 뒤에서 작업이 되는 파일이라면 알 수가 없겠죠. 그래서 디버깅 툴을 사용하는 것입니다. 어셈블리 언어로 번역해서 보여주는 것이죠! 그래서 우리가 사용할 디버거는 올리디버거입니다. 제일 많이 쓰고, 무료니..
Reversing Basic- ollydbg install+ setting 리버싱을 하기위해 우선 필요한 프로그램들을 먼저 말씀드리겠습니다. 1. visual studio - 코딩을 해야하니까요. - 비주얼 스튜디오에 대한 것은 리버싱을 하려고 하시는 분이라면 다들 기본적으로 설치되었을거라고 생각합니다. - 코딩 하시는 분들이라면 이미 다 설치되어있겠죠..? 설명 생략하겠습니다! 2. ollydbg - 실제 분석을 위해 올리디버거가 필요합니다. - 올리디버거는 1.1 버전(32bit) ,2.0버전(64bit). - 아래 설명은 1.1 버전을 64bit에서 사용하기위한 세팅입니다. 3. helloworld.exe - 샘플용으로 작성할 파일입니다. http://www.ollydbg.de/ 에서 파일을 받아 설정을 하겠습니다. 1. 우선 64bit에서 사용하기 위해 한가지를 설치해주..
부동산 dapp 미리보기 및 주의점 스마트 계약이 적용될 수 있는 사례중 부동산 분야에 이 기술을 접목시킬 것이다. 부동산 시나리오 예) 1. 부동산 중계인 통해 매수의사 전달. 2. 계약 요청 3. 상호 동의 4. 계약 완료 5. 대금 지불 6. 명의 이전 7. .. 단계별로 블록체인에 영구 저장. 상대가 조작이 불가능하게 된다. 간단하게 블록체인 안에 저장된 내용을 추적하면 거래에 대한 내용이 나오고, 블록에 저장된 자체만으로 효력 발생. 주의점* 1. 사업모델을 디지털화시키면서 블록체인을 선택했을 떄, 어플리케이션에서 보여지는 모든 내용들을 처음부터 끝까지 블록체인 안에 저장해서 불러올 것인가? no!!!!!!!!!1 - 블록체인에는 꼭 필요한 내용만 저장하고, 나머지는 DB 사용하자. 2. 퍼포먼스가 중요한 어플리케이션이라면, 블록..
컨트랙 최적화 빅오 표기법*보다 가스문제가 더 중요하다... 옵코드에 따라 가스가 좌지우지되기때문이다. 스마트컨트랙 디자인시에는 가스비용을 어떻게하면 줄일 수 있을지 고민해야한다. 1. 컨트랙 배포할 때의 비용 - 주석, 변수이름, 타입이름은 가스 소모 없음. - 불필요한 코드 정리 ex) function useless(uint a) public { if(a> 10){ if(a+a
가스란? 가스는 수수료를 내는 것과 같다. 수수료는 우리가 보낸 트랜잭션의 유효성을 검증하고, 블록체인에 추가하려고 노력하는 채굴자에게 보상으로 돌아간다. 수수료 지불의 예: 1. 다른 계정으로 돈 보낼 때 2. 스마트 컨트랙 배포할 때 3. 함수에서 상태 변수에 변화를 줄 때 ... 함수 실행중인 계정에서 가스비를 지불한다. 가스비도 ETH를 사용한다. 실제돈!! 그렇다면, 에더를 사용해서 그냥 내면 되는걸 왜 굳이 가스라는 단위를 만들었을까? 1. 에더는 화폐 변동성이 있다. 2. 가스 가격은 거의 변동하지 않는다. 가스 비용은 함수의 복잡성에 따라 결정된다. 연산에 소모되는 비용 == 옵코드(opcode) 네트워크 상태, 컴퓨팅 자원에 따라 비용이 결정된다. 메타마스크는 gas limit을 미리 보여준다. ..
[리눅스 서버 보안] 리눅스는 운영체제의 한 종류. 컴퓨터 시스템의 하드웨어를 효율적으로 관리하기 위한 시스템 소프트웨어이다. 공개용 (open source) 운영체제이다. 기존 유닉스와는 다르게 대형 서버를 위해 개발된 운영체제가 아니라 개인용 컴퓨터나 워크스테이션을 위해 개발되었다. 리눅스를 설치하고 사용자가 자신의 운영체제를 수정하여 사용할 수도 있다. *특징 1. 다중 사용자. 2. 다중 작업; 여러개의 프로세스를 동시에 실행시켜 CPU를 스케줄링하여 사용할 수 있다. 시분할 시스템을 지원한다. 3. 다중 처리기 4. 다중 플랫폼 5. 계층형 파일 시스템; 루트 기반의 하위디렉터리를 이루는 계층형 파일시스템으로 이루어져있음. 6. POSIX와 호환 7. 우수한 네트워킹 8. 가상 콘솔 9. 가상 기억장치; 주기억장치의..
값 타입 Boolean 형 타입 값 bool true/ false bool x = false; 정수형 타입 값 추가설명 ex int 8 bit~ 256 bit int == int256 int32 x = -27462; uint 8 bit~ 256 bit uint ==uint256 uint256 x= 24557867; 주소형 타입 값 추가설명 address 20 byte 값 이더리움 계정 주소 두개의 멤버 소유: balance, transfer address x= 0x123; function send() public { if (x.balance

728x90
반응형