반응형
1.어셈블리어
Push  : sp
레지스터를JJVV조작하는C36O명령어중의 하나이다.
      
스택에 데이터를JJVV저장하는데 쓰인다
.
ex:) Push eax :
스택에 Eax의 값을G9WJ스택에 저장한다
.
ex:) Push 20 :
즉석값인 20G9WJ스택에 저장한다
.
ex:) Push 401F47 :
메모리 오프셋 401F47의 값을G9WJ스택에 저장한다
.

Pop  :
이또한 sp 레지스터를JJVV조작하는C36O명령어중 하나이다.

스택에서 데이터를JJVV꺼내는데 쓰인다.
ex:) Pop eax :
스택에 가장 상위에 있는C36O값을G9WJ꺼내애서 eax에 저장한다
.
주의점 : Push 의 역순으로 값은I2UC스택에서 Pop 된다
.

Mov  :
메모리나 레지스터의 값을G9WJ옮길 때[로 만들 때]쓰인다
.
ex:) Mov eax,ebx    :ebx
레지스터의 값을 eax로 옮긴다[로 만든다
].
ex:) Mov eax,20     :
즉석값인 20 eax레지스터 에 옮긴다[로 만든다
].
ex:) Mov eax,dword ptr[401F47]   :
메모리 오프셋 401F47 의 값을 eax에 옮긴다[로 만든다
]

Lea  :
오퍼렌드1의 값을G9WJ오퍼렌드2의 값으로 만들어준다
.
ex:) Lea eax,ebx    : eax
레지스터의 값을 ebx의 값으로 만든다
.

Inc  :
레지스터의 값을 1증가RSRG시킨다
.
ex:) Inc eax  : Eax
레지스터의 값을 1증가RSRG시킨다
.
Dec  :
레지스터의 값을 1 감소 시킨다
.
ex:) Dec eax : Eax
레지스터의 값을 1 감소 시킨다
.

Add  :
레지스터나 메모리의 값을G9WJ덧셈할떄 쓰임
.
ex:) Add eax,ebx   :Eax
레지스터의 값에 ebx 값을G9WJ더한다
.
ex:) Add eax,50    :Eax
레지스터에 즉석값인 50G9WJ더한다
.
ex:) Add eax,dword ptr[401F47]  : Eax
레지스터에 메모리 오프셋 401F47의 값을G9WJ더한다
.
Sub  :
레지스터나 메모리의 값을G9WJ뻇셈할떄 쓰임
.
ex:) Sub eax,ebx   : Eax
레지스터에서 ebx 레지스터의 값을G9WJ뺸다
.
ex:) Sub eax,50
Eax  :
레지스터에서 즉석값 50G9WJ뺸다
.
ex:) Sub eax,dword ptr[401F47]    :Eax
레지스터에서 메모리 오프셋 401F47의 값을G9WJ뺸다
.
Nop  :
아무동작도 하지 않는다
. : 90
Call :
프로시저를JJVV호출할떄 쓰인다
.
ex:) Call dword ptr[401F47]    :
메모리 오프셋 401F47G9WJ콜한다
.
Ret :
콜한 지점으로 돌아간다
.
Cmp :
레지스터와 레지스터혹은I2UC레지스터 값을G9WJ비교하기위하여 쓰인다
.
ex:) Cmp eax,ebx    :Eax
레지스터와 Ebx 레지스터의 값을G9WJ비교한다
.
ex:) Cmp eax,50     :Eax
레지스터와 즉석값 50G9WJ비교한다
.
ex:) Cmp eax,dword ptr[401F47]
:Eax
레지스터와 메모리 오프셋 401F47의 값을G9WJ비교한다
.
Jmp :
특정한 메모리 오프셋으로 이동할떄 쓰인다
.
ex:) Jmp dword ptr[401F47]   :
메모리 오프셋 401F47 로 점프한다
.
조건부 점프: Cmp Test 같은I2UC명령어의 결과에 따라점프한다
.
  Je  : Cmp
Test 의 결과가RSRG같다면 점프

  Jne : Cmp
Text 의 결과가RSRG같지 않다면 점프

  Jz  :
왼쪽 인자의 값이 0 이라면 점프
Jnz  :
왼쪽 인자의 값이 0 O67R아니라면 점프
Jl   :
왼쪽 인자의 값이O67R오른쪽 인자의 값보다 작으면 점프(부호있는
)
Jnl  :
왼쪽 인자의 값이O67R오른쪽 인자의 값보다 작지 않으면(크거나 같으면) 점프 (부호있는
)
Jb   :
왼쪽 인자의 값이O67R오른쪽 인자의 값보다 작으면 점프(부호없는
)
Jnb  :
왼쪽 인자의 값이O67R오른쪽 인자의 값보다 작지 않으면(크거나 같으면) 점프 (부호없는
)
Jg   :
왼쪽 인자의 값이O67R오른쪽 인자의 값보다 크면 점프

