I. LỜI KHUYẾN CÁO Xin thưa với các bạn !
Hiện nay, trên giang hồ xuất hiện phần mềm UnDeep Freeze, đây là 1
phần mềm – theo tôi – có sức “tàn phá” kinh khủng …khiếp. Nó chẳng những
làm hư Deep Freeze mà còn làm hư luôn hệ thống (system) của Windows.
Sau nhiều đêm mày mò, “ngâm kíu” các tài liệu. Cuối cùng tôi cũng
tìm được cách phá Deep Freeze. Cách này đơn thuần chỉ là “cướp lấy”
password để đăng nhập vào menu của Deep Freeze chứ không làm hư Deep
Freeze và hệ thống windows. Nay mạn phép viết bài này để hướng dẫn.
Mục đích của tôi khi viết bài hướng dẫn này là chỉ muốn chia sẽ
kinh nghệm mà mình đã học hỏi được. Vậy kính mong các bạn đừng áp dụng
bài viết này với mục đích xấu, cài keylog, trojan… nhất là những người
đang kinh doanh hàng net, họ thường hay sử dụng Deep Freeze để giảm
thiểu tối đa khả năng bị hư máy và bị virus tấn công… Họ cũng có nỗi khổ
riêng của họ.
Bạn chỉ nên sử dụng bài viết này với mục đích học hỏi, tốt nhất chỉ
áp dụng cho máy nhà khi bạn lỡ quên password của Deep Freeze.
II. MỘT SỐ LƯU Ý TRƯỚC KHI TIẾN HÀNH PHÁ DEEP
FREEZE 1. OllyDebug Đầu tiên, bạn phải có công cụ OllyDebug. Đây là công cụ để dịch
ngược file *.exe, *.dll về ngôn ngữ ASM. Nhưng tôi chọn và dùng nó để
phá Deep Freeze mặc dù không dính dáng gì đến ngôn ngữ ASM.
OllyDebug hiện nay trên giang hồ là rất hiếm gặp. Nếu có gặp đi nữa
thì nguyên bản này lại không có phần Plugins (chứa phần OllyScript, là
phần chính để phá Deep Freeze, và phần Plugins lại càng hiếm gặp hơn cái
OllyDebug đó nữa). Tôi phải bỏ ra thời gian hơn 1 tuần để tìm kiếm,
nhưng chỉ tìm được phần mã nguồn của Plugins này, tôi phải nhờ 1 bạn
trong diễn đàn (diendantinhoc.com) dịch hộ thành file thư viện.
Nhưng bạn đừng lo, nếu tôi đã viết bài hướng dẫn rồi thì cũng phải
cung cấp công cụ chứ ?
Bạn có thể download OllyDebug tại địa chỉ dưới đây (nếu không tải
được, bạn hãy liên hệ với tôi qua nick yahoohoo hoặc qua email):
===== >
http://www.4shared.com/file/10368974/16cd445b/OnlyDebug_day_du_.html < =====
===== >
http://www.4shared.com/file/12182527/f173f6e7/Huong_dan_pha_DeepFreeze.html < ===== (đây là ebooks hướng dẫn đầy đủ chi tiết hơn trên diễn đàn).
Sau khi bạn tải OllyDebug về, tiến hành giải nén và chạy file
OllyDBG.exe để vào giao diện chính của OllyDebug. Bạn sẽ được giao diện
như hình trên.
2. Vị trí biểu tượng của Deep Freeze trên thanh
taskbar: Bạn phải để ý vị trí của biểu tượng này, vì khi tiến hành phá Deep
Freeze, sẽ có 1 biểu tượng Deep Freeze khác xuất hiện nằm kế bên. Bạn để
ý nó để phân biệt đâu là biểu tượng cũ, và đâu là biểu tượng mới (xem
hình)
3. Xem phiên bản của Deep Freeze mà máy đang dùng: Để xem được phiên bản của Deep Freeze mà máy đang dùng, bạn hãy ấn
phím tổ hợp CTRL + ALT + SHIFT + F6. Khi đó, menu nhập password của Deep
Freeze sẽ hiển thị lên. Bạn nhìn vào góc trái, trên của menu này thì sẽ
thấy phiên bản của nó.
Bạn hãy ghi nhớ số phiên bản này, đây là cơ sở để tìm offset phá
Deep Freeze.
4. Tìm đường dẫn, thư mục cài đặt tệp
FrzState2k.exe của Deep Freeze: Thông thường, Deep Freeze được cài mặc định tại thư mục “
C:\Program Files\Faronics\Deep Freeze\Install C-0"
Trong thư mục này lại có chứa 1 tệp (DF5Serv.exe ) và 1 thư mục con
( _$Df ). Trong thư mục con lại chứa tệp FrzState2k.exe. Đây là tệp
chính thức dùng để phá.
Túm lại, nó có đường dẫn đầy đủ như sau:
C:\Program Files\Faronics\Deep Freeze\Install
C-0\_$Df\FrzState2k.exe Lưu ý: trên đây chỉ là 1 ví dụ về đường dẫn của tệp
FrzState2k.exe. Nó có thể thay đổi tùy theo sự cài đặt của chủ máy.
Chú ý: bạn có thể dùng phần mềm ProcessExplorer để tìm đường
dẫn cài đặt Deep Freeze và điểm Argument của nó.
===>
http://download.sysinternals.com/Files/ProcessExplorer.zip <====
Giao diện của ProcessExplorer
Command Line và Arguments của Deep Freeze
III. TIẾN HÀNH PHÁ DEEP FREEZE 1. Dùng OllyDebug, mở tệp FrzState2k.exe: Bạn hãy chạy tệp OllyDBG.exe để vào giao diện của OllyDebug. Sau đó
bấm vào biểu tượng open trên thanh menu (hoặc bấm phím tắt F3, hoặc vào
menu File\Open).
Trong hộp thọai Open này, bạn lần theo đường dẫn của tệp
FrzState2k.exe (vừa tìm được trên mục II.4). Hãy nhập vào các mục của
hộp thọai Open như sau (xem hình):
- File name:
FrzState2k.exe - Arguments:
1 106917 0 (lưu ý, có khoảng
trắng)
Sau đó bấm open. OllyDebug sẽ hiển thị 1 hộp thọai thông báo khác,
nội dung như sau:
---------------------------
Entry Point Alert
---------------------------
Module 'FrzState' has entry point outside the code (as specified in
the PE header). Maybe this file is Self-extracting or self-modifying.
Please keep it in mind when setting breakpoints!
--------------------------- Bạn cứ bấm OK.
Trong quá trình OllyDebug tiến hành dịch mã, có thể sẽ có lỗi xảy
ra về modul như sau:
---------------------------
Compressed code?
---------------------------
Quick statistical test of module 'FrzState' reports that its code
section is either compressed, encrypted, or contains large amount of
embedded data. Results of code analysis can be very unreliable or simply
wrong. Do you want to continue analysis?
---------------------------
Yes No
--------------------------- Trường hợp này bạn bấm YES. Hoặc:
---------------------------
Error
---------------------------
In module 'FrzState' OllyDbg encountered several corrupted
breakpoints, where first byte of the actual command differs from that in
the previous debugging session. This happens when program was
recompiled or code is self-modifying (for example, self-extracting). For
security reasons, OllyDbg will disable suspicious INT3 breakpoints. You
can re-enable them in Breakpoints window.
---------------------------
OK
--------------------------- Trường hợp này bạn bấm OK.
2. Chạy Scripts, vào Plugins>>Script>>Run
Script>>Load… Như tôi đã nói ngay từ đầu, phần Spcript này chỉ có khi bạn đã
plugins thư viện Script cho OllyDebug. Nếu chưa có, bạn hãy tìm file
OllyScript.dll và plugins cho nó, nhớ xóa tệp Ollydbg.ini trong cùng thư
mục của nó trước khi chạy OllyDBG.exe.
Khi OllyDebug dịch mã sang ASM xong, bạn bấm vào menu Plugins của
OllyDebug. Chọn OllyScript>>Run script >> Load…
Lúc này, OllyDebug sẽ hiển thị hộp thọai Load lên, bạn chọn file
"UPS.OSC". File này đã có sẵn trong thư mục đã bung OllyDebug.zip (như
hình dưới)
Sau khi Script hòan tất. Bạn bấm OK. Bạn sẽ được Address mới trong
Editor của OllyDebug.
3. Dịch chuyển đến vị trí Expression(ứng với
từng phiên bản Deep Freeze thì vị trí này khác nhau) Tiếp theo, bạn chuột phải lên bất kì vị trí nào của màn hình
OllyDebug, chọn "Go to>>Expression" để dịch chuyển đến vị trí mới
khác nữa. Thao tác này bạn có thể làm nhanh bằng cách ấn phím tổ hợp
CTRL + G
Trong hộp thọai Goto (enter expression to follow), bạn gõ vào con
số (hexa) tương ứng với từng phiên bản của Deep Freeze (phiên bản mà bạn
xem được ở mục II.3 trên). Lần lượt, tôi sẽ đưa ra các con số tương ứng
với từng phiên bản như sau:
Version ----> Hexa Number 4.20.020.0598 ----> 40368D
4.20.020.0604 ----> 40368D
4.20.021.0598 ----> 40368D
4.20.121.0613 ----> 4034F5
5.20.022.1125 ----> 4037E9
5.20.250.1125 ----> 408D34
5.30.021.1181 ---->
4037E9 5.30.150.1181 ----> 4037E9
5.50.021.1288 ----> 403860
Nếu bạn đang sử dụng Deep Freeze với 1 phiên bản khác (không thấy
trong list trên) thì bạn có thể nhập lần lượt các Hexa Number trên để
thử, cho đến khi nào được thì thôi.
Do tôi đang thực hành trên phiên bản 5.30.021.1181 nên tôi nhập vào
con số 4037E9 (như hình sau)
Sau đó ấn OK. Tôi sẽ được OllyDebug đưa đến 1 vị trí mới trên "bảng
xếp hạng" Address.
4. Xác định điểm breakpoint cho OllyDebug Kế tiếp, bạn nhấn F2 - hoặc chuột phải vào vị trí goto vừa đến trên
màn hình của OllyDebug, sau đó chọn BreakPoint>>Toggle - xác định
điểm Break Point.
Nếu OllyDebug hiển thị hộp thọai xác nhận thì bạn bấm OK. Nội dung
hộp thọai xác nhận như sau:
---------------------------
Suspicious breakpoint
---------------------------
It looks like you are trying to set breakpoint on the data. If this
is really the case, such breakpoint will not execute and may have
disastrous influence on the debugged program. Do you really want to set
breakpoint here?
---------------------------
Yes No
---------------------------
5. Test lần thứ 1 chương trình FrzState2k.exe Khi có được vị trí BreakPoint rồi, bạn ấn F9 (hoặc vào menu
Debug>>Run) để tiến hành test lần thứ 1 chương trình
FrzState2k.exe
Sau khi OllyDebug test xong. Sẽ có 1 biểu tượng Deep Freeze mới
(new icon) xuất hiện dưới taskbar của bạn, biểu tượng này nằm tại vị trí
thứ 1 kể từ bên trái sang.
Bạn hãy phân biệt cái biểu tượng mới (new icon) này so với cái biểu
tượng cũ (old icon) mà ta đã để ý ở phần II.2 trên.
6. Mở hộp thọai nhập password của new icon Để mở hộp thọai password của biểu tượng thứ 2 này, ta không thể nào
dùng phím tổ hợp CTRL + ALT + SHIFT + F6, vì nếu vậy thì máy tính sẽ
lầm tưởng ta mở hộp thọai password của biểu tượng thứ 1 (old icon). Ta
hãy dùng chuột để mở password của cái new icon này. Bạn hãy bấm tổ hợp
phím CTRL + ALT + SHIFT, sau đó nhấp kép chuột trái vào biểu tượng mới
(new icon).
Khi hộp thọai nhập password hiển thị, bạn nhập vào đó một chuỗi kí
tự bất kì để làm password. Xong ấn OK. Hộp thọai password này không mất
đi mà nó vẫn còn hiển thị trên màn hình (bạn chịu khó nhé, đừng bao giờ
tắt nó – mà tắt cũng hổng được trừ khi bạn tắt OllyDebug). Sau khi nhập
password xong, OllyDebug sẽ lần lượt đưa bạn đến các vị trí khó tìm (
khó tìm trong các thủ thuật mò password khác).
Khi này, nếu thấy chữ "Pause" màu đỏ nền vàng hiển thị phía dưới,
góc phải của OllyDebug. Bạn hãy bấm F8 để OllyDebug tiếp tục gọi các
function khác. Có thể trong quá trình gọi function, OllyDebug sẽ hiển
thị hộp thọai breakpoint. Nội dung hộp thọai như sau:
---------------------------
Suspicious breakpoint
---------------------------
It looks like you are trying to set breakpoint on the data. If this
is really the case, such breakpoint will not execute and may have
disastrous influence on the debugged program. Do you really want to set
breakpoint here?
---------------------------
Yes No
--------------------------- Bạn hãy bấm YES.
Lặp lại các thao tác trên cho đến khi nào trên thanh Registers của
OllyDebug hiển thị:
Registers EAX 00000000
ECX 00000001
EDX 0012FB80
EBX 009D5610
ESP 0012FB70 Xem hình dưới:
7. Thay đổi giá trị thanh ghi AX (tương ứng là
EAX trong OnlyDebug) Bạn hãy chú ý vị trí thanh AX, giá trị của thanh này hiện giờ là 0.
Bạn hãy bấm kép vào vị trí EAX này để OllyDebug hiển thị hộp thọai
chỉnh sửa giá trị. Bạn nhập vào đó giá trị 1
Xong nhấn OK.
8. Đăng nhập vào hộp thọai Boot Control của Deep
Freeze – hòan tất quá trình phá Deep Freeze
Khi thay đổi giá trị của thanh AX xong. Bạn tiếp tục F9 (hoặc vào
menu Debug>>Run) để OllyDebug test lần 2 với giá trị AX vừa mới
nhập này. Và cái điều gì đã xảy ra sau đó ????
Công đọan tiếp theo là gì, đó là tùy vào mục đích của bạn. Bạn có
thể chọn Boot Thawed on next, hoặc Boot Thawed để mở phá băng. Sau đó
restart lại máy.