- 참치군
- ?
- stalk.io
- :: 2013년, 스리는 여섯살
- 웹 강좌
- 점프 투 파이썬
- 요니나의 대학생 재테크
- This is CS50
- 애자일 이야기
- isao의 IT,게임번역소
- 소프트웨어 이야기
- Color Scripter
- 어디를 가든지 마음을 다해 가라
- VisuAlgo
- 서울대 평생교육원
- 몽환
- RegExr: Learn, Build, & Test R…
- Hello, Stranger :D
- I Like Exploit
- Z3alous Security Story
- Project Euler
- Blog
- pieces of code
- window 쪼물딱 거리기
- IT - Informatics Alphabet
- rop
- 국제 정보교육센터 I2sec 대구 1기
- This is the moment. :)
- blackmoon
- z3alous는 세상에 소리 z3alous~
- Acord
- FORENSIC-PROOF
- 어셈블리
- Outsider's Dev Story
- Open Tutorials
- 코드라이언
- 컴퓨터 그래픽스와 3D 프린팅
- HACKABILITY
- Lee, Jae-Hong
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 창의공학설계
- Calling Convention
- Packet
- 디버깅
- Wireshark
- 펌
- 알고리즘
- 추상데이터타입
- BOF
- 오지총
- 파이썬
- Debug
- 동대구
- 소켓
- 시간복잡도
- Visual Studio
- ubuntu
- 블루블랙
- 레지스터
- 컴파일러
- C언어
- 발표
- 호출규약
- 탈색
- 염색
- 피보나치
- Hello World
- 버퍼오버플로우
- 공간복잡도
- 베이스
- Today
- Total
목록프로그래밍 (24)
c0smicb0y
스택을 이용하여 파라미터를 전달할 때 스택에 파라미터를 어떠한 순서로 넣을 것이며 또한 전달되어진 파라미터를 어느 곳에서 해제할 것인가에 따라 여러 가지 방식이 잇으며, 이를 Calling Convention(호출규약)이라고 부른다. __cdecl이 Calling Convention은 C, C++ 프로그램에서 파라미터 전달 시 기본적으로 사용되는 방식으로, 파라미터 전달은 오른쪽에서 왼쪽으로 이루어지며, 프로시저를 호출한 쪽(Caller)에서 파라미터에 대한 해제까지 책임져주게 된다. 12345678main(){ sum(1, 2);} int sum(int a, int b){ return a + b;}cs 123456789101112main: push 2 push 1 call sum add esp, 8su..
리눅스 커널 공개소프트웨어 개발자 센터(http://devlab.oss.kr) 운영체제커널은 운영체제의핵심으로 컴퓨터 시스템을 사용하는데 꼭 필요한 기능을 제공 프로세스 관리메모리 관리파일 시스템I/O 유닉스 V6는 공짜로 뿌림이것을 기반으로 나온 것이 리눅스 리눅스가 다른 OS보다 늦었지만 좀 더 발전한 것이 오픈소스이기 때문 유저 스페이스에서 시스템 콜을 통해 메모리를 할당하거나 IO를 컨트롤 함 http://iamroot.org리눅스 커널 스터디 http://kernelstudy.netARM, x86, 리눅스 커널 분석LLVM 컴파일러SDN/NFV http://kernel.bz커널 연구회 커널을 공부할때 가장 많이 볼 곳 > LWN.net 정기적인 소식을 볼 수 있음 커널을 공부하기 위해 필요한 도..
모던 c++이란 c++ 11/14를 말한다 녹슨 C++ 코드란succeed() 등으로 떡칠 된 코드 등등 고치고 싶지만...이미 고치기엔 길어져버린 코드어디서부터 손을 써야 할 지 모름코드는 점점 산으로... 어디에 기름칠을 할까?전처리기리소스관리 함수타입, 반복문기타 등등... 전처리기#if, #ifdef, #ifndef 등등많이 쓰면 복잡해진다.많이 쓸수록 이해하기 어렵다많이 쓸수록 유지보수하기 어렵다-> 템플릿을 이용하여 기름칠 조건부 컴파일에서 케이스 바이 케이스개선하지 못하고 #ifdef를 사용해야 되는 경우도 있다.반드시 사용해야 된다면, 코드를 단순화하는 것이 좋다.중첩 #ifdef를 피하는게 좋음, 함수의 일부를 조건부 컴파일에 넣지 않도록 한다. 매크로#define변수 대신 사용하는 매크..
레지스터는 CPU의 작은 저장 공간으로 CPU가 데이터에 접근하는 가장 빠른 방법을 제공한다.x86 명령 셋에서 CPU는 8개의 범용 레지스터(EAX, EDX, ECX, ESI, EDI, EBP, ESP, EBX)를 사용한다. EAX는 accumlator regiter라고 불리며, 산술 연산을 수행하기 위해 사용 된다. x86 명령 셋에서 최적화된 많은 명령이 데이터 계산과 저장을 위해 EAX 레지스터를 사용하도록 설계되었다. 또한 EAX 레지스터는 함수의 리턴 값을 저장하므로 EAX에 저장된 값을 조사하면 호출한 함수가 어떤 리턴 값을 가지는 지 알 수 있다. EDX 레지스터는 Data register이다. 이 레지스터는 기본적으로 EAX 레지스터의 확장 개념으로 사용된다. 즉, 나누기나 곱하기 같은 ..
ShellExecute() 와 CreateProcess() 는 모두 보기에는 프로세스를 만들어주는 api처럼 보이지만 차이점이 있다. MSDN에는 CreateProcess()를 다음과 같이 설명하고 있다.Creates a new process and its primary thread. The new process runs in the security context of the calling process.새로운 프로세스와 그 최우선의 스레드를 생성한다. 그 새 프로세스는 호출하는 프로세스의 보안 컨텍스트 안에서 구동된다. ShellExecute()는 다음과 같이 설명되어 있다.Performs an operation on a specified file. 특정한 파일의 명령을 수행한다. CreateProce..
워게임을 풀다보면 nc를 이용하여 통신하면서 문제를 풀어야하는 경우가 있다.이런 문제가 스크립트를 활용하여 하는 문제인 경우에는 어떻게 스크립트를 짜야할 지 막막하다.파이썬을 통해 소켓으로 쉽게 통신을 할 수 있다. 12345678910111213141516171819202122232425262728293031'''''''''''''''''''''''''''''''''''''''''''''''''''''''author: c0smicv0w''''''''''''''''''''''''''''''''''''''''''''''''''''''' import socket '''접속하는 부분''' sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #IP/TCP로 소켓..
파일시스템은 운영체제에서 파일을 쉽게 접근할 수 있도록 저장 또는 조직하는 체제를 가리키는 말이다. 운영체제마다 다르게 설계되어 있으며, 성능 또한 다르다.리눅스는 ext4라는 파일시스템을 가장 많이 사용하고 윈도우는 NTFS, 솔라리스는 ufs라는 파일시스템을 사용하고 있다. 리눅스에서의 파일시스템을 이해하기 위해서는 i-node와 슈퍼블록에 대해 알아야한다. i-node리눅스는 파일을 생성할 때 두가지 과정을 거친다. 파일을 저장하기 위한 공간을 디스크에서 확보하고, 파일에 대한 정보를 저장하기 위해 i-node라는 구조를 만든다. 파일들은 각자의 i-node를 가지고 있으며 리눅스는 모든 i-node를 table에 저장한다. [표 1] i-node의 내용 정보 의미 파일 모드 파일과 관계된 접근과 ..
이식성(portability)에 영향을 끼치는 두가지둘 다 컴퓨터 소프트웨어의 다른 부분들 사이에서의 인터페이스를 정의한다. API(Application Programming Interface)API는 소프트웨어가 소스레벨에서 다른 소프트웨어와 communicate하는 한 부분으로서 인터페이스를 정의한다. 주로 함수로서 제공된다. ABI(Application Binary Interface)ABI는 특정 아키텍처에서 소프트웨어의 두개 이상의 부분들 사이에서의 바이너리 인터페이스를 정의한다. 어플리케이션이 자기자신과 어떻게 상호작용하는지, 어플리케이션이 커널과 어떻게 상호작용하는지, 어플리케이션이 라이브러리와 어떻게 상호작용하는지 정의한다. Calling Convention을 다룬다. 윈도 xp에서 구동되는..