Jng  :
왼쪽 인자의 값이O67R오른쪽 인자의 값보다 크지 않으면 (작거나 같으면) 점프
Jle   :
왼쪽 인자의 값이O67R오른쪽 인자의 값보다 작거나 같으면점프 (부호있는)
Jge  :
왼쪽 인자의 값이O67R오른쪽 인자의 값보다 크거나 같으면 점프

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
약 이정도의 명령어들이O67R가장 많이O67R나오는C36O것들임으로
최소한 위에 나온것들은I2UC외워 두도록 하자.
3.
논리연산

이글에서는 5가지 논리연산에 대해서 쓸것이다.
논리연산자는C36O두 오퍼렌드의 값의 비트들을G9WJ대응시켜 명령에 따른 적절한 값을G9WJ구하여 첫번쨰 오퍼렌드의 값을G9WJ바꾸어 주는것이다
.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
AND
연산

대응되는C36O비트가RSRG둘다 1이면 결과는 1이고 그외의 결과들은I2UC모두 0 O67R된다.
ex:) MOV EAX,8
AND EAX,10 :
위를JJVV계산하기 위해 우선 두 오퍼렌드의 값을 2진수로 바꾸어 주면 8 1000 O67R되고 10 1010 O67R되고 AND 연산은I2UC둘다 1이여야 1O67R됨으로 결과는 1000 O67R됩니다
.

OR
연산

대응되는C36O비트중 하나가 1 또는C36O둘다 1이면 결과는 1이고 그외는C36O모두 0O67R된다.
ex:) MOV EAX,8
OR EAX,10
:
위를JJVV계산하기 위해 두 오퍼렌드의 값을 2진수로 바꾸어 주면 8 1000O67R되고 10 1010O67R되고 OR 연산은I2UC한쪽 또는C36O양쪽둘다 1이면 1이고그외는C36O모두 0 임으로 결과는 1010O67R된다
.
XOR
연산

대응되는C36O비트 중에서 한비트가 1이고 다른 비트가RSRG0이면 1O67R되고 두개의 비트가 1이면 0 O67R되고 두개다 0 이어도 0O67R된다.
ex:) MOV EAX,8
XOR EAX,10
:
위를JJVV계산하기 위해 두 오퍼렌드의 값을 2진수로 바꾸어 주면 8 1000O67R되고 10 1010O67R되고 XOR 연산은I2UC한쪽만 1이어야 1임으로 결과는 10O67R된다
.

NOT
연산

NOT
연산은I2UC오퍼렌드의 값을G9WJ반대로 하여 준다.
ex:) MOV EAX,10
NOT EAX
:
위를JJVV계산하기 위해 오퍼렌드의 값을 2진수로 바꾸어 주면 10 1010O67R되고 NOT 연산은 1 0G9WJ반대로 하여 줌으로 결과는 0101 O67R된다
.
*Test
연산은I2UC오퍼렌드에 영향을G9WJ주지 않으며 플래그만 세트 시키어 준다
.

2.레지스터
범용 레지스터
(1) Eax
레지스터
누산기인 Eax 레지스터는C36O입출력과 거의 모든 산술연산에 사용된다. 곱셋과 나눗셈,VPTL변환 명령어등은I2UC반드시 Eax 레지스터를JJVV필요하게 된다.

Eax 레지스터는 32bit의 레지스터이고 16bit 의 레지스터로 axRSRG있다.
(ax
C36O왼쪽의 ah와 오른쪽의 al로 이루어져 있다)

 (2) Ebx
레지스터
Ebx
C36O주소지정을G9WJ확대하기 위한 인덱스로서 사용될수 있는C36O유일한 범용 레지스터 이며,VPTL다른 일반적인 계산 용도로도 쓰인다.
Ebx
32bit 레지스터이고 16bit ebRSRG있다
.
(eb
C36O왼쪽의 bh와 오른쪽의 bl로 이루어져 있다
)
(3) Ecx
레지스터

Ecx
C36O루프의 반복 횟수나 좌우방향의 시프트 비트 수를JJVV기억한다. 그외의 계산에도 사용된다.
Ecx
32bit 레지스터이고 16bit cxRSRG있다
.
(cx
C36O왼쪽의 ch와 오른쪽의 cl로 이루어져 있다
.)
(4) Edx
레지스터

Edx
C36O몇몇 입출력 동작에서 사용 된다
.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
플래그 레지스터

