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

Cracking part 35 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 (119.45 KB, 6 trang )

INSTALL, RUN AND WRITE A SCRIPT IN OLLDG

Thưa các bạn. Đặc biệt cho Newbie.
Như các bạn thấy đó, khi chúng ta học crack , đa số các phần mềm bây giờ thường được
pack bằng một packer nào đó . Nhưng chúng ta là newbie thì ko biết UNPACK như thế
nào. Thường thì chúng ta tìm một unpacker để unpack . Nếu ko có thì chúng ta phải học
các TUT MUP , còn gọi là các tut unpack ‘bằng tay’ rồi thực hành theo để unpack các
phần mềm chúng ta muốn crack. Các tut MUP dạy cho chúng ta các bước sau:
-Find OEP
-Dump chương trình trong bộ nhớ bắt đầu tại OEP v
ừa tìm được ra 1 file
-Fix IAT
-Sau đó là Rebuild PE.
(OEP,IAT,PE là gì hôm nào rãnh tui tổng hợp cho các bạn)
Thường thường đối với một lọai packer, chúng ta tìm OEP giống nhau cho các chương
trình bị pack bằng packer đó. Khi các bạn biết cách tìm OEP rồi thì công việc này thật
nhàm chán. Vì nó chỉ là các thao tác lập lại mỗi khi chúng ta muốn unpack lọai packer
đó. Vì vậy để không phải mỗi lần chúng ta unpack là phải đem TUT MUP ra đọc, rồi
thao tác y chang như vậy để tìm OEP , các cracker đã dùng ngôn ngữ Script trong Olly để
“viết các thao tác nhàm chán” đó lư
u lại thành một file script . Khi unpack bạn chỉ cần
chạy file đó là Olly sẽ tự động tìm cho bạn OEP. Khỏe re phải không bạn. Hi`
Một trong những tay cracker của VN viết rất nhiều các script là lão hacnho. Các bạn hảy
vào website của lão ta mà tìm các script nhé: o

Mục đích của TUT này là giúp các bạn newbie chạy được một file script và làm quen với
ngôn ngữ script để hiểu được những gì các tác giả viết trong file script. Không khó lắm
đâu các bạn. Chúng ta học từ từ rồi sẽ Jbiết thôi mà.


1.CÀI ĐẶT OLLYDBGSCRIPT VÀ CHẠY MỘT FILE SCRIPT:



Cài đặt OllyScript theo các bước sau:
1. Đầu tiên bạn phải có OllyDbg đã được cài đặt sẳn.( Điều này là tất nhiên rồi)
2. Cài đặt 1 thư mục có tên là “plugins” trong thư mục chứa OllyDbg trên máy b
ạn.
3. Bạn download file ollyscript.dll trên mạng về và copy nó vào thư mục “plugins” đã tạo
ở trên
4. Mở OllDbg lên , vào menu options , chọn Appearance/Directories. Một dialog pops up
ra
5. Trong dialog vừa bật lên ta set “Plugin path” đến thư mục “Plugins” đã tạo ra ở trên.
6. Restart OllyDbg. Bây giờ OllyScript đã có trong menu Plugins .
7. Để chạy một script , ta chọn “Run script…” trong menu Plugins/OllyScript và chọn
file script và bạn muốn run.

2.GIỚI THIỆU VỀ NGÔN NGỮ SCRIPT:

Để viết các file script các bạn ko cần một chương trình sọan thảo riêng nào cả , chỉ cần
sọan thảo trong Notepad là được và lưu ra file có đuôi .txt hay gì cũng được, thỏai mái
như “lai cái” hi`hi`.
Bây giờ tui giới thiệu với các bạn cái ngôn ngữ script đơn giản này như đang giởn này:
Tui xài Olly 1.10 và Plugins v0.91. Các bạn hảy vào trang web Olly tải về nhé.
Đầu tiên tui xin giới thiệu về cái menu của nó

a-Menus:

Bạn vào menu Plugins của Olly, chọn OllyScript, ta thấy các menu con như sau:
-Run script…: Cho người sử
dụng chọn một file script và chạy nó.
-Abort : bỏ qua khi ko muốn script chạy tiếp
-Pause: Tạm ngừng script khi nó đang chạy

-Resume: Chạy tiếp khi script bị paused
-about: Thông tin về plugin này
Bây giờ chúng ta vào mục chính nhé:

b-Về Ngôn ngữ OllyScript:

Ngôn ngữ script trong olly tương tự về mặt ngôn ngữ như ngôn ngữ ASM. Nhưng khác ở
chổ nó ko cần phải biên dịch ra một file .exe , mà thực chất nó là một ngôn ngữ thông
dịch trong Olly. Nếu các bạn nào biết dùng ngôn ngữ Lisp trong AutoCAD thì Script
c
ũng tương tự như vậy trong Olly. Tại sao tui nói nó là ngôn ngữ thông dịch chứ ko phải
biên dịch, vì khi Olly khi run 1 script thì gặp lệnh nào là thực hiện ngay lệnh đó, chứ ko
phải biên dịch hết file script rồi mới chạy. Các bạn nên có khái niệm về vấn đề này.

i/Qui ước dữ liệu:

Đây cũng chính là Rule của OllyScript
Sau đây là một số quy ước của script về dữ liệu src (nguồn) và dest (đích) cho các lệnh
(như l
ệnh “MOV dest,src” chẳng hạn):
-Constant ( Hằng số): giống như ASM là 1 số hex, nhưng trong script không có những ký
hiệu trước hay sau số hex.
Ví dụ:
Trong script , một số hex được viết là 00FF chứ ko phải 0x00FF hay 00FFh
-Variable (Biến): Giống như Pascal, biến được mô tả sau từ khóa VAR nhưng ko cần
khai báo lọai biến vì chỉ có 1 lọai biến là số hex.
-Chỉ có một lọai thanh ghi 32-bit trong script như : EAX,EBX, ECX, EDX, ESI, EDI,
EBP, ESP, EIP. Không có thanh ghi 16-bit như AX , hay 8-bit như AL. Nhưng bạn có thể
dùng lệnh SHL/SHR và AND để
lấy giá trị của chúng.

-Tham chiếu đến một vùng nhớ nào đó ta cho địa chỉ nhớ nằm trong 2 dấu […. ]
Ví dụ:
[401000] : trỏ đến vùng nhớ tại địa chỉ 401000
[ecx] : trỏ đến vùng nhớ tại địa chỉ ecx
-Để dùng Flag (cờ) trong Script ta dùng dấu cảm thán “!” trước tên flag
Ví dụ: !CF, !PF, !AF, !ZF, !SF, !DF, !OF
-Byte string (chuổi byte, mỗi 1 byte là 2 số hex) để được script hiểu nó phải đặt trong 2
dấu thăng # và chuổi byte phải là số chẳn các số hex giữa 2 dấu # (2 số hex cho 1 byte
nên lúc nào cũng phải chẳn)
Ví dụ: #6A0000# (có 6 số là số chẳn chứa trong 2 dấu #)
-Hay hơn nữa là byte string có chứa wildcard là dấu “?”.
Ví dụ: #6A??00# hay #6?0000#
-Chuổi ký tự
trong Script được viết giữ 2 dấu “… ”
Ví dụ: chuổi ký tự benina là “benina”
-Đối với một số lệnh,để lấy giá trị của một biến ta đặt biến đó trong { }
Ví dụ:
Var x
Mov x,”00402222”
Mov eax,{x}======== >>eax=00402222
ii/Các biến riêng của Script:
Quote:
$RESULT
Đây là giá trị trả về của vài chức năng giống như chức năng FIND….

$VERSION

Biến này chứa version hiện hành của OllyScript
Ví dụ:
cmp $VERSION, "0.8"

ja version_above_08
iii/Comments (Ghi chú thích khi viết script):
Bất cứ khi nào tui muốn học một ngôn ngữ mới , việc đầu tiên tui phải học là cách
comment trong ngôn ngữ đó. Vì khi ta tiến hành viết lệnh, nếu ko ghi chú thích đầy đủ,
chừng nữa tiếng sau…. , tui ko biết tui đã viết gì…. tui ngu bẩm sinh mà. Vì vậy tui sẽ
giới thiệu với các bạn cách comment trong script như sau:
- Comment cho 1 dòng lệnh ta dùng “//” trước lời chú thích
- Comment một cụm lời chú thích ta đặt “/*” đầu cụm và “*/” cuối cụm chú thích

iv-Skeleton script (Nhân của m
ột script):

Như các bạn biết khi học pascal, một chương trình pascal chuẩn như sau:
Quote:
Program tenchuongtrinh
Khai báo biến, hằng, ….
Begin
Các lệnh;
End.

Cái đó chính là nhân của một chương trình pascal. Vậy nhân của script như thế
nào?.Thực ra trong OllyScript ko qui định về nhân, nhưng để qui định chung khi “thuở
ban đầu mới yêu nhau” , benina xin đề xuất một cái nhân như sau:
Quote:
/*=================
Tên Script
==================*/
Khai báo biến, includes …(Không bắt buộc)
Các lệnh Script
……………

…………
RET // Exits script

Thực chất ra các dòng comment về tên script ko cần thiết, nhưng chúng ta hảy tập thói
wen này để sau này dễ tra cứu script này làm gì.
Ở đây chúng ta thấy lệnh RET ở cuối file. Nó chính là lệnh thóat khỏi script trở về Olly.
Nó cũng tương tự như lệnh End trong Pascal thôi.


v-Chương trình đầu tiên của bạn:
Để cho đỡ buồn chán bây giờ tui sẽ hướng dẫn các bạn làm một file script đơn giản:
Các bạn hảy bật Notepad lên và sọan thảo một file .txt như
sau:
Quote:
/*///////////////////////////////////
Chuong tinh dau tien cua ban
/////////////////////////////////////*/
MSG “benina is a good newbie” // hiện hộp thọai
RET // exits script

Bây giờ các bạn hảy lưu file text trên vào một thư mục bất kỳ.Hảy bật Olly lên, chú ý: ta
hảy open 1 file .exe nào đó trong Olly rồi mới chạy script trên được nhé. Xong chưa các
bạn, bây giờ chạy script trên xem sao.
Bùm, nó hiển thị một dialog có dòng thông báo: “benina is a good newbie” đúng ko các
bạn. hêhê … Sau đó nó hiện 1 hộp thọai báo “Script .Jfinished”….vậy là ta viết script
được rồi…pó tay luôn
Sẳn đây tui giới thiệu với các bạn một lệnh sau:
Như các bạn biết, trong tut “Let’s cracking by Olly” mà tui đã viết , có nói về lệnh
comment cho các routine trong Olly (ko phải comment trong script nhe, đừng có lộn!).
Nó có phím tắt là button “;”. Khi sử dụng lệnh này các bạn sẽ chú thích được 1 ghi chú

trong của sổ CPU tại cột comment. Thưa các bạn, trong Script củng cho phép bạn thao
tác được như lệnh “;”. Chỉ thị sau tương tự như lệnh “;” trong Olly:
Quote:
CMT addr, text

Thêm vào dòng chú thích text tại địa chỉ addr
Ví dụ
:
Cmt eip, “This is the EP”

Như các bạn biết , thanh ghi eip chứa chỉ thị lệnh sắp thực hiện. Vì vậy khi open 1 file
trong Olly , eip luôn chứa chỉ thị lệnh đầu tiên của chương trình đó cũng chính là EP của
chương trình. Bây giờ ta viết lại script trên như sau:
Quote:
/*///////////////////////////////////
Chuong tinh dau tien cua ban
/////////////////////////////////////*/

MSG “benina is a good newbie” // hiện hộp thọai
Cmt eip, “This is the EP”
RET // exits script

Bạn hảy cho chạy script trên, và nó làm việc như ý chứ?. Bạn có thấy tại dòng lệnh đầu
tiên trong của sổ CPU của Olly có dòng comment “This is the EP” không?. OK!
Sở dĩ tui post lệnh cmt này trước cho các bạn vì trong TUT của lão hacnho hay sử dụng
cái lệnh này để ghi chú OEP đã tìm được. Bây giờ thì chúng ta đã lấn sâu vào Script một
chút rồi đấy.

Chú ý: Khi viết script , nhiều khi bị rối, chương trình chạy tầm bậy, ta muốn debug xem
script chạy sai chổ nào, chúng ta hảy ứng dụng lệ

nh MSG làm breakpoint trong script
nhé. Khi đó chương trình ngừng lại cho chúng ta xem xét…hihi.Hay các bạn dùng lệnh
sau là breakpoint cũng được:
Quote:
PAUSE

Tạm ngừng tiến trình script đang thực thi. Muốn resume tiếp tục thì ta vào menu plugins
/OllyScript/Resume
Ví dụ: trong file script ta đánh vào lệnh:
pause

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

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