OLLYDBG LÀ GÌ

Trước khi trsinh sống nên trứ danh vào giới phân tích mã độc, OllyDbg được dùng chủ yếu để craông xã ứng dụng. OllyDbg từng là chọn lựa debugger bậc nhất đối với các Chuyên Viên so với mã độc với Chuyên Viên khai quật lỗ hổng phần mềm cho tới khi mã nguồn của OllyDbg 1.1 được thâu tóm về bởi Immunity với thay tên thành ImmDbg. ImmDbg được phát triển nhằm mục đích vá những lỗi trong OllyDbg, thêm vào một trong những trình thông ngôn Pyeo hẹp cùng tìm hiểu những Chuyên Viên khai quật lỗ hổng phần mềm, nhiều người yêu thích ImmDbg hơn OllyDbg. do vậy Có nghĩa là OllyDbg 1.1 ko hơn gì ImmDbg, những thao tác làm việc cơ bạn dạng bên trên OllyDbg vào cmùi hương này cũng có thể vận dụng tương tự như bên trên ImmDbg, cơ mà một số plug-in lên trên OllyDbg sẽ không thể sử dụng tiện lợi trên ImmDbg. ImmDbg có ưu điểm riêng của nó, ví dụ điển hình cung cấp giỏi các Pynhỏ nhắn API.quý khách hàng vẫn xem: Phần mềm ollydbg

Đừng ngại ngùng áp dụng OllyDbg phiên phiên bản mới nhất. Chuyên ổn gia bình yên mạng Nguyễn Việt Anh của tamquoccola.com đã thực hiện một nội dung bài viết nđính thêm chỉ dẫn chúng ta có tác dụng quen cùng thực hiện OllyDbg vào đối chiếu mã độc.

Bạn đang xem: Ollydbg là gì

Nạp một mã độc vào OllyDbg

Có nhiều phương pháp để nạp một mã độc vào OllyDbg. Ta có thể hấp thụ trực tiếp tệp tin triển khai hoặc DLL. Trong trường hợp mã độc đang hoạt động bên trên hệ thống, ta có thể gán tiến trình của chính nó vào OllyDbg..

Mtại 1 tệp tin thực thi

Cách rất tốt nhằm debug một mã độc là tạo ra một các bước new cho nó. Chọn File > mở cửa cùng điền tđam mê số đầu vào giả dụ cần thiết. Ta chỉ rất có thể truyền tsay đắm số cái lệnh trên đoạn này.


*

Sau kia, loader của OllyDbg vẫn hấp thụ file xúc tiến tựa như như OS loader. Mặc định, OllyDbg đã dừng trên entry point chỉ định và hướng dẫn bởi lập trình sẵn viên, nhỏng WinMain ví dụ điển hình, giả dụ nó xác minh được địa điểm của entry point kia. Nếu ko, OllyDbg vẫn ngừng trên entry point khái niệm trong PE header. Ta hoàn toàn có thể tùy chỉnh thiết lập một số tùy lựa chọn khởi rượu cồn trong bảng chọn Debuggin Option (Options > Debugging Options). Chẳng hạn, để ngắt ngay lập tức trước khi thực hiện bất kỳ loại code làm sao như thế nào công tác, ta chọn System Breakpoint…


*

Gán một tiến trình đang làm việc vào OllyDbg

File > Attach với chọn process nhằm attach. Nếu có hơn một process tất cả và một tên, nên riêng biệt qua PID. OllyDbg sau đó đã ngắt với giới hạn lịch trình cùng số đông thread của nó.


*

Code của thread đang được thực hiện sẽ được hiện trên màn hình OllyDbg. Ta rất dễ dàng dừng thread đúng lúc nó vẫn triển khai code xuất phát điểm từ một DLL khối hệ thống. Tất nhiên, ta ko bao giờ mong mỏi so với một thư viện Windows làm cái gi và cách đơn giản dễ dàng nhằm tránh vấn đề này là đặt một breakpoint tại code section. Chương trình sẽ tiến hành ngắt trên lần tới Khi nó truy vấn code section.

Giao diện của OllyDbg

Sau khi hấp thụ một chương trình, bối cảnh thiết yếu của OllyDbg nhỏng hình bên dưới.


*

Cửa sổ dịch ngược – góc trái-bên trên – hiển thị con trỏ lệnh cùng vùng lệnh thực hiện của công tác được debug bao phủ địa chỉ nhỏ trỏ. Để sửa đổi lệnh hoặc tài liệu tuyệt thêm lệnh bắt đầu, cliông chồng vào trong dòng lệnh và nhấn vết spacebar.


*

Cửa sổ thanh ghi – góc phải-bên trên – hiển thị tâm trạng hiện tại của những thanh hao ghi nhưng chương trình được debug sẽ áp dụng. Các tkhô cứng ghi này đã chuyển màu sắc từ black sang trọng đỏ giả dụ lệnh vừa triển khai sửa đổi quý hiếm của thanh khô ghi.Ta có thể sửa đổi dữ liệu trong hành lang cửa số tkhô nóng ghi bằng cách double cliông chồng vào quý hiếm của tkhô nóng ghi tương xứng.


Cửa sổ stack – góc phải-dưới – thể hiện trạng thái hiện giờ của stachồng vào bộ nhớ. Cửa sổ này luôn luôn hiển thị đỉnh staông xã của một thread cố định. Ta rất có thể thống trị stachồng bằng cách click cần vào địa chỉ hoặc quý giá của vùng ghi nhớ cùng lựa chọn Modify. OllyDbg cũng auto thêm bình luận (cột mặt đề nghị quý hiếm vùng nhớ) cho một số quý hiếm stack nhằm bộc lộ những tmê mệt số trước khi bọn chúng được truyền sang 1 lời gọi hàm.



