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

Cracker Handbook 1.0 part 215 pps

6 101 1

Đ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 224,72 KB

Nội dung

Vậy là 0x0040131A = 0x004012F1 + 0x29 1. Lệnh nhảy này được nằm tại .CODE section. Nếu như Reference là một lời gọi (CALL) thì trong IDA nó sẽ được thể hiện như sau : Một trong những tính năng tuyệt vời khác của IDA đó chính là việc thể hiện các biến được dùng trong chương trình.Thậm chỉ bạn có thể nhấn đúp chuột vào chúng để đi tới địa chỉ nơi mà các biến được lưu trữ : Lea edi, [esp + 1B8h + var_104] Một trong những tính năng khiến cho IDA trở thành một công cũ rất mạnh đó chính là việc sử dụng Flirt Signatures. Giải thích một cách đơn giản nhất đó là trong quá trình disassembly IDA cố gắng nhận diện chính xác các hàm thư viện có liên quan với trình biên dịch. Ví dụ : Wow các bạn có nhận thấy sự khác biệt không? Riêng tôi thì IDA quả là tuyệt, nó nói cho ta tất cả mọi thứ, rõ ràng như ban ngày. Một số tính năng khác tương tự với W32Dasm đó là “Goto code location” thì trong IDA là “Jump-Jump to Address”. Hay “Goto entrypoint” thì trong IDA sẽ là “Jump – Jump to entry point”. Đó là một số tính năng quan trọng nhất khi chúng ta bắt đầu con đường chinh phục IDA. Ah tôi quên mất, trong IDA còn một tính năng khá thú vị nữa đó chính là thỉnh thoảng chúng ta thấy có rất nhiều đoạn như sau ‘db’ mà lại không thấy có các String References, nhưng đó lại chính là những đoạn code. Chỉ việc trỏ chuột vào và nhấn phím tắt C trên bàn phím, ngay lập tức IDA sẽ chuyển nó thành code. Ví dụ như sau : Còn lý do tại sao chắc tôi sẽ viết một bài về việc làm thế nào để hiểu một đoạn code có ý nghĩa gì.Đến đây coi như là kết thúc quá trình tôi cùng các bạn tìm hiểu một số tính năng của IDA. Sau khi bạn đọc bài viết này của tôi có thể bạn sẽ đặt cho mình một câu hỏi “Liệu tôi có nên tiếp tục sử dụng W32Dasm nữa không”, câu trả lời nằm ở chính bạn.Còn riêng với cá nhân tôi, tôi sẽ vẫn giữ lại W32Dasm vì trong một số trường hợp đơn giản nó vẫn rất có ích. III. Lời kết Vậy là tut này đến đây là kết thúc, 7 trang giấy trong bài viết này không thể nói hết được những tính năng rất mạnh của IDA. Chỉ có thực sự bắt tay vào công việc chúng ta mới thấy được, mới tìm hiểu được những tính năng rất mạnh của nó. Không lý do gì mà IDA lại được giới Reverser cũng như giới Security yêu thích đến thế, chắc chắn nó sẽ có nhiều điều thú vị nữa khiến cho mọi người đều đam mê. Bài viết này của tôi chỉ là một phần nhỏ giới thiệu về IDA, hi vọng nó đã mang đến cho các bạn một cái nhìn khác về chương trình Disassembly rất mạnh này.Rất cảm ơn anh em đã dành thời gian đọc nó. PS : Hi vọng anh TQN, Thug và light.phoenix có thời gian viết vài bài cho anh em mở rộng tầm mắt  Best Regards _[Kienmanowar]_ ++ ==[ Greatz Thanks To ]== ++ My family, Computer_Angel, Moonbaby , Zombie_Deathman, Littleboy, Benina, QHQCrker, the_Lighthouse, Merc, Hoadongnoi, Nini all REA‘s members, TQN, HacNho, RongChauA, Deux, tlandn, light.phoenix, dqtln, ARTEAM all my friend, and YOU. ++ ==[ Special Thanks To ]== ++ - coruso_trac, pat, trm_tr. Thug4lif3, vn_blackrain, v v and all brothers in VSEC ++ ==[ Thanks To ]== ++ iamidiot, WhyNotBar, trickyboy, dzungltvn, takada, hurt_heart, haule_nth, hytkl v v các bạn đã đóng góp rất nhiều cho REA. Hi vọng các bạn sẽ tiếp tục phát huy  >>>> If you have any suggestions, comments or corrections email me: kienbigmummy[at]gmail.com Understanding Code Author: _[kienmanowar]_ “Cuộc sống luôn đầy cám dỗ Ngày ngày níu kéo con người Làm sao thắng được chính mình Làm sao Ngựa non lớn lên thường háu đá Tuổi trẻ nào suy tính gì Nên đi tới con đường bế tắc Chìm sâu trong bóng tối” I. Intro : Chào tất cả anh em REA, chúng ta lại gặp nhau trong bài viết này của tôi viết về “Understanding Code”. Đây là bài viết của tác giả Kwazy Webbit, đề cập tới vấn đề đọc hiểu code của các chương trình được Disassembly bằng W32Dasm, IDA v v Tại sao tôi lại chọn nó là chủ đề cho bài viết thứ 3 này bởi vì một lý do hết sức đơn giản, có đọc hiểu code chúng ta mới biết được chương trình đang làm gì, đoạn code mà chúng ta đang RE được dùng vào mục đích gì, đề từ đó có những thay đổi chỉnh sửa sao cho hợp lý để phục vụ mục đích của chúng ta. Hầu hết những anh em tôi quen biết đến với RE, Cracking theo những cách thức khác nhau, có người muốn chỉ trong một thời gian ngắn có thể Crack được một phần mềm mà không cần tìm hiểu xem tại sao lại làm như thế, nhiều người chỉ thực hiện theo các tut một cách dập khuôn, ăn sẵn để rồi cuối cùng vẫn luẩn quẩn với những câu hỏi “Tại sao lại làm như thế ?” , “Tại sao tôi làm thế không được ?” v…v… mà không hề có một chút đầu tư nghiên cứu tìm hiểu, nhưng ngược lại có những người đi từ những viên gạch đầu tiên, từ từ từng bước một, những viên gạch của quá trình lạo động tìm hiểu nghiêm túc, tốn nhiều mồ hôi, nước mắt để rồi bù lại họ có được những kiến thức làm tôi kinh ngạc.Có những người còn rất trẻ và những người lớn tuổi hơn tôi, có người chuyên về IT và cũng có người không. Nhưng những người đó đã để lại cho tôi lòng khâm phục bởi tinh thần làm việc nghiêm túc, lòng đam mê, sự chia sẻ kiến thức tới cộng đồng không hề vụ lợi. Việc chúng ta tìm hiểu xem một đoạn binary biểu diễn ý nghĩa gì là một công việc quan trọng.Các đoạn mã thực thi và dữ liệu được biểu diễn ở mức thấp nhất đó là tập hợp của các bit 0 và 1.Bạn có thể cố gắng cho thực thi một đoạn dữ liệu như một đoạn mã, nhưng hầu hết trong các trường hợp việc làm này sẽ dẫn đến crash.Lấy ví dụ, việc cố gắng để sử dụng một đoạn mã thực thi như là một Picture data cũng sẽ là không hợp lệ hoặc ngược lại, nhưng đó chỉ là một sự ngẫu nhiên nào đó mà thôi. Đó là bởi vì có một cấu trúc để biểu diễn chúng khiến cho chúng không chỉ đơn thuần là binary mà còn bao hàm nhiều ý nghĩa khác. Để giúp ích cho bạn, bạn cần phải tìm hiểu về cấu trúc này và từ đó sẽ diễn dịch được nó theo đúng cách. Để cụ thể hơn, tôi sẽ lấy một ví dụ, chẳng hạn tôi có 4 con số như sau : 112, 43, 149, 184 Như các bạn thấy chúng có thể mang rất nhiều ý nghĩa. Nếu như tôi nói với bạn rằng đây là ví dụ về một đường thẳng, và hãy tưởng tượng rằng đây là một đường thẳng 2 chiều, bắt đầu tại tọa độ thứ nhất là (112, 43) và kết thúc tại tọa độ thứ hai là (149, 184). Tuy nhiên nếu như có ai đó lại nói với bạn là đây chính là một hình vuông, liệu bạn có tin không? Tôi thì tin liền khà khà bởi vì đơn giản tôi nghĩ đây là một hình vuông với 4 các tọa độ của nó. Như các bạn thấy, 4 con số trên có rất nhiều ý nghĩa đúng không, tất cả chúng đều phụ thuộc vào sự suy diễn của bạn và tôi. Điều này sẽ dẫn đến nhiều vấn đề, làm sao chúng ta . Vậy là 0x 004 01 3 1A = 0x 004 01 2 F1 + 0x29 1. Lệnh nhảy này được nằm tại .CODE section. Nếu như Reference là một lời gọi. đúng cách. Để cụ thể hơn, tôi sẽ lấy một ví dụ, chẳng hạn tôi có 4 con số như sau : 11 2, 43, 14 9, 18 4 Như các bạn thấy chúng có thể mang rất nhiều ý nghĩa. Nếu như tôi nói với bạn rằng. rằng đây là một đường thẳng 2 chiều, bắt đầu tại tọa độ thứ nhất là (11 2, 43) và kết thúc tại tọa độ thứ hai là (14 9, 18 4). Tuy nhiên nếu như có ai đó lại nói với bạn là đây chính là một hình

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

TỪ KHÓA LIÊN QUAN