REC Studio 4 – How to Use

link: http://www.backerstreet.com/rec/en/how_to_use.html

 

REC Studio 4 – Cách sử dụng

 

Do phiên bản này vẫn là bản thử nghiệm, các giao diện người dùng yêu cầu phải luyện tập trài nghiệm. Bằng cách làm theo các hướng dẫn đơn giản, bạn sẽ có được kết quả tốt nhất từ Rec Studio:

Khởi động Rec Studio thực thi. Bạn sẽ thấy cửa sổ Welcome page với một danh sách các trình đã mở trước đó. Lần đầu bạn có thể không nhìn thấy Command View, Project View và khung Proc Info View. Thay đổi kích thước cửa sổ thấp hơn để chúng hiện lên; sau đó bạn có thể kéo từng khung giao diện vào vị trí ưa thích đến các vùng bất kì trên  khung chính.

Sử dụng File> New Project … để tải một file thực thi. file thực thi có thể là các file Windows PE (EXE, DLL), File chạy trong Linux ELF, các file Mac OS X Macho hoặc file nguyên gốc. Mức hỗ trợ cho mỗi định dạng khác nhau, với Windows PE sẽ có sự hỗ trợ tốt nhất.

 

Trước khi rời Rec Studio, lưu trạng thái hiện tại của công trình với File> Save Project As …, do đó bạn có thể tải lại trạng thái trong lần tiếp theo bạn khởi động trình biên dịch.

 

Các file project (.rpg) lưu trữ thông tin đã nhập bởi người sử dụng giúp trình biên dịch tạo ra đầu ra tốt hơn.

Sau khi tải một dự án hoặc một tập tin thực thi, khung giao diện bộ phận phân tách được tự động mở tại các điểm vào của các ứng dụng (hoặc tại màn hình chính nếu những biểu tượng có sẵn). Mô hình kết hợp được sử dụng để cố gắng phát hiện các trình tự nhập và có thể xác định các ký hiệu để giúp xác định các chức năng cấp cao hơn.

 

Nếu bạn không nhìn thấy bất kỳ biểu tượng trong cửa sổ dự án, điều hướng trong Chế độ xem bô phận phân tách Disassembler View với Page Up và Page Down , hoặc gõ lệnh “dis 0xXXXXX” để hiển thị một địa chỉ cụ thể. Một khi bạn xác định sự bắt đầu của một thủ tục, nhấp chuột phải vào địa chỉ ở bên trái của lệnh nhập và chọn “Set Procedure Entry” từ menu pop-up. Điều đó sẽ bắt đầu phân tích mã từ chỉ dẫn đó; các phân tích sẽ cố gắng để tìm thấy bất kỳ thủ tục khác gọi là đệ quy. Vào cuối của phân tích các thủ tục phát hiện, nếu có, sẽ được thể hiện trong các Project View.

 

Double-click vào bất kỳ địa chỉ quy trình trong các Project View (hoặc gõ lệnh “rec 0xXXXXX” trong Command View), để biên dịch ngược quy trình đặc biệt. Đầu ra biên dịch ngược sẽ được hiển thị trong một tab riêng trong khu vực trung tâm.

 

Sử dụng lệnh “help” lệnh để xem danh sách các lệnh được hỗ trợ.

 

Lệnh  “decomplie output–file-path ” lệnh sẽ biên soạn lại toàn bộ thực thi vào tập tin văn bản quy định.

 

Lệnh “filemap” hoặc View> File Map lệnh cho thấy cách bố trí của các tập tin thực thi. Mỗi liên kết được hiển thị sẽ cố gắng mở rộng các phần cụ thể của tập tin.

 

Các chuỗi lệnh “strings” cho thấy các chuỗi ASCII đã được phát hiện trong các tập tin.

 

Lệnh “call tree” cho thấy phương thức gọi định phương thức khác. Chức năng này vẫn còn có một số vấn đề và có thể  gây sụp đổ các ứng dụng.

 

Lệnh “showeprocs” hiển thị thống kê về tất cả các quy trình được phát hiện. Trong tương lai, nó sẽ có thể thay đổi các thuộc tính của một quy trình, chẳng hạn như kích thước và vị trí của thuộc tính hoặc đối số đầu vào.

 

Lệnh “add-proc-dest ” được dùng để chỉ định điểm đến của một lệnh gọi gián tiếp nếu trình biên dịch ngược Decompiler không thể tính các điểm đến tự nó. Cung cấp các điểm đến cho tất cả các bước nhảy gián tiếp và gọi là cực kỳ quan trọng để nâng cao chất lượng đầu ra biên dịch ngược. Lệnh được sử dụng như “add- proc-dest 0xXXXXXX 0xYYYYYY” nơi 0xXXXXXX là địa chỉ của lệnh gọi và 0xYYYYYY là địa chỉ của đối tượng được gọi.

Lệnh “add- comment” có thể được sử dụng để lưu ý kiến để các đầu ra được tách rời, giúp ghi nhớ những gì một đoạn mã thực hiện.

 

Tất cả các thông tin bạn nhập vào các lệnh này được bảo tồn khi bạn lưu dự án với lệnh File> Save Project As …

 

