반응형
범주 명령 단축키
Worksheet SQL 워크시트(W) Alt-F10
Worksheet 계획 설명(E)... F10
Worksheet 내역(H) F8
Worksheet 롤백(R) F12
Worksheet 명령문 실행 F9
Worksheet 명령문 실행 Ctrl-Enter
Worksheet 비공유 SQL 워크시트 Ctrl-Shift-N
Worksheet 스크립트 실행 F5
Worksheet 자동 추적(A)... F6
Worksheet 지우기(C) Ctrl-D
Worksheet 커밋(O) F11
검색 다음 찾기(N) F3
검색 바꾸기...(R) Ctrl-R
검색 이전 찾기(P) Shift-F3
검색 증분 뒤로 찾기(B) Ctrl-Shift-E
검색 증분 앞으로 찾기(O) Ctrl-E
검색 찾기...(F) Ctrl-F
검색 커서 다음 단어 찾기 Ctrl-F3
검색 커서 앞 단어 찾기 Ctrl-Shift-F3
기타 SQL 내역: 다음 내역에서 추가 Ctrl-Shift-Down
기타 SQL 내역: 다음 내역으로 바꾸기 Ctrl-Down
기타 SQL 내역: 이전 내역에서 추가 Ctrl-Shift-Up
기타 SQL 내역: 이전 내역으로 바꾸기 Ctrl-Up
기타 고급 형식... Ctrl-Shift-F7
기타 구현 디버그 Shift-F9
기타 대문자/소문자/첫 자를 대문자로 Ctrl-Quote
기타 변경 사항 롤백 F12
기타 변경 사항 커밋 F11
기타 보기 고정 Ctrl-Shift-P
기타 새로 고침 Ctrl-R
기타 새로 만들기(N)... Ctrl-N
기타 테스트 실행 F9
기타 파일 실행 Ctrl-F11
기타 팝업 메뉴 Shift-F10
기타 팝업 메뉴 Context Menu
기타 팝업 설명 Shift-F4
기타 편집(E) Ctrl-L
기타 형식 Ctrl-F7
데이터 편집기 데이터 필터링 Ctrl-Alt-F
데이터 편집기 변경 사항 롤백 F12
데이터 편집기 변경 사항 커밋 F11
데이터 편집기 새로 고침 Ctrl-R
데이터 편집기 선택된 행 삭제 Ctrl-D
데이터 편집기 정렬... Ctrl-Alt-S
데이터 편집기 행 삽입 Ctrl-I
도구 공백 표시 Ctrl-Shift-W
도움말 뒤로 Ctrl-Alt-Left
도움말 문맥에 따른 도움말 F1
도움말 문맥에 따른 도움말 Shift-F1
도움말 앞으로 Ctrl-Alt-Right
디버그 감시...(W) Ctrl-F5
디버그 검사...(I) Ctrl-I
디버그 내부 이동 F7
디버그 외부 이동 Shift-F7
디버그 이동 계속(C) Shift-F8
디버그 재개 F9
디버그 전체 이동 F8
디버그 종료 Ctrl-F2
디버그 중단점 토글(T) F5
디버그 커서까지 실행(U) F4
디버그 프로젝트 디버그 Shift-F9
버전 지정 속성(버전 지정) Ctrl-Shift-O
보기 로그(L) Ctrl-Shift-L
보기 중단점(B) Ctrl-Shift-R
소스 모두 축소(A) Ctrl-Shift-Open Bracket
소스 모두 확장(L) Ctrl-Shift-Close Bracket
소스 재형식화 Ctrl-Alt-L
소스 재형식화 Alt-Shift-F
실행(R) 프로젝트 실행 F11
이동 0 책갈피 토글 Ctrl-Shift-0
이동 0 책갈피로 이동 Ctrl-0
이동 1 책갈피 토글 Ctrl-Shift-1
이동 1 책갈피로 이동 Ctrl-1
이동 2 책갈피 토글 Ctrl-Shift-2
이동 2 책갈피로 이동 Ctrl-2
이동 3 책갈피 토글 Ctrl-Shift-3
이동 3 책갈피로 이동 Ctrl-3
이동 4 책갈피 토글 Ctrl-Shift-4
이동 4 책갈피로 이동 Ctrl-4
이동 5 책갈피 토글 Ctrl-Shift-5
이동 5 책갈피로 이동 Ctrl-5
이동 6 책갈피 토글 Ctrl-Shift-6
이동 6 책갈피로 이동 Ctrl-6
이동 7 책갈피 토글 Ctrl-Shift-7
이동 7 책갈피로 이동 Ctrl-7
이동 8 책갈피 토글 Ctrl-Shift-8
이동 8 책갈피로 이동 Ctrl-8
이동 9 책갈피 토글 Ctrl-Shift-9
이동 9 책갈피로 이동 Ctrl-9
이동 Maximize Toggle Ctrl-Alt-M
이동 기호 문서 찾아보기... Alt-Shift-Minus
이동 기호 찾아보기...(M) Ctrl-Minus
이동 다음 메시지로 이동(X) Alt-F8
이동 다음 책갈피로 이동(O) Ctrl-Q
이동 뒤로(C) Alt-Left
이동 앞으로(W) Alt-Right
이동 이전 메시지로 이동(V) Alt-F7
이동 이전 책갈피로 이동(P) Ctrl-Shift-Q
이동 책갈피 토글(T) Ctrl-K
이동 책갈피로 이동...(B) Ctrl-Shift-K
이동 최근 파일로 이동(F)... Ctrl-Equals
이동 최근 편집으로 이동(E) Ctrl-Shift-Backspace
이동 행으로 이동...(G) Ctrl-G
1 문서 활성화 Alt-1
2 문서 활성화 Alt-2
3 문서 활성화 Alt-3
4 문서 활성화 Alt-4
5 문서 활성화 Alt-5
6 문서 활성화 Alt-6
7 문서 활성화 Alt-7
8 문서 활성화 Alt-8
9 문서 활성화 Alt-9
Alt+1에 지정 Alt-Shift-1
Alt+2에 지정 Alt-Shift-2
Alt+3에 지정 Alt-Shift-3
Alt+4에 지정 Alt-Shift-4
Alt+5에 지정 Alt-Shift-5
Alt+6에 지정 Alt-Shift-6
Alt+7에 지정 Alt-Shift-7
Alt+8에 지정 Alt-Shift-8
Alt+9에 지정 Alt-Shift-9
다음 창(X) F6
다음 파일(N) Ctrl-F6
다음 파일(N) Ctrl-Tab
오른쪽 편집기(G) Alt-Page Down
왼쪽 편집기(E) Alt-Page Up
이전 창(V) Shift-F6
이전 파일(P) Ctrl-Shift-F6
이전 파일(P) Ctrl-Shift-Tab
파일 목록(F) Alt-0
편집기 메뉴 표시(S) Alt-Minus
코드 편집기 다음 단어 시작 부분까지 삭제 Ctrl-Delete
코드 편집기 다음 단어 시작 부분까지 삭제 Ctrl-T
코드 편집기 다음 단어 시작 부분으로 이동 Ctrl-Right
코드 편집기 뒤로 이동 Left
코드 편집기 로컬 탭 크기를 2로 설정 Ctrl-2
코드 편집기 로컬 탭 크기를 4로 설정 Ctrl-4
코드 편집기 로컬 탭 크기를 8로 설정 Ctrl-8
코드 편집기 매개변수 인사이트(P) Ctrl-Shift-Space
코드 편집기 삽입 모드 토글 Insert
코드 편집기 새 행 삽입 Shift-Enter
코드 편집기 새 행 삽입 Enter
코드 편집기 선택 사항 뒤로 이동 Shift-Left
코드 편집기 선택 사항 복제 Ctrl-Shift-D
코드 편집기 선택 사항 아래로 이동 Shift-Down
코드 편집기 선택 사항 앞으로 이동 Shift-Right
코드 편집기 선택 사항 위로 이동 Shift-Up
코드 편집기 선택 사항을 다음 단어 시작 부분으로 이동 Ctrl-Shift-Right
코드 편집기 선택 사항을 이전 단어 시작 부분으로 이동 Ctrl-Shift-Left
코드 편집기 선택 사항을 파일 끝으로 이동 Ctrl-Shift-End
코드 편집기 선택 사항을 파일 시작 부분으로 이동 Ctrl-Shift-Home
코드 편집기 선택 사항을 페이지 아래로 이동 Shift-Page Down
코드 편집기 선택 사항을 페이지 위로 이동 Shift-Page Up
코드 편집기 선택 사항을 행 끝으로 이동 Shift-End
코드 편집기 선택 사항을 행 시작 부분으로 이동 Shift-Home
코드 편집기 선택 해제 Ctrl-Back Slash
코드 편집기 선행 공백을 탭으로 변환 Ctrl-Shift-T
코드 편집기 선행 탭을 공백으로 변환 Ctrl-Shift-U
코드 편집기 스마트 완성 인사이트(A) Ctrl-Alt-Space
코드 편집기 아래로 이동 Down
코드 편집기 앞으로 이동 Right
코드 편집기 역방향 탭 Shift-Tab
코드 편집기 완성 인사이트(C) Ctrl-Space
코드 편집기 위로 이동 Up
코드 편집기 이전 단어 시작 부분까지 삭제 Ctrl-Backspace
코드 편집기 이전 단어 시작 부분으로 이동 Ctrl-Left
코드 편집기 이전 문자 삭제 Shift-Backspace
코드 편집기 이전 문자 삭제 Backspace
코드 편집기 일치하는 중괄호까지 선택 Alt-Shift-Close Bracket
코드 편집기 일치하는 중괄호까지 선택 Alt-Shift-Open Bracket
코드 편집기 일치하는 중괄호로 이동 Alt-Open Bracket
코드 편집기 일치하는 중괄호로 이동 Alt-Close Bracket
코드 편집기 취소 Escape
코드 편집기 탭 삽입 Tab
코드 편집기 파일 끝으로 이동 Ctrl-End
코드 편집기 파일 시작 부분으로 이동 Ctrl-Home
코드 편집기 페이지 아래로 이동 Page Down
코드 편집기 페이지 위로 이동 Page Up
코드 편집기 행 끝까지 삭제 Ctrl-Shift-Y
코드 편집기 행 끝으로 이동 End
코드 편집기 행 시작 부분으로 이동 Home
코드 편집기 행 아래로 스크롤 Ctrl-Down
코드 편집기 행 위로 스크롤 Ctrl-Up
코드 편집기 행 조인 Ctrl-J
코드 편집기 행 주석 토글(T) Ctrl-Slash
코드 편집기 행 주석 토글(T) Ctrl-Shift-Slash
파일 닫기 Ctrl-F4
파일 닫기 Ctrl-W
파일 모두 닫기(E) Ctrl-Shift-F4
파일 열기...(O) Ctrl-O
파일 인쇄...(P) Ctrl-P
파일 저장(S) Ctrl-S
파일 종료(X) Alt-F4
편집 실행 취소 Alt-Backspace
편집 실행 취소 Ctrl-Z
편집 재실행 Alt-Shift-Backspace
편집 재실행 Ctrl-Shift-Z
편집 재실행 Ctrl-Y
편집 경로 복사(H) Ctrl-Shift-C
편집 모두 선택(A) Ctrl-A
편집 복사(C) Ctrl-C
편집 복사(C) Ctrl-Insert
편집 붙여넣기(P) Shift-Insert
편집 붙여넣기(P) Ctrl-V
편집 삭제(D) Delete
편집 잘라내기(T) Shift-Delete
편집 잘라내기(T) Ctrl-X
편집 확장된 붙여넣기...(E) Ctrl-Shift-V
 