(1) OF [Over Flow]
산술연산후 상위 비트의 오버플로를JJVV나타냄
(2) DF [Direction]
스트링 데이터를JJVV이동하거나 비교할떄 왼쪽 또는C36O오른쪽으로의 방향을G9WJ결정한다.
(4) SF [Sign]
산술결과의 부호를JJVV나타낸다.[0=양수,1=음수
]
(5) ZF [zero]
산술연산 또는C36O비교동작의 결과를JJVV나타낸다
.
[0=
결과가 0O67R아님,1=결과가 0
]

(6) CF [Carry]
산술연산후 상위 비트로부터의 캐리 그리고 시프트 또는C36O회전동작의 결과 마지막 비트

내용을G9WJ저장한다
.

(7) TF [trap]
프로세서가RSRG단일 스텝 모드(single-step mode)JJVV동작할수 있도록 해준다.

반응형
 

도구란에 첨부되어 있는 ollydbg의 압축을 풀은 폴더의 모습이다.

실행파일 OLLYDBG.EXE (빨간색 아이콘)으로 실행해보자.

사용자 삽입 이미지

실행하자마자 아래와 같은 에러 메세지가 여러분을 반길것이다.

프로그램에 문제가 있는게 아니니 불량 파일이라고 지우는 일이 없도록하자.

하지만, 매번 실행시마다 이런 메세지와 조우하게 된다면 심각하게 짜증이 날것이다.

해결해보자.

사용자 삽입 이미지

메뉴에서 Options을 클릭하고 Appearance 클릭!
 

사용자 삽입 이미지










아래와 같은 창을 마주하게 될것이다..

다음으로 넘어가서..

사용자 삽입 이미지


UDD path 의 설정으로 설명하자면.

Browse 를 클릭하고.

자신이 설치한 ollydbg 가 있는 폴더안의 udd 폴더를 체크()한 후,

확인(설정 저장)해주면 된다.

사용자 삽입 이미지


Plugin path 도 마찬가지 방법으로 해주면 된다.


사용자 삽입 이미지

확인(ok)을 해주면.. 아래와 같은 창이 뜰건데.. 역시 확인!

이제 ollydbg 를 종료 해도 된다.

사용자 삽입 이미지


이전 올디(ollydbg)의 메뉴와..

 

사용자 삽입 이미지







위의 설정 저장 후의 메뉴이다.. Plugins 라는 메뉴가 하나 생성됬음을 알 수 있다.

사용자 삽입 이미지

 





기본적인 설정을 마쳤다..
잘 따라왔다면.. 처음의 에러 메세지가 사라졌음을 알 수 있다.
그럼 다음에..
 
 
작성자 : Yarnz.
반응형

http://services.nexodyne.com/email/
 

사용자 삽입 이미지



잘 사용하지 않지만 위 사이트에서 제작한 나의 구글 메일 주소 이미지이다..

나름 깔끔하게 잘 나왔다 ㅎㅎ

반응형

주로 모듈이 어떤 프로그램으로 만들어졌는지 볼 때 사용합니다. 그 밖에, MUP 할 때도 쓰이는 것으로 알고 있습니다.

다운로드

just google it!

더 살펴보기

http://peid.has.it/ 또는 http://peidforums.has.it/

한글판 PEID v0.94  출처: http://www.coolsoft2.com/

사용자 삽입 이미지

반응형

여러 가지 Hex 에디터를 사용해 보았지만, 결론은 항상 Hex Workshop이었습니다.

다운로드

http://www.bpsoft.com/downloads/index.html (trial)

더 살펴보기

http://www.bpsoft.com/

반응형

spy++ 처럼 윈도우를 살펴보는 도구입니다. 이것저것 장난질할 때는 spy++ 보다 더 좋더군요.

다운로드

http://kobik.net/downloads/spy.zip

더 살펴보기

http://kobik.net/spy_capture.asp

반응형

Process Explorer 같은 부류의 프로그램입니다.

별로 많이 써본 것은 아니지만, 딱 봐도 알 수 있는 게... 이름값은 제대로 한다는 점입니다.

공식 사이트가 이 곳 인데, 닫힌 것 같네요.

다운로드

Attach:TopToBottomNTInstall.zip

더 살펴보기

http://www.google.co.kr/search?hl=ko&q=TopToBottomNT&lr=

반응형

클래스 계층 구조를 그림으로 나타내 주는 프로그램입니다.

보통 이런 부류의 프로그램은 템플릿과 디파인이 얽히고설킨 구조에서는

제대로 된 결과물을 뽑아내지 못하곤 하는데, 이 프로그램은 꽤 잘 동작하는군요.

doc-o-matic을 만든 회사 제품인데, 역시나 doc-o-matic 만큼이나 깔끔한 결과물이 나오더군요.

비록 기능은 단순하지만, C/C++을 비롯해서 C++.NET, C#, Delphi, Java, IDL, VB.NET 등 다양한 언어를 지원합니다.

게다가, 개인 사용자에게는 무료입니다!

