Cracking part 35

Chia sẻ: Dqwdasdasd Qwdasdasdasd | Ngày: | Loại File: PDF | Số trang:6

0
38
lượt xem
4
download

Cracking part 35

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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 đó .

Chủ đề:
Lưu

Nội dung Text: Cracking part 35

  1. 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é: http://www.hacnho.nhandan.info 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:
  2. Để 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
  3. [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, ….
  4. 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
  5. 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 ----------
  6. 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  
Đồng bộ tài khoản