원래 sqldbx를 즐겨 사용하고 Toad도 사용하지만 현재 근무하는 회사 정책상
프리웨어를 사용할수 밖에 없게 되었다 하여 SQL Developer 를 사용하게 되었다.
음 그닥 불편하지는 않지만 아직 익숙하지 않기에 우선 단축키부터 찾아보았다.
반응형
우리는 프로그램을 사용하면서 단축키를 많이 사용한다.

필자도 여러가지 프로그램들을 사용하면서 되도록 단축키를 활용함으로 효율성을 높이려고 한다.

자바에서 스윙으로 프로그램을 만들면서 Mnemonic 과 Accelerator 에 대해 알 필요가 있었다.

Mnemonic 과 Accelerator 을 어느 경우에 사용해야 하는지 정리도 할겸 작성해 본다. 

일반적으로 메뉴를 선택할 때는 ALT + 문자 조합을 사용한다.

그리고 메뉴 내에 있는 아이템을 선택할때의 단축키 조합은 어떻게 될것인가?

메뉴를 선택할때는 setMnemonic() 메소드를 이용하여 선택하게 할수 있다.


이렇게 하면 메뉴바의 메뉴를 선택할때 ALT + f  키를 누르면 선택된다.

그리고 메뉴 내에 메뉴 아이템을 선택할때에 2가지 방법이 존재 하게 된다.

