Quote:
Upack is a packer that can compress Windows PE file,
which can be run without decompressing manually.
(readme)
45-ArmaInline
Quote:
ArmInline is an Armadillo unpacking tool designed specifically
to deal with the 'Strategic Code-Splicing' antidump feature available
with private builds of Armadillo 3.x-4.x. It 'revirgin's the spliced code
by recursively identifying and removing the redundant opcodes, rather than
dumping and patching in a VirtualAlloc, and so it adds nothing to the
size of your dump.
(readme)
46-GetDlgItem
Quote:
The GetDlgItem function retrieves the handle of a control in the specified
dialog box.
(win32.hlp file)
47-MessageBox
Quote:
The MessageBox function creates, displays, and operates a message box.
The message box contains an application-defined message and title,
plus any combination of predefined icons and push buttons
(win32.hlp file)
48-RegCreateKeyEx
Quote:
The RegCreateKeyEx function creates the specified key.
If the key already exists in the registry, the function opens it.
(win32.hlp file)
49-RegQueryValueEx
Quote:
The RegQueryValueEx function retrieves the type and data for a
specified value name associated with an open registry key.
(win32.hlp file)
50-GetPrivateProfileString
Quote:
The GetPrivateProfileString function retrieves a string from the
specified section in an initialization file. This function is provided
for compatibility with 16-bit Windows-based applications
(win32.hlp file)
51-Packer là trình nén và mã hoá các File Exe, Dll. Có nhiều loại Packer khác
nhau, có loại chỉ có nhiệm vị nén cho dung lượng nhỏ như: UPX, ASpack,
NSpack, WinUpack Còn có loại vừa nén vừa mã hoá file như: Asprotect,
Armadillo, Execryptor, ENIGMA protector , Acprotect có quá chời loại packer
nên cần dùng tools với các chữ ký của từng loại packer để xác định coi nó thuộc
dạng nào. PEiD và RDG là 2 công cụ thực hiện công việc trênd. Theo hình trên thì
em có thể đoán là có thể là PE-Armor, ENIGMA protector hoặc WinUpack. Tốt
nhất bác cho link Target bác đang xử để bít chính xác hơn.
(why not bar)
PEiD, How to use [Tut]
Copyright by Zombie - REA.fareastking.com
Quote:
Homepage:
Forum:
Download:
eases/PEiD.zip
Plugins:
PEiD là chương trình nhỏ giúp bạn detect loại packer đang được sử dụng với file
tương ứng (.exe, .dll , etc ).
Ngoài ra nếu file không bị pack PEiD cho bạn biết ngôn ngữ code lên file như:
Visual Basic, MASM, etc
Các thông tin PE file được cung cấp khá nhiều.
Cách sử dụng:
Load chương trình lên, Browser chọn file cần detect. Sau đó chương trình sẽ hiện
thị thông tin packer, coder cho bạn biết ở khung textbox trên các button options.
Các options:
- Multi Scan: Scan toàn bộ files trong thư mục chỉ định
- Task View: Xem list process hiện tại về dùng nó để load file tương ứng.
- Options:
a. Normal / Deep / Hardcore scan
b. Recurse SubFolder: Sử dụng đệ qui vào các SubFolder
c. Use External Signatures: Sử dụng file nhận biết dấu hiệu file riêng (nếu có file)
d. Register Shell Extension: Tích hợp vào Popup Menu cho phép chọn load bằng
PEiD khi RightClick vào các file tương ứng
e. Minimize to SystemTray: Hiển thị thành icon ở System Tray khi minimize
f. Load plugins: Hỗ trợ plugins
g. Allow multiple Instances: Cho phép load cùng lúc nhiều thể hiện của PEiD.
- Plugins: Các plugins bên ngoài cho phép làm thêm nhiều thứ như Unpack chẳng
hạn.
Các plugin bạn download về copy vào thư mục plugin trong thư mục PEiD, PEiD
sẽ tự nhận ra thôi.
Sorry lão Zom vì copy của lão qua mà không xin phép nhé. Nhưng thấy mấy bài
này mà bỏ cho lão del thì phí của zời quá.
Zombie(REA)
BÀI HỌC
ZOMBIE
Zombie post bài này với mục đích là cùng mọi người học từ đầu với ASM ha
Hih Zombie cũng đang bắt đầu học lại nó đây nên cứ cho làm mọi thứ từ đầu hết
ha,
LÝ THUYẾT ASSEMBLY
Part 1: Khái niệm về bit ,byte ,word
I. Bộ nhớ
a. Byte:
- Các thông tin xử lý được lưu trữ trên bộ nhớ > Nhóm 8 bits kết hợp lại thành 1
byte nhớ.
- Byte nhớ được xác định bằng 1 con số Address. Byte nhớ đầu tiên có Address =
0. Các byte nhớ có địa chỉ riêng khác nhau và cố định.
- Số bits khả thi của CPU càng cao thì khả năng truy cập byte nhớ càng lớn
- Dữ liệu lưu trong byte nhớ là Content hay còn gọi là Value.
>> Conten luôn là giá trị 8 bits, trong khi Address byte nhớ phụ thuộc vào số bits
khả thi của CPU. (8086 xử dụng Address 20 bits, 80286 thì dùng 24 bits.)
>> 1 bits có khả năng chứa 2 giá trị (0/1), như vậy với n bits ta chứa được 2n giá
trị. Example: 20 bits >>220 = 1,048,576. Con số này được xem là 1 Mega và 210
là Kilo
b. Word:
- 1 word được tạo thành từ 2 bytes.
- Address thấp hơn (lấy Address của Byte) sẽ được lấy làm Address cho Word.
>> Example: 2 bytes có Address 2,3 tạo thành Word có Address là 2.
II. Ví trị Bits trong Byte or Word:
- Vị trí bit trong Byte/Word được đánh theo thứ tự từ phải sang trái:
7 6 5 4 3 2 1 0
<< Vị trí bits trong Byte
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
|< Byte cao >|<-Byte thấp->|
III. Biểu diễn số nguyên:
- Với một Byte/Word ta có 1 bit msb (Most Significant Bit) và 1 bit lsg (Least
Significant Bit)
- msb là bit cuối cùng bên trái (bit 7 đối với Byte, và 15 với Word).
- lsb thì ngược lại, nằm cuối cùng bên phải.
Để biểu diễn một số nguyên ta dùng hết 1 word (16 bits) mà không cần sử dụng bit
xác định dấu. Do đó con số nguyên lớn nhất ta có là 1111 1111 1111 1111 =
65535.
>> Ở đây lsb mang giá trị 0 cho số chẳn và ngược lại.
Đối với số nguyên có dấu, ta sử dụng msb làm bit xác định dấu (0: Dương). Giá trị
này lưu trên máy tính dạng số bù 2 (với số âm).
* Số bù 1: Là kết quả phép đảo bits.
0000 0000 0000 0101
> Bù 1 1111 1111 1111 1010
* Số bù 2: Kết quả phép cộng số bù 1 và 1
> Bù 1 1111 1111 1111 1010
+ 1
> Bù 2 1111 1111 1111 1011
Vì sao bù 2 là biểu diễn số âm? Ta lấy con số gốc + bù 2 của nó sẽ cho kết quả là 0
vì msb sẽ bị mất do word chỉ có khả năng lưu giá trị 16 bits. Và suy ra nếu ta lấy
bù 2 thêm lần nữa sẽ cho ra giá trị gốc.
***Vấn đề tiếp theo là biểu diễn Value của Bytes hay Word dưới dạng số thập
phân.
- Để biểu diễn dạng không dấu đơn giản chỉ là phép tính chuyển cơ số.
- Với dạng có dấu ta chuyển tính dưới dạng bits, lấy bù 2. Con số thập phân của kết
quả này là dạng biểu diễn.
>> Các lưu ý mục này <<
1. Như đã nói msb = 0 khi là số dương và ngược lại và qua việc test nhiều lần ta
có: Các số Hex bắt đầu tứ 0-7 là dương và tiếp theo là âm.
2. Dạng biểu diễn thập phân có dấu và không dấu cho 1 word:
- 0000h-7FFFh: Thập phân có dấu = không dấu.
- 8000h-FFFFh: Có dấu bằng không dấu trừ 65536.
- và tương tự cho 1 byte.
OkAi Đến đây tạm xong một chút về ASM… Part tiếp theo là về các thanh ghi,
offset…
Part 2: Register (Thanh ghi)
Các thanh ghi là nơi lưu giữ thông tin của bộ xử lý. Chúng được phân loại theo
chức năng tương ứng (tổng cộng 13 thanh ghi)
I. Thanh ghi dữ liệu: AX, BX, CX, DX (Với Windows được mở rộng thành EAX,
EBX, ECX, EDX với 32 bits):
- Như tên gọi chúng sử dụng vào việc thao tác dữ liệu (thực hiện nhanh hơn so với
thao tác trực tiếp trên