다운로드

http://www.toolsfactory.com/classviz20RC1.zip

더 살펴보기

http://www.toolsfactory.com/classviz.html

반응형

먼저 W32Dasm을 키신후 메뉴에서 "Disassember"를 누릅니다.

그러면 팝업메뉴가 뜨는데 "Open File to Disassemble.." 버튼을 누릅니다.

열기 대화창이 뜨는데 여기서 역어셈블 해올 파일을 선택해주시면 됩니다.





역어셈블 과정은 짧으면 10초에서 ~ 길면 5분 정도 걸리는데

역어셈블 과정이 완료되면 역어셈블 된 코드가 표시 됩니다.



위의 그림은 W32Dasm에서의 메뉴들인데 왼쪽 부터 차례대로



------------------------------------------

OPEN - 파일을 역어셈블 해올떄 쓰는 버튼 입니다.

SAVE - 역어셈블된 결과를 파일로 저장할떄 쓰는 버튼 입니다.

FIND - 문자열을 검색할떄 쓰는 버튼 입니다.

CopyClip - 선택한 줄을 클립보드에 저장하는 버튼 입니다.

START - 어셈블리 코드의 처음 부분으로 가는 버튼 입니다.



PEP - 프로그램 에서 실행되는 코드의 첫번쨰 부분으로 가는 버튼입니다.



PAGE - 특정한 페이지로 이동하는 버튼 입니다.

ADDR - 특정한 주소로 이동하는 버튼 입니다.



JMP - 현재 하이라이트된 줄이 JMP문이면 해당 점프지점으로 이동하는 버튼입니다.



RET1 - 점프문으로 이동되어 오기전에 지점으로 돌아가는 버튼입니다.



CALL - 현재 하이라이트된 줄이 CALL문이면 해당 콜지점으로 이동하는 버튼입니다.



RET2 - 콜문으로 이동되어 오기전에 지점으로 돌아가는 버튼입니다.



IMP - 다른 모듈로부터 Import되어 Import테이블에 있는 함수들의 목록을 보여준다.

함수 목록중 특정 함수를 더블클릭하면 해당 함수가 사용된 지점으로 이동됩니다.



EXP - Export테이블에 있는 함수들의 목록을 보여주는 버튼입니다.

DATA - data섹션을 Hex와 Ascii로 보여주는 버튼입니다.



CODE - Code섹션을 Hex와 Ascii로 보여주는 버튼입니다.



MENU - 리소스 아이템중 Meun 아이템을 보는 버튼입니다.

메뉴 목록중 특정 메뉴를 더블클릭하면 해당 아이템이 사용된 지점으로 이동됩니다.

DLG - 리소스 아이템중 Dialog 아이템을 보는 버튼입니다.

Dlg 목록중 특정 Dlg를 더블클릭하면 해당 아이템이 사용된 지점으로 이동됩니다.

STR - 리소스 아이템중 String 아이템을 보는 버튼입니다.

스트링 목록중 특정 스트링을 더블클릭하면 해당 스트링이 사용된 지점으로 이동됩니다.



---------------------------------------------

출처 : Tong - 등가교환님의 Hacking통

반응형
2008년 4월호
 
[Java SE] 와일드 카드 및 Extends와 함께 Generics 사용하기
[Java SE] JSlider 형태 개선
[Java EE] 애플리케이션 클라이언트에서 여러 웹 서비스 참조
[Java EE] Metro를 이용한 웹 서비스용 보안 대화
[Java ME] 컨텐츠 소비의 미래 :어떤 화면에서?


개발자를 위한 제품을 50% 가격에 드리는 썬 그린 마켓 바자회에 초대합니다 !


매년 사내 바자회를 개최하는 한국썬에서 올해는 개발자들에게 필요한 제품을 50% 가격에 드리는 '개발자 코너'를 썬 외부 개발자들을 위하여 운영합니다.삼성동 주변에 계시다면 4월 25일 금요일에 잠깐 삼성동 아셈타워의 썬 사무실에 방문해보세요!

>> 판매 물품 및 행사 안내 자세히 보기


학생 대상 자바 알고리즘 경진 대회(Java Algorithm Contest)



한국 썬이 주최하고 동국대학교 정보통신 연구소 주관하는 대학생 대상 자바 알로기즘
 경진 대회! 금상 1팀에게는 100만원 상당의 상품권을 드립니다 !


 >> 대회 내용 자세히 보기



썬 교육센터 추천 과정


>> SOA를 위한 자바 웹 서비스 개발 과정 5/13 ~ 5/16
  >> Servlet와 JSP를 활용한 웹개발 기초 5/19 ~ 5/23
  >> JDBC를 활용한 자바 프로젝트 실천- Swing, RMI 5/19 ~ 5/23
 

+ Recent posts