Memory Map

View > Memory (Alt+M), hiển thị đông đảo memory blochồng cấp phép mang lại công tác được debug.

Xem thêm: Nghĩa Của Từ Cast Off Là Gì ? Nghĩa Của Từ Cast Off Trong Tiếng Việt


Memory bản đồ giúp ta quan giáp phương pháp lịch trình được sắp xếp trên bộ lưu trữ. Trong hình, trình xúc tiến được gán nhãn cùng với những code section với data section. Mọi DLL với những section của bọn chúng cũng khá được bộc lộ vào memory map. Ta chỉ việc double cliông xã tại bất kể chiếc làm sao để vào memory map để xem memory dump của section đó. Ta cũng có thể gửi tìm hiểu section đó bên trên cửa sổ dịch ngược bằng cách clichồng đề xuất cùng chọn View in Disassembler.


Năm 2018 Xu thế tiến công trải qua phần mềm ô nhiễm và độc hại ko tập tin lên ngôi

Rebasing

Memory bản đồ rất có thể tạo điều kiện cho ta gọi một PE file được rebase trong những lúc xúc tiến như thế nào. Rebasing là làm việc xảy ra lúc 1 module vào Windows không được hấp thụ vào can hệ base address hướng đẫn của nó.

Base Address

Mọi tệp tin PE vào Windows đều có một base address chỉ định và hướng dẫn, được quan niệm là quý giá image base trong PE header.

Image base không hẳn là liên tưởng nhưng mà mã khác biệt thiết yêu cầu được nạp vào đó, mã độc chỉ ưu tiên shop kia. Đa số những trình thực thi có thiết kế để nạp vào bộ nhớ ở khu vực 0x00400000, là tương tác mang định được áp dụng mởi nhiều trình biên dịch bên trên Windows. Developer có thể lựa chọn một liên can khác làm base image.

ASLR (address space layout randomization – sắp xếp không khí lưu giữ ngẫu nhiên)

Cấp tái phát (relocation) vùng hãy nhớ là quan trọng vì chưng một vận dụng có thể import các DLL, từng DLL lại sử dụng một base address chỉ định nhưng mà nó ý muốn được nạp vào bộ nhớ lưu trữ ở khu vực đó. Nếu 2 DLL được hấp thụ và chúng phần lớn chỉ định và hướng dẫn ưu tiên nạp vào thúc đẩy 0x10000000, chúng không thể cùng được hấp thụ vào ảnh hưởng kia. Windows đang hấp thụ một DLL vào liên can kia và kế tiếp cấp phép lại một vùng lưu giữ không giống đến DLL còn sót lại.

Hầu hết các DLL có sẵn vào Windows OS đều sở hữu base address hướng đẫn không giống nhau với chúng đang không trở nên xung đột nhiên. Tuy nhiên, các vận dụng bên sản phẩm công nghệ ba thường xuyên chỉ định và hướng dẫn phổ biến một base address.

Địa chỉ tuyệt vời và hoàn hảo nhất với Địa chỉ kha khá (Absolute-Relative)

Thủ tục cấp phép lại tinh vi hơn là chỉ vấn đề nạp đoạn code vào trong 1 ảnh hưởng không giống. đa phần lệnh hướng đẫn tới rất nhiều cửa hàng lưu giữ kha khá tuy nhiên một vài lệnh lại làm việc cùng với đa số cửa hàng ghi nhớ cụ thể.


3 lệnh trên hầu hết được thực hiện trơn tuột tru nhưng mà ko quyên tâm chúng được nạp vào bộ nhớ ra sao vày bọn chúng cần sử dụng liên can tương đối. Nhưng lệnh truy vấn dữ liệu trên 0x40120C sẽ không thể tiến hành được vày nó sử dụng can dự hoàn hảo nhất nhằm truy vấn cho tới một vùng nhớ. Nếu tệp tin triển khai được nạp vào bộ lưu trữ trên một vùng ghi nhớ khác cùng với base location hướng dẫn và chỉ định, lệnh 0x40120C sẽ chạy sai. Đa số DLL được đóng gói với 1 list vùng nhớ hiệu chỉnh trong .reloc section của PE header.

Các DLL được hấp thụ sau .exe cộ với không phải theo một trình từ làm sao không giống. Như vậy ta quan yếu dự đoán trước được DLL nào sẽ được rebase vào bộ lưu trữ ra sao. Nếu một DLL vừa bị thiếu relocation section vừa mới được nạp không đúng cùng với base address hướng đẫn của nó, DLL sẽ không được nạp.

Thủ tục cấp phát lại bộ nhớ lưu trữ cho các DLL gồm năng suất rẻ với làm kéo dãn thời hạn nạp DLL. Trình biên dịch hay sử dụng phổ biến một liên can làm base address mặc định mang lại đều DLL khiến cho Việc cấp phép lại vùng nhớ gần như là điều thế tất. Một lập trình sẵn viên tốt đề nghị chú ý tới vấn đề đó với hướng dẫn và chỉ định một base address riêng biệt cho DLL của bản thân mình để tránh câu hỏi phải cấp phép lại vùng nhớ mọi khi DLL được hấp thụ.


Nếu quan tiền gần kề PEiDLL vào IDA trong những lúc sẽ debug chương trình QUnpaông chồng, những hệ trọng trong PEiDLL là không thống duy nhất thân IDA và debugger bởi IDA không có hình thức so sánh hiện tượng lạ rebasing vào thời hạn thực hiện. Để rời bắt buộc thường xuyên hiệu chỉnh lại những liên can tuyệt đối hoàn hảo của PEiDLL vào IDA, ta buộc phải triển khai nạp bằng tay thủ công (manual load) trên bước nạp DLL này vào IDA.