메뉴를 선택한 상태에서 문자키를 이용한 선택과 메뉴를 선택하지 않은 상태에서

다른 키조합으로 바로 메뉴 내의 메뉴 아이템을 선택하는 방법이다.

일단 첫번째 메뉴를 선택하고 메뉴내의 아이템을 선택하는 방법은 위에 했던 방식과 별반 다를바 없다.

똑같이 setMnemonic() 메소드를 이용하면 된다.


두번째 방법에서 메뉴를 선택하지 않고 단축키로 메뉴 아이템을 선택하고자 할때는

드디어 언제 나오나 싶었던 Accelerator() 메소드를 사용하면 되는 것이다.
여기서는 CTRL + o 의 조합으로 설정해 놓았다.


이렇게 코딩을 하면 단축키가 잘 먹는다.^^

참고로 키값은 API를 참고 하도록... KeyEvent 클래스를 찾으면 나와있다. 다들 아시겠지만 ^^;
반응형
어느날 갑자기 내가 사용하는 무선 마우스가 생명을 다하고 더이상 작동하지 않는다.. ㅠㅠ

망할놈의 DIGIX 무선 세트.. 싸다고 해서 구입했는데 후회가 막심하다..

키감도 별로고 키보드 자판 배열도 영 적응이 안된다.. 므튼 요점은 마우스가 작동되지 않아서

