Archive for the ‘Command Line Plugin’ Category



Command Line Plugin

Welcome, sau một thời gian làm quen với Olly hôm nay em xin giới thiệu với mọi người một Plugin không kém phần quan trọng của Olly , đó chính là Plugin Command Line. Mặc dù còn nhiều tính năng hạn chế nhưng Plugin này cũng vẫn cung cấp cho chúng ta các chức năng đầy đủ mà một chương trình debug cần phải có. Nhưng bù lại thì mã nguồn của Plugin này là mở cho nên cho phép chúng ta add thêm bất kì câu lệnh mới nào vào đồng thời nó cũng cho phép chúng ta chỉnh sửa các chức năng của những câu lệnh đã có. Bài viết này được dịch ra từ file Help , mong rằng sẽ đáp ứng được phần nào thông tin , cũng như chức năng cơ bản của Plugin này.

Như chúng ta đã biết , để gọi Plugin này trong Olly chúng ta dùng phím tắt sau : Alt + F1. Hiện tại theo tài liệu mà em có thì Plugin này hỗ trợ những câu lệnh sau :

1. Expressions (Biểu thức) :

CALC expression        : Tính toán giá trị của một biểu thức
? expression        : Tương tự như trên
expression (kí tự đầu tiên không được là chữ cái)    : Tương tự như trên
WATCH expression    : Theo dõi, quan sát một biểu thức
W expression        : Tương tự

2. Assignments (Gán) :

SET reg=expression    : Ghi giá trị của biểu thức vào thanh ghi chung 8, 16, hay 32 bits
reg=expression        : Tương tự
SET memory=expression     : Ghi giá trị của biểu thức vào bộ nhớ 8 , 16, hay 32 bits

3. Disassembler :

AT expression        : Theo dõi địa chỉ trong cửa sổ Disassembler
FOLLOW expression    : Tương tự
ORIG            : Đi tới thanh ghi EIP hiện tại
*            : Tương tự

4. Dump and Stack :

D expression        : Theo một địa chỉ trong cửa sổ Dump
DUMP expression        : Tương tự
DA [expression]        : Dump theo dạng assembler
DB [expression]        : Dump ở dạng byte (hexa)
DC [expression]        : Dump dưới dạng ASCII text
DD [expression]        : Dump dưới dạng địa chỉ (áp dụng cho stack)
DU [expression]        : Dump theo dạng Unicode text
DW [expression]        : Dump ở dạn word (hexa)
STK expression        : Lần theo một địa chỉ trong Stack

5. Assembling :

A expression [,command]     : Assemble tại một địa chỉ

6. Labels and comments (Các lệnh liên quan đến nhãn và chú thích):

L expression, label    : Gán nhãn cho một địa chỉ
C expression, comment    : Gán chú thích tại một địa chỉ

7. Breakpoint commands (Các lệnh liên quan đến việc đặt BP trong Olly):

BP expression [,condition]    : Đặt breakpoint INT3 tại địa chỉ
BPX label            : Đặt breakpoint lên tất cả các hàm Call
BC expression            : Xóa điểm đặt BP tại địa chỉ
MR expression1 [,expression2]     : Đặt một BP là memory on access trên một phạm vi nào đó
MW expression1 [,expression2]    : Đặt một BP là memory on write trên một phạm vi nào đó
MD                : Xóa điểm đặt BP memory
HR expression            : Đặt 1-byte BP có dạng hardware on access lên một địa chỉ
HW expression            : Đặt 1-byte BP có dạng hardware on write lên một địa chỉ
HE expression            : Đặt một BP có dạng hardware on execute lên một địa chỉ
HD [expression]            : Xóa điểm đặt hardware BP tại một địa chỉ

8. Tracing commands (Các lệnh liên quan đến việc Trace code trong Olly):

STOP        : Tạm dừng sự thi hành
PAUSE        : Tương tự
RUN        : Chạy chương trình
G [expression]    : Chạy chương trình đến một địa chỉ nào đó
GE [expression]    : Bỏ qua các ngoại lệ để điều khiển và chạy đến một địa chỉ nào đó

S        : Nhảy vào trong một hàm
SI        : Tương tự
SO        : Nhảy qua một hàm
T [expression]    : Trace vào trong một hàm đến một địa chỉ nào đó
TI [expression]    : Tương tự
TO [expression]    : Trace qua một hàm đến một điạh chỉ nào đó
TC condition    : Trace vào trong một hàm đến một điều kiện nào đó
TOC condition    : Trace qua một hàm đến một điều kiện nào đó
TR        : Thực thi cho đến khi Return
TU        : Thực thi cho đến đoạn user code

9. OllyDbg windows (Các lệnh liên quan đến cửa sổ):

LOG             : Xem cửa sổ Log
MOD            : Xem cửa sổ Executable
MEM            : Xem cửa sổ Memory
CPU            : Xem cửa sổ CPU
CS            : Xem cửa sổ Call Stack
BRK            : Xem cửa sổ Break Points
OPT            : Xem cửa sổ Options

10. Miscellaneous commands (Các lệnh khác):

EXIT        : Đóng OllyDbg
QUIT        : Tương tự
OPEN [filename]    : Mở một file để Debug (executable file or dll)
CLOSE        : Đóng chương trình đang Debug
RST        : Restart lại chương trình đang Debug
HELP        : Mở cửa Help của Plugin Command Line
HELP OllyDbg    : Mở cửa sổ Help của Olly
HELP APIfunction    : Mở cửa sổ Help của hàm API

Các lệnh dùng trong Plugin Command Line không phân biệt chữ hoa và chữ thường , các tham số trong ngoặc vuông là những tùy chọn. Các biểu thức có thể bao gồm các hằng số, các thanh ghi và các tham chiếu bộ nhớ , bên cạnh đó nó còn hỗ trợ tất cả các phép tính số học cơ bản và các Boolean Function. Theo mặc định thì tất cả các hằng số đều ở dạng Hexa. Để biểu diễn các hằng số về dạng Decimal , đi kèm nó là dấu thập phân. Ví dụ :

1. 2 + 2	: Tính toán giá trị của biểu thức (Cộng ở kiểu Hexa);

2.  2.0 + 2.0 	: Tính toán giá trị của biểu thức (Cộng ở kiểu thập phân);

3. AT [EAX+10] : disassemble tại địa chỉ mà địa chỉ này là nội dung của Dw mem tại địa chỉ EAX + 0x10;

4. BP KERNEL32.GetProcAddress  : Đặt một BP lên hàm API . Chú ý bạn có thể đặt một BP trong file Dll hệ thống , nhưng chỉ đối với các hệ điều hành NT;

5. BPX GetProcAddress  : Đặt BP lên tất cả các lệnh gọi hàm API GetProcAddress;

6.  BP 412010,EAX==WM_CLOSE : Đặt một Conditional BP tại địa chỉ 0x412010. Chương trình sẽ dừng lại khi mà giá trị của EAX = WM_CLOSE;

kienmanowar(REA – cRaCkErTeAm) – 05/01/2005

Thank to my family, Computer_Angel, Moonbaby , Zombie_Deathman, Littleboy, Benina, QHQCrker, the_Lighthouse, Hoadongnoi, Nini … all REA‘s members, HacNho, RongChauA, Deux, tlandn …. all my friend, and YOU.

REVERSE ENGINEERING ASSOCIATION
http://reaonline.net