- 참치군
- ?
- 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 |
- Calling Convention
- 베이스
- BOF
- 파이썬
- 레지스터
- 블루블랙
- Wireshark
- 시간복잡도
- 알고리즘
- 디버깅
- 버퍼오버플로우
- 소켓
- Debug
- 추상데이터타입
- Hello World
- 오지총
- Packet
- 피보나치
- Visual Studio
- 염색
- 동대구
- 공간복잡도
- 컴파일러
- ubuntu
- 탈색
- 펌
- 창의공학설계
- 호출규약
- 발표
- C언어
- Today
- Total
목록2015/11 (8)
c0smicb0y
환경: Windows 10 Pro 64bit 1. 문제Windows 10 64bit 환경에서 작성한 간단한 디버거로 calc.exe가 제대로 디버깅 되지 않는 사태가 발생하였다. EXIT_PROCESS_DEBUG_EVENT 이후 아무런 이벤트가 발생하지 않는다. 멘토님이 UWP(Universal Windows Platform)이라서 calc.exe를 실행시키면 calc.exe에서 유니버셜 앱인 Calculator.exe를 실행시켜주는 것이라고 하셨다. 그래서 단지 자식프로세스를 디버깅하는 방법을 찾으면 디버깅이 가능할 것 같아서 구글링을 해보았다. MSDN에서는 CreateProcess를 할때 주는 인자 중 하나인 Process Creation Flag에 다음과 같이 명시되어 있다. https://msd..
환경: Ubuntu 15.10 64bit 리눅스에서 효율적으로 개발할 수 있는 IDE인 Qt를 깔아보자 http://download.qt.io/official_releases/qt/ 에서 버전을 확인할 수 있다. 제일 최신인 5.5를 깔아보자 자신에게 맞는 버전을 선택하자 wget으로 받아주자 1wget http://download.qt.io/official_releases/qt/5.5/5.5.1/qt-opensource-linux-x64-5.5.1.runcs 잘 다운로드 되고 있다. 다운로드가 다 되었다. 해당파일에 실행권한을 주자. 그리고 실행! 다음과 같은 창이 뜰 것이다. 다음다음을 눌러서 넘어가자.계정이 있다면 적어주거나 가입하고 싶으면 가입하자. 필자는 스킵하였다. 설치가 끝이났다! 우분투 검..
GDB에서 tui 옵션을 사용하면 좀 더 편리하게 디버깅을 할 수 있다! 다음과 같은 소스가 있다. gdb로 tui 옵션을 주고 열어보자. 다음과 같이 열릴 것이다. main에 브레이크 포인트를 걸어보자. 저렇게 브레이크 포인트가 걸리는 것을 시각적으로 보여준다. r을 통해 프로그램을 실행시키면, 브레이크 포인트에 걸리면서 현재 무슨 명령어를 수행하고 있는지 보여준다! n을 입력하여 한 라인씩 실행시켜보자. 현재 무슨 라인인지 보여준다. 그런데 이 옵션은 컴파일 시 -g 옵션을 통해 디버깅을 허용하는 프로그램에 대해서만 가능하다...
환경: Ubuntu 14.10 자신이 가지고 있는 무선랜카드를 이용하여 무선패킷을 캡처할 수 있다. 컴퓨터에 무선랜카드를 꽂고 ifconfig를 쳐보자 wlan1이 필자가 꽂은 무선랜카드이다. iwconfig를 쳐보자 Mode가 Managed로 설정되어 있다. 패킷캡처를 위해서는 Monitor 모드로 바꾸어주어야 한다. 먼저 무선랜카드를 해제하자. sudo ifconfig wlan1 down wlan1 이 해제된 것을 볼 수 있다. 이제 모드를 Monitor 모드로 바꾸어주자 sudo iwconfig wlan1 mode monitor 모드가 Monitor 모드로 바뀌었다. 이제 다시 wlan1을 장착해주자 sudo ifconfig wlan1 up 이제 wireshark를 켜보자. Interface Lis..
윈도우에서도 리눅스의 gcc처럼 멋지게 커맨드라인에서 컴파일을 할 수 있다. 하지만 그러기 위해서는 예전에 자바 환경 구축을 했던 것 처럼 환경 구축을 해주어야한다. 자바 개발 환경으로 자주 쓰이는 이클립스는 이제 인스톨러가 생겨서 원클릭으로 쉽게 환경 구축이 가능하다. 물론 자바도 커맨드라인에서 할려면 일일이 손으로 해주어야 한다. 그리 어렵지 않으니 잘 따라해보자! 일단 Visual Studio가 설치되어 있다는 전제하에 시작한다. Visual Studio는 드림스파크에서 다운로드 받을 수 있다. https://www.dreamspark.com/ 먼저 제어판 -> 시스템 -> 고급 시스템 설정 -> 환경 변수 를 열어준다. 이런 화면을 볼 수 있을 것이다. 시스템 변수에서 Path를 선택하고 편집하기..
전날 세시쯤(정확하게는 당일이죠)에 BoB 센터에서 퇴근해서 세시간쯤 자고 일어나서 피곤한 몸을 이끌고 PoC2015가 열리는 the K 호텔로 향했습니다. 컨퍼런스는 잘 참여하지 않다가 서울에 올라와서 이것저것 참가하게 되었는데요. PoC는 스피커분들부터 빵빵해서 매우 기대했습니다. 프론트에서 등록을 하고, 티셔츠와 뱃지와 명찰을 받았습니다. 아홉시가 조금 넘어서 관계자 분께서 개회사를 하셨는데요, 아마 vangelis님 같았습니다. 요즘 진행하는 프로젝트 관련해서 자료를 찾다가 역자에서 자주 뵙는 분입니다. 첫 세션은 Thegrugq의 "Cyberwar of Nation State Level"이였습니다. 동시통역이 진행되었는데, 그렇게 매끄럽지 못해서 조금 못마땅하였습니다. 영어 공부 열심히 해야겠어..
컴퓨터에서 수행되는 대부분의 연산은 레지스터를 이용하여 이루어지게 된다. 하지만 이 레지스터의 개수는 극히 제한적이기 때문에 함수 내에서 또 다른 함수 호출 시에는 레지스터간의 충돌을 고려해야한다. 우리가 사용하는 Windows의 컴파일러들은 이러한 문제를 피하기 위해 아래와 같은 규칙을 사용하여 함수들간의 레지스터 사용의 충돌을 피하고 있다. Platform Caller-save 레지스터 Callee-save 레지스터 x86 Windows EAX, ECX, EDX, ST(0)~ST(7), XMM0~XMM7 EBX, ESI, EDI, EBP x64 Windows RAX, RCX, RDX, R8~R11, ST(0)~ST(7), XMM0~XMM5, High half of XMM6~XMM15 RBX, RSI,..
스택을 이용하여 파라미터를 전달할 때 스택에 파라미터를 어떠한 순서로 넣을 것이며 또한 전달되어진 파라미터를 어느 곳에서 해제할 것인가에 따라 여러 가지 방식이 잇으며, 이를 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..