키보드만으로 하루를 버틸 수 밖에 없는 상황이였다. 물론 회사 업무시간에 죽어버린것이다.

마우스를 손에 달고 살다보니 없으니 여간 불편하고 할수 있는게 없는듯 했다.

할수 없이 일은 해야 했기에 내가 사용하는 프로그램 단축키를 죄다 뽑기 시작했다.

eclipse,visual studio,totalcommander 등등.. ㅎㅎ

책상위가 온통 단축키(A4용지) 로 덮여졌다.. 더듬더듬 찾아가면서 단축키를 사용하다 보니 첨엔 불편하더니

점차 마우스를 사용하는 것보다 더 편한것이 아닌가..

므릇 스타크래프트를 할때에도 하수와 고수의 차이는 단축키가 아니던가.. ㅎㅎ

뭐 마우스 없이 사용하는데 별 무리가 없었던데에는 launchy 와 total commander의 도움이 컷다..ㅎㅎ

마우스가 없다보니 단축키도 훨씬 빨리 손에 익혀지는 듯하고 그렇게 불편함은 없다.

그리고 어디선가 읽었던 글이 생각이 난다. 목수는 자신의 도끼를 항상 날카롭게 하고

군인은 자신의 총을 항상 정비한다. 자신의 도구를 최대한 활용하기 위해서 이다.

개발자는 자신의 도구(IDE?)를 다루는데 항상 능숙할수 있도록 준비해야 한다는 말이였던듯..

요는 자신이 사용하는 도구를 최대한 활용할수 있도록 단축키를 익히자 이런뜻이였던듯 하다.

그리고 참고로 단축키를 정리해 놓은 사이트가 있어서 링크에 올려 놓는다..

http://allhotkeys.com/    

후기> 다음날 마우스를 가져와서 사용하니 아직도 손에 마우스가 붙어있네.. 이걸 아예 없애버려? 마우스?

근데 웹서핑할때는 마우스가 없으면 너무 힘들어서 ㅠㅠ
반응형

프로그램 디버깅 하고 분석할 때 아주 유용한 도구입니다.

OllyDBG는 Win32 API에 최고. MFC 관련은 IDA PRO Disassemble 추천.

 

OllyDbg가 디버거로써는 뛰어나지만, reverse analyzing 면에서는 IDA Pro 가 독보적이죠~

OllyDbg는 Win32 API 인 경우 충실히 label (ex: CreateFile, ExitProcess, etc) 을 달아주지만,
RunTime/MFC library 인 경우 거의 label (ex: printf, strcpy, CString::CString() etc) 정보를 주지 못합니다.


소개하는 플러그인은 IDA Pro에서 자동으로 추가되는 label 과 comment 까지 그대로 OllyDbg 에서 쓸 수 있도록 도와줍니다.


사용법은


1. 플러그인 설치
2. IDA Pro 실행 -> 원하는 파일 오픈  (=> IDA가 욜씨미 분석을 하겠죵)
3. 맵파일 생성 : File\Produce file\Create Map file 메뉴 선택 => 나타나는 dialog 의 모든 체크박스에 체크 해주시고...
4. OllyDbg 실행 -> 동일 파일 오픈
5. 맵파일 로드 : Plugins\MapConv\Replace label 메뉴 선택 => 파일오픈 dialog에서 해당 *.map 파일 선택

 