Tải tập tin nhị phân

 

Rec Studio có thể tải các tập tin nhị phân của định dạng chưa được xác định. Trong trường hợp này, bạn sẽ thấy những bãi chứa hex của tập tin. Bạn có thể áp đặt một cấu trúc trên các tập tin nhị phân với lệnh “def-segment“, được sử dụng như thế này: def-segment -o 0xOFFSET -a 0xADDRESS -l 0xLENGTH -t TYPE” nơi TYPE là ‘r’, ‘w’ , ‘x’, ‘d’, ‘i’ để đọc, viết, thực thi, dữ liệu, thông tin, tương ứng.

 

Nếu bạn muốn rã mã nguồn nội dung của một tập tin nhị phân, bạn phải sử dụng “def-cpu” để cho Rec Studio biết mà xử lý sử dụng để hiển thị các tháo gỡ. bộ vi xử lý được hỗ trợ là: x86, x86_64, MIPS, m68k, Sparc, PowerPC.

 

Dưới đây là một danh sách của tất cả các lệnh và các thông số của chúng:

 

pe-dump – [htsierdbcf] Các nội dung của khu vực PE COFF khác nhau trong các tập tin nhị phân.

 

-h Hiện tiêu đề PE COFF

-t Hiện bảng biểu tượng PE COFF

-s Hiện bảng chuỗi  PE COFF

-i Hiện Biểu thuế nhập khẩu PE COFF

-e Hiện bảng xuất khẩu PE COFF

-r Hiện bảng nguồn PE COFF

-d Hiện bảng PE COFF debug (giới hạn)

-b Hiện bảng cơ sở di dời PE COFF

-c Hiện bảng chứng nhận PE COFF

-f Hiện bảng cấu hình tải PE COFF

 

mac-dump – [ht] Hiển thị Trang nội dung của khu vực Mach-O khác nhau trong các tập tin nhị phân.

 

-h Hiện tiêu đề Mach-O

-t Hiện bảng biểu tượng Mach-O

 

elf-dump – [htsy] Hiển thị nội dung của khu vực ELF khác nhau trong các tập tin nhị phân.

 

-h Hiện tiêu đề ELF, tiêu đề chương trình và các tiêu đề đoạn

-t Hiện bảng biểu tượng ELF

-ty Hiện bảng ký hiệu động ELF

-s Hiện  bảng chuỗi ELF

-y Hiện phần năng động ELF

 

help – hiển thị danh sách của tất cả các lệnh

jumptbls -j jumpAddr -t tableAddr -n numDests -m {a4 | a8 | o2 | o4 | o8} xác định một bảng nhảy gián tiếp

 

-j jumpAddr: xác định địa chỉ của Câu lệnh nhảy gián tiếp

-t tableAddr: xác định địa chỉ của bảng dữ liệu được sử dụng bởi các lệnh nhảy gián tiếp. bảng dữ liệu này được sử dụng để có được địa chỉ của những khu có thể có của các bước nhảy gián tiếp.

numDests -n: xác định có bao nhiêu mục có trong bảng, đó là, làm thế nào nhiều điểm càng tốt có thể đạt được từ các lệnh nhảy.

-m {a4 | a8 | o2 | o4 | o8}: quy định các chế độ của việc tính toán địa chỉ. a4 có nghĩa là các bảng địa chỉ chứa địa chỉ, mỗi 4 byte chiều dài; tương tự, a8 có nghĩa là bảng địa chỉ chứa địa chỉ tuyệt đối, mỗi 8 byte chiều dọc. o2 có nghĩa là bảng chứa offsets từ các Câu lệnh nhảy, mỗi 2 byte chiều dọc; o4 hiệu số là 4 byte; o8 hiệu số là 8 byte.

Tại thời điểm này, chỉ có chế độ a4 và a8 được thực hiện.

type-tree type_name Hiển thị phân cấp kiểu cho các loại quy định. Các hệ thống phân cấp cho một typedef bao gồm cốt lõi.

chuỗi Strings Hiển thị danh sách các chuỗi phát hiện. Một chuỗi là một chuỗi các ký tự ASCII. Chương trình cố gắng xác định chuỗi bằng cách tìm kiếm trong vùng dữ liệu cho một chuỗi các ký tự ASCII đủ lâu để được coi là một từ hoặc câu.

calltree Hiển lênh call tree, đó là chức năng mà được gọi bằng những chức năng khác.

showsyms Hiển thị danh sách các địa chỉ tên (bảng biểu tượng ở mức độ thấp). Đây có thể bao gồm các biến, pseudo-biểu tượng, nhãn người dùng định nghĩa, vv

proc- range lệnh này không được thực hiện.

rec -a addr [v] [-O] dịch ngược một thủ tục.

 

-a addr: xác định địa chỉ của các thủ tục để dịch ngược

-O0-9: Xác định mức tối ưu. Mức giống một thể hiện trong View + Options menu.

-vbpilf: hiển thị nhiều thông tin chi tiết: thông tin b = chặn thông tin, p = proc information, l = thông tin đời biến, f = thông tin khung thủ tục.

 

Copyright © 1997 – 2015 Backer Street Software – All rights reserved.

 

Advertisements