Tải bản đầy đủ (.pdf) (6 trang)

Cracker Handbook 1.0 part 21 ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (88.4 KB, 6 trang )

Quote:
LODSB / LODSW
Cú pháp : LODSB / LODSW
Tác dụng : load 1 byte hoặc 1 word từ DS:SI và đặt nó vào AL (đối với LODSB)
hay vào AX (đối với LODSW)
Ví dụ : LODSW
Hãy chuyển DS:SI points đến word mà đang giữ giá trị Ebh
LODSW
AX bây giờ sẽ chứa giá trị EBh
Lệnh này thương được sử dụng cùng với lệnh REP
Quote:
MOV
Cú pháp : MOV <đích>,<nguồn>
<đích>: chỉ có thể là 1 thanh ghi hay bộ nhớ
<nguồn>: có thể là thanh ghi, bộ nhớ hay hằng
Tác dụng : chuyển nội dung toán hạng nguồn vào toán hạng đích
Ví dụ : MOV AX,DX
Các bác sẽ thấy có rất nhiều lệnh này khi các bác step các đoạn code, về cơ bản
(ngôn ngữ BASIC) nó là LET đích=nguồn
Có rất nhiều biến thể khác bao gồm MOVSX, nhưng về cơ bản tất cả chúng đều
làm 1 nhiệm vụ. Nó có thể giúp để có Intel Programming Specifications từ website
của chúng.
Quote:
MOVSB / MOVSW
Cú pháp : MOVSB / MOVSW
Tác dụng : chuyển byte (đối với MOVSB) hoặc word (đối với MOVSW) từ DS:SI
đến ES:DI
Ví dụ : MOVSB
Hãy chuyển DS:SI points đến byte mà giữ giá trị 5h
MOVSB____lấy byte của DS:SI points và đặt nó trong ES:DI
Byte của ES:DI bây giờ có giá trị là 5h


Lệnh này thường được dùng với lệnh REP
Quote:
Registers
Registers là nơi mà chứa dữ liệu. Một điều duy nhất chúng ta lo lắng là: (E)AX,
(E)BX, E(CX), E(DX) (chữ E chỉ có ý nghĩa khi chúng ta debug 32bit-code.
Như vậy cặp registers là :
DS:SI____có thể được dùng như nguồn của chuỗi hoạt động
ES:DI____sử dụng như mục tiêu của chuỗi hoạt động
Việc hiểu registers không phải là quá quan trọng trong việc crack, các bác chỉ cầ
bít nó là những biến số để lưu trữ dữ liệu là được.
Quote:
REP ( Repeat String Operation)
Cú pháp : REP
Tác dụng : Lập lại dữ liệu trong CX register. Lệnh REP đặt trước MOVSB,
LODSB hay STOSB sẽ làm cho lệnh này lặp lại chính nó.
Ví dụ : MOV AL,Bh_____AL bao gồm bh
MOV CX,5h_____CX bao gồm 5h
REP STOSB_____copy giá trị của AL (ở đây là 5h) vào nơi mà DS:SI point 5
times và increment SI.
Quote:
RET
Cú pháp : RET
Tác dụng : trở lại function
Ví dụ : RET
Các bác chắc đã thấy lệnh này ở cuối mỗi function, và nó chỉ đạo bộ xử lý máy
tính trở lại địa chỉ của lệnh call gọi function
Quote:
STOSB / STOSW
Cú pháp : STOSB / STOSW
Tác dụng : Lấy giá trị trong AL (STOSB) hoặc trong AL(STOSW) và đặt nó vào

DS:SI
Ví dụ : STOSB
Giả sử AX chứa giá trị Ebh
STOSB____copy giá trị trong AX và đặt nó vào word của DS:SI. Lúc này DS:SI
points to word chứa Ebh.
Lệnh này thường được dùng với lệnh REP
Quote:
The STACK & PUSH / POP
Trước khi gọi bất kì function nào, chương trình phải “push” những thông số mà
function đang “chờ đợi” trên stack. Chúng ta giả sử nó như là 1 chồng bát, cái bát
đặt vào đầu tiên sẽ là cái bát lấy ra cuối cùng - ở đây stack cũng vậy. Chúng ta hãy
cứ nhớ “vào đầu / ra cuối” khi nhìn vào lệnh call, có nghĩa là thông số đó sẽ đảo
ngược .
Nếu như các bác không hỉu những giều trên thì hãy nhìn vào ví dụ sau :
Windows API function GetDlgItemText yêu cầu các thông số sau:
(1) Handle of dialog box
(2) Identifier of control
(3) Địa chỉ của text buffer
(4) Chiều dài tối đa của chuỗi
Bởi vậy nên đoạn code có thể như sau :
MOV EDI,[ESP+00000220]_____get handle of dialog box trong EDI
PUSH 00000100____________PUSH (4)
PUSH 00406130____________PUSH (3)
PUSH 00000405____________PUSH (2)
PUSH EDI_________________PUSH (1)
CALL GetWindowText________Gọi function
Có dễ không các bác? Đây là 1 trong những ví dụ đơn giản nhất trong lĩnh vực
crack đi tìm số serial, nếu các bác biết được địa chỉ buffer của serial, trong trường
hợp này là ở địa chỉ 00406130 , các bác hãy set breakpoint nó và thường các bác sẽ
kết thúc tại chuỗi tạo real serial ;)