OllyDbg 단축키

출처: http://home.t-online.de/home/Ollydbg/quickst.htm

Ctrl+F2 프로그램 재실행
Alt+F2 프로그램 닫기
F3 새 프로그램 열기
F5 활성화 되어 있는 윈도우 최대화, 혹은 원복
Alt+F5 olly 디버거 윈도우를 항상 위로
F7 Step into (함수 진입)
Ctrl+F7 Animate into (entering functions)
F8 Step over (executing function calls at once)
Ctrl+F8 Animate over (executing function calls at once)
F9 실행
Shift+F9 Pass exception to standard handler and run
Ctrl+F9 Execute till return
Alt+F9 Execute till user code
Ctrl+F11 Trace into
F12 Pause
Ctrl+F12 Trace over
Alt+B Open Breakpoints window
Alt+C Open CPU window
Alt+E Open Modules window
Alt+L Open Log window
Alt+M Open Memory window
Alt+O Open Options dialog
Ctrl+T Set condition to pause Run trace
Alt+X Close OllyDbg
F2 Toggle breakpoint
Shift+F2 Set conditional breakpoint
F4 Run to selection
Alt+F7 Go to previous reference
Alt+F8 Go to next reference
Ctrl+A Analyse code
Ctrl+B Start binary search
Ctrl+C Copy selection to clipboard
Ctrl+E Edit selection in binary format
Ctrl+F Search for a command
Ctrl+G Follow expression
Ctrl+J Show list of jumps to selected line
Ctrl+K View call tree
Ctrl+L Repeat last search
Ctrl+N Open list of labels (names)
Ctrl+O Scan object files
Ctrl+R Find references to selected command
Ctrl+S Search for a sequence of commands
Asterisk (*) Origin
Enter Follow jump or call
Plus (+) Go to next location/next run trace item
Minus (-) Go to previous location/previous run trace item
Space ( ) Assemble
Colon (:) Add label
Semicolon (;) Add comment
ctrl+위, 아래 화살표키 디스어셈블 위치 지정


소프트아이스와 함께 가장 많이들 사용하시는 올리디버거입니다. 소프트아이스와 같은 커널 디버거는 아니지만 사용하기 쉽고 기능도 많들으며 보기 좋은 인터페이스를 가지고 있습니다.

※ 제가 수정한 ollydbg.ini.fix를 사용하시면 좀 더 음침한(?) 인터페이스가 됩니다. ^^;

※ 한가지 주의할 점은 다음과 같습니다.
디 버그 모드로 빌드할 경우, *.exe 파일과 함께 *.pdb 파일이 생성되는데 (물론, 릴리즈 모드로 빌드하여도 옵션을 설정하면 *.pdb 파일을 생성할 수 있습니다.) 이것은 심볼(Symbol) 파일로 OllyDbg에서는 이 파일을 참조하여 디버깅시 사용자에게 추가적인 정보를 제공합니다. 그런데 이 파일이 위치하는 디렉토리의 경로명 중에 공백이 있을 경우 OllyDbg에서는 찾질 못하네요. 따라서 디렉토리 명에 공백이 들어가지 않도록 주의하시기 바랍니다. 소스 파일의 경로 또한 마찬가지입니다.

※ 버그가 있군요.
위 내용도 그렇고 올리에서는 디버깅 심볼 관련 파일들의 패스를 잘 찾지 못하는 것 같습니다. 소스 파일의 경우 패스가 길어지니까 올리에서는 패스를 엉뚱하게 인식하네요. 아마 버그인듯 합니다. Ollydbg Users Forum에는 그런 버그 리포트가 없지만요... -_-ㅋ 암튼 해결책은 간단한 패스에서 처음부터 개발작업을 하던지 빌드할 때만 간단한 패스로 옮겨와서 빌드해야 할 것입니다.

 

이 프로그램을 가지고 원래 우리가 작성한 프로그램을 역 어셈블 할 수 있다.


처음 프로그램을 설치하고 option 의 appearance에서 두개의 폴더설정을 현재의 프로그램이 있는 폴더를 설정한다.


그리고 visual c++의 project를 설치할 때 release mode와 minimize size를 해서 프로젝트를 만들어준다.


cf ) Minimize size와 Release Mode 그리고 Maximize speed와 Release Mode의 차이점....

speed와 size의 Trade-off가 된다. 이것은 이 util을 가지고 프로그램의 내부를 들여다보면 알 수 있다.

+ Recent posts