1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracker Handbook 1.0 part 10 doc

6 268 2

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 143,6 KB

Nội dung

- ADC – Addition Carry: Cộng hai toán hạng, rồi lấy kết quả cộng tiếp với giá trị cờ Carry. - ADD – Addition: Cộng hai toán hạng. - AND – Phép toán logic: AND từng bit tương ứng hai toán hạng. - CALL – Call a procedure: Đưa vào Stack lệnh next. Sử dụng cho việc gọi hàm. - CLC – Clear Carry Flag: Set cờ CF = 0 tương tự cho CLD – Clear Direction Flag, CLI – Clear Interrupt Flag. - CMP – Compare: So sánh hai toán hạng. Việc so sánh này được thực hiện qua việc trừ toán hạng nguồn với đích nhằm set cờ tương ứng. Các toán hạng sau khi CMP không thay đổi giá trị. - CMPS, CMPSB, CMPSW, CMPSD – Compare String: So sánh chuỗi được trỏ đến trong bộ nhớ bởi DS:SI và ES:DI. B,W,D tương ứng: Byte, Word, Double. SI, DI tăng giảm tùy thuộc DF (1 giảm) tương ứng với việc CMP String từ trái qua phải or ngược lại. - CMPXCHG – Compare And Exchange: CMP EAX và toán hạng đích. Nếu bằng nhau thì toán hạng nguồn sẽ được Copy sang đích và ngược lại.d - DEC – Decrement: Trừ 1 cho toán hạng. CF không bị ảnh hưởng. - INC – InCrement: Cộng 1. - DIV – Divide (UnSinged): Thực hiện phép chia không dấu. EAX chứa kết quả không tính số dư. EDX chứa số dư: vd: DIV 6, 4 (EAX=1, EDX=2). - IDIV – Signed Integer Division: Thực hiện phép chia có dấu - MUL và IMUL: Phép nhân không/có dấu. Bảng các lệnh nhảy Condition và ASCII bảng nhỏ http://zombie.thehot50.com/Crack/Tuts/JumpCon_ASCsmall.zip Lưu ý Down về đổi thành .rar và dùng WinRar Extract. THẢO LUẬN Aladdin Lão Zombie có bảng tất cả các ngắt của dos, bios all version ko hehe ( có chú thích Vietnamese Zombie Hiện Zom có vài int DOS, BIOS v v Nhưng gọi là full thì không sure Ok Zombie sẽ cố nghiên cứu học thêm phần này rồi post tut Yeh! Đang soạn tut tổng kết unpack ASPack và ASProtect nên hơi busy chút Chờ chút hen !!! PS: Bà con có soft nào pack = 2 cu trên cho Zom xin với Chừng 2 soft cho mỗi packer để làm bài minh họa cho tut tổng kết So thanx !!! THE END (TẬP 1) Newbiez ices Softs with SoftIce. (Một số Khái niệm cần biết khi dùng SoftICE để Cracking.) Benina thu thập tùm lum các tài liệu. Trước khi đi tiếp các tut sau chúng ta cần một số hiểu biết sử dụng SoftICE để cracking ,đây là điều mà các newbie cần nhất đây (theo tui là thế). Trong tut 2A, ta đã dạo chơi sơ sơ trong SoftICE rồi . Bây giờ ta sẽ dạo chơi tiếp , nhưng chủ yếu là y tưởng để crack. Không đi chuyên sâu về cách sử dụng nhe. Bắt đầu hé, bạn leo lên xe đi , tui sẽ “chở “ bạn dạo chơi quanh phố SoftICE một lát…. I/ Đề - ba nhe. Go go… A ha Bạn có khái niệm về softICE làm gì chưa. Tui biết chắc bạn sẽ trả lời là debug (gở rối) chứ gì. Uhm ,đúng thế. Nhưng để biết nó debug như thế nào…hihi ,quan trọng đây….chắc phải tìm tut dạy debug bằng SoftICE để học rồi . Các tut viết về cách sử dụng SoftIce thì nhiều nhưng để ít tốn công sức của bạn tui viết tut này hướng dẫn từ chưa biết gì đến biết biết đôi chút về SoftICE .Mong rằng khi bạn đọc xong tut này ….hổng hiểu ….thì thôi chứ cũng đừng trách benina nhé.Vì…trình độ có hạn….nhưng tài năng thì …vô hạn… híhí Như bạn biết, SoftICE để gở rối (debug). Mục đích là thế. Nhưng nó gỡ rối như thế nào? Tui lấy ví dụ sau để cho bạn dễ hiểu. Ví dụ như: Khi bạn lập trình , chương trình của bạn bị sai tại 1 đọan mã nào đó, nhưng bạn ko biết sai ở đâu. Nếu ta dò từ đầu đọan mã đến cuối để xem nó tính tóan sai chổ nào thì …Hởi ơi ,Lạy Chúa, con sẽ ko học lập trình nữa điêu….(nhiều khi pó tay luôn ,ko dò ra nó nằm đâu). Tức là…. rất vất vã để làm chuyện ấy .Vì vậy người ta mới đẻ ra SoftICE. Nhưng nó giúp ta như thế nào?. Đơn giản thôi bạn ạ. Khi bạn nghi ngờ đọan mã nào sai thì bạn cho SoftICE ngắt chương trình trước đọan mã ấy. Sau đó bạn dùng SoftICE để dò (trace) từng dòng lệnh (routine) xem chương trình của ta bị sai ở chổ nào.[ Ở trên tui dùng 2 từ tiếng Anh là trace và routine để bạn có khái niệm ngay từ đầu và để sau này tui dể diễn đạt cho các bạn (vất vả lém em mới hiểu 2 từ trên đó ! hihi vốn là em bị stupid mà…)]. Típ nhe: Khi biết sai chổ nào rồi thì ta sẽ sửa chửa ,thay đọan mã ấy.Thế là xong debug.Cũng vất vã nhưng đỡ hơn nhiều phải ko các bạn. Ha ha, mấy ông cracker nhà ta đã dựa vào chức năng trên của SoftICE mà crack các chương trình đó bạn. Mấy ổng làm như sau: Như các bạn đã biết trong TUT 1A, dùng W32Dam dò từ điểm đuôi của đọan mã Password generator lên trên (mò lên) để tìm tử nguyệt của nó (thường là các lệnh jumps- nhảy khi ta nhập sai password), rồi patch (vá viếu) nó bằng HIEW. Đến đây coi như là crack xong. Vậy mấu chốt của vấn đề crack = cách trên là tìm cho ra điểm đuôi của đọan mã Password generator và tử nguyệt của chương trình. Nếu ko tìm ra điểm đuôi đó thì coi như pó tay…. Muốn tìm ra điểm đuôi, ta dựa vào các từ khóa hay những câu tiếng Anh mà chương trình hiển thị trong “hành vi” bắt ta register. Sau đó dùng W32Dasm để đến đuôi đọan mã Password generator mà MÒ LÊN để tìm ra tử nguyệt (Cách crack này tui gọi nôm na là CÁCH MÒ LÊN). Nếu chương trình che dấu các strings , mà W32Dasm ko tìm ra thì coi như …phụ sản… y’ lộn…phá sản. hihi. Vì vậy khi gặp trường hợp này, các cracker dùng SoftICE để “xử” nó. “Họ đã làm diều đó như thế nào?????????????????”.Mời bạn “ôm tui “ chặc một chút, chúng ta qua “ổ gà” nhe. Típ tục : Họ cho chương trình chạy đến đọan mã BẮT ĐẦU ĐĂNG KÝ REGISTRATION thì nhờ SoftICE ngắt chương trình tại đó, sau đó dùng SoftICE trace (dò) từng routine (dòng lệnh) để xem chương trình làm cái gì với thông tin đã nhập vào (như name và serial number.).Thường thì chương trình sẽ so sánh serial number do ta nhập vào với 1 number mà chương trình tạo ra dựa trên name hay các thông tin khác mà ta nhập trước đó-đây chính là số serial number correct tức là số serial chính xác ứng với tên name hay các thông tin khác mà ta đã nhập .Nếu đúng thì cho đăng ky’, sai thì out chứ sao…hihi. II/ Vậy công việc crack ở đây là……tui tóm nó lại như sau: - Bước 1 : Tại hộp thọai REGISTRATION ta nhập name và fake serial number (số serial giả định nào đó). - Bước 2 : Trước khi nhấn OK ta bật chương trình SoftICE lên (Ctrl-D) , đặt 1 điểm ngắt cho SoftICE (dùng lệnh đặt breakpoint : bpx hmemcpy, bpx getwindowtexta …) mục đích để nhảy vào đọan mã chương trình sau khi ta bấm OK để xem chúng xử l y thông tin của ta nhập vào như thế nào.Bướ này ta gọi là bước đặt bẩy (trap) - Bước 3 : Sau đó thóat khỏi SI (SoftICE) = cách press (CTRL-D). Lúc này ta đang ở tại hộp thọai REGISTRATION .Và bây giờ bạn nhấn button OK để SI ngừng chương trình tại điểm ngắt breakpoint mà ta đặt ở trên. - Bước 4 : Sau khi nhấn nút OK, SI sẽ ngắt chương trình và nhảy sổ ra màn hình. Bây giờ đến nhiệm vụ của chúng ta là xử ly’ những gì SI hiển thị trên màn hình. Đầu tiên là quan sát cửa sổ code (code window) xem như thế nào. Các bạn chú y’, phía dưới cửa sổ code là tên file của code đang nằm trong cái code window. Thường thì ko phải tên file của chương trình mà ta cần crack mà là :ví dụ KERNEL32…., hay USER32… Vậy là chúng ta đang đứng giữa cái hàm API mà ta đã đặt điểm ngắt. Trong cửa sổ code đang hiển thị code của hàm API không phải code của chương trình. Chúng ta bắt SI đi dến vùng code của chương trình bằng cách nhấn F12. Đến đây tui nói một chút về F12. Các bạn phải có 1 quan niệm quan trọng sau: SOFTICE KHÔNG BAO GIỜ ĐI DỰT CÀ LUI. Tức là không bao giờ bắt chương chạy ngược lại đọan mã của nó.Nó chỉ có tiến, tiến và tiến xuống đọan mã chương trình mà thôi. Vì vậy khi dùng SI để crack là dùng phương pháp MÒ XUỐNG đó bạn . hihi (mò xuống “phê” hơn mò lên…nhưng xong rồi lại đã điếu lém…khàkhà). Vậy chức năng của F12 chính là cho chương trình chạy tiếp đến cuối lệnh CALL thì ngừng .( Một số tut nói dùng F12 để “quay về” đọan mã chương trình ,làm cho các Newbie rất là mong lung. Không biết “đầu đuôi, đuôi đích” như thế nào, cứ tưởng là softICE chạy ngược được). Lại nói thêm về các hàm API: các hàm API khi thực hiện có khi lại gọi 1 hàm khác cũng là hàm API để làm tiếp công việc của nó. Rồi hàm vừa gọi lại gọi tiếp 1 hàm khác …hàm khác lại gọi 1 hàm khác nũa…chúng gọi nhau í ới. Vì vậy để đến đọan mã của chương trình cần crack, chúng ta có khi phải nhấn rất nhiều lần phím F12 để cho SI chạy đến cuối của rất nhiều hàm CALL và đến khi đến cuối hàm CALL trong đọan mã chương trình cần crack (hàm này gọi hàm API mà ta đặt điểm ngắt breakpoint).Khi đó phía dưới màn hình code window sẽ hiển thị tên file chương trình cần crack. Nhớ điều này nhe bạn. Đến đây bạn hiểu gì hông?. Tui thì ….mệt muốn đứt hơi luôn rồi. Xuống xe đi bạn , tui “chở’ bạn đi hết nỗi nữa rồi. Cho tui nghĩ một lát, rồi sẽ “chở” bạn dạo chơi quanh SI tiếp nữa nhe……hừ hừ hừ. Mệt quá má ơi Benina 27/07/2004 Chúng ta đã nghĩ mệt lâu quá rồi ( gần nửa tháng nay), hôm nay tui sẽ “cỏng “ bạn đi tiếp phần còn lại của tut “Newbiez ices softs with SoftICE”. Nào , tiếp tục. Phần đầu chúng ta đi đến đâu rồi nhỉ?. À, chúng ta đã biết cách dùng phím F12 trong SI rồi . Bây giờ chúng ta tìm hiểu về phím F11, có chức năng giông giống như phím F12 mà có một số tut về SI cũng có nói đến.Thường thì chúng ta lẫn lộn giửa 2 phím này , ko biết khi nào thì dùng F11 và khi nào thì dùng F12. Trong SI thực chất các phím F12 và F11 có chức năng như sau: F12=”^p ret;” F11=”^G @SS:ESP;” Như chúng ta biết, lệnh “^p” trong SI là lệnh cho thực hiện từng dòng lệnh .Vậy F12=”^p ret;” là lệnh thực hiện từng dòng lệnh cho đến khi gặp lệnh RET (lệnh trở về của hàm) thì ngừng. Muốn hiểu được chức năng của phím F11 , bạn phải hiểu STACK (Ngăn xếp) và địa chỉ trở về của hàm. Tui xin lấy ví dụ thật hay của PERTER NORTON - tác giả của AntiVirut làm ví dụ ở đây để giải thích về STACK và địa chỉ trở về: Chỉ thị Call trong chương trình cần lưu trữ lại địa chỉ trở về ở một nơi nào đó, để bộ xử l y’ biết đường trở về sau khi gặp lệnh RET. Chúng ta dùng 1 phần bộ nhớ, gọi là STACK , để lưu trử địa chỉ trở về . Tóm lại Stack là 1 phần của bộ nhớ , một chức năng của nó là chứa địa chỉ trở về của lệnh Call. Nó có cấu tạo . giửa 2 phím này , ko biết khi nào thì dùng F 11 và khi nào thì dùng F12. Trong SI thực chất các phím F12 và F 11 có chức năng như sau: F12=”^p ret;” F 11= ”^G @SS:ESP;” Như chúng ta biết, lệnh. đâu rồi nhỉ?. À, chúng ta đã biết cách dùng phím F12 trong SI rồi . Bây giờ chúng ta tìm hiểu về phím F 11, có chức năng giông giống như phím F12 mà có một số tut về SI cũng có nói đến.Thường. một lát, rồi sẽ “chở” bạn dạo chơi quanh SI tiếp nữa nhe……hừ hừ hừ. Mệt quá má ơi Benina 27 /07 / 200 4 Chúng ta đã nghĩ mệt lâu quá rồi ( gần nửa tháng nay), hôm nay tui sẽ “cỏng “ bạn đi

Ngày đăng: 03/07/2014, 17:20

TỪ KHÓA LIÊN QUAN