Quote:
POP dùng để remove first item khỏi stack, thường có rất nhìu trước khi function
trở lại chương trình
( còn típ )

Sao, các bác có “ nuốt trôi” được chữ nào không? Chắc là không phải không ?
Không sao đâu, assembly có phải là ngôn ngữ mẹ đẻ của mình đâu, cứ từ từ đọc, từ
từ hỉu rùi sẽ có ngày các bác “đọc nó như đọc tiếng việt cho xem” ;)
Ở trên đây chỉ là những lệnh mà cracker chúng ta cần phải biết và chú ý thôi, chứ
mà nói về Assembly thì nhìu vô kể. Nếu các bác muốn thì hôm nào em sẽ post loạt
tuts khá chi tiết và đầy đủ về Assembly (bằng Tiếng Việt) cho các bác tha hồ mà
đọc:)
Thui thì bây giờ các bác ráng “nhai” cho xong hết mấy cải ở trên trước đã nha!!
Chúc các bác may mắn.

the_lighthouse(REA)
PHẦN 2 : SoftICE (Boot Menu, Setup, Commands)
02.1 Boot Menu
==========
Để chạy, SoftICE cần vài KB trong RAM của mỗi chương trình. Do đó, nếu máy
bạn bị “hạn chế” về RAM hoặc bạn không muốn SoftICE tự động load mỗi khi
khởi động máy ( chả lẽ cứ vào msconfig tắt nó rồi khi nào cân dùng lại chỉnh lại rồi
phải khởi động lại máy nữa >rất phiền) mà phải “hỏi ý kiến” rồi mới dám “vào
chơi với em windows” thì bạn cần phải chỉnh sửa đôi chút trong
AUTOEXEC.BAT và CONFIG.SYS. Các bác hãy coi 2 file đó trong máy em rồi
tìm cách sửa theo máy các bác nha :

AUTOEXEC.BAT:
goto %config%
:SICE

E:\CRACK\SOFTIC~1\WINICE.EXE
goto common
:NORM
goto common
:common

CONFIG.SYS :
[menu]
menuitem SICE,Load Soft-Ice
menuitem NORM,khong load SoftICE
menudefault NORM,5(5s là thời gian ngồi chờ các bác “cho phép”, nếu quá 5s mà
không thấy các bác trả lời thì windows sẽ típ tục load mà không load SoftICE, các
bác có thể thay đổi thời gian chờ đợi 5s này)
[SICE]
[NORM]
[common]
DEVICE=C:\WINDOWS\setver.exe
DOS=HIGH
FILES=40

02.2 Setup
=======
Cái này em đã nói nhìu rùi, bác nào chưa bít thì xem lại trong tut Window
Cracking Tutorial (

02.3 Commands
==========
Dưới đây là danh sách các commands (lệnh) trong SoftICE. Các bác nên thuộc hết
các lệnh này là tốt nhất (mặc dù là nó hơi dài) vì các bác càng bít nhìu về SoftICE
bao nhiêu thì các bác càng dễ crack soft với SoftICE bấy nhiêu. ;)


Các lệnh cơ bản :
?______________________________Evulate Expression
A______________________________Assemble code
ADDR__________________________Display/Change address contents
BC_____________________________Clear Breakpoint
BD_____________________________Disable Breakpoint
BE_____________________________Enable Breakpoint
B______________________________List current Breakpoints
BPE____________________________Edit Breakpoint
BPT____________________________Use Breakpoint as a template
BPM, BPMB, BPMW, BPMD__________Breakpoint on memory access
BPR____________________________Breakpoint on memory range
BPIO___________________________Breakpoint on I/O port access
BPINT__________________________Breakpoint on Interrupt
BPX____________________________Breakpoint on execution
BPMSG_________________________Breakpoint on windows message
C______________________________Compare two data blocks
CLASS__________________________Display window class information
D, DB, DW, DD, DS, DL, DT_________Display memory
DATA___________________________Change data window
E, EB, EW, ED, EL, ET______________Edit memory
EXIT____________________________EXIT
F_______________________________Fill memory with data
FORMAT_________________________Change format of data window
G_______________________________Go to address
H_______________________________Help on specific function
HBOOT__________________________System boot (total reset)
HERE___________________________Go to current cursor line
HWND___________________________Display window handle information

M_______________________________Move Data
MOD____________________________Display windows module list
P_______________________________Step skipping calls, Int, etc
R_______________________________Display/Change Register contents
S_______________________________Search for data

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×