banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thủ thuật reverse engineering The big SoftICe How To - Step by step Guide  XML
  [Question]   The big SoftICe How To - Step by step Guide 26/05/2008 20:06:57 (+0700) | #1 | 132862
[Avatar]
hacnho
HVA Friend

Joined: 28/01/2003 12:07:45
Messages: 199
Location: OEP
Offline
[Profile] [PM]
Abstract

Debugging applications or drivers are part of every programmer’s day.
Nearly every IDE I know has its own debugger. Most of them suck in
several ways and often don’t fulfil all the needs the coder has. Especially
when developing a ring0 application, such as a driver for a video or audio
device. Without a powerful kernel debugger it’s very hard for the coding
artist to fix problems, because as you know bigger programming faults
lead to bluescreens, followed by a reboot. Referring to the security or
antivirus scene a debugger is often used when reversing a binary for
vulnerabilities or discovering the functionality of malware. The best
disassembler IDA Pro from Datarescue also supports debugging for some
time now and improves the reversers work when analyzing an application,
particularly when the binary is compressed with an executable packer.
Microsoft ships their Visual Studio with a nice debugger which has also the
capability of kernel debugging. But almost all debuggers have still some
disadvantages. In my opinion currently there’s only one debugger that is
nearly perfect, the world famous SoftICE. Formerly created by NuMega,
sold to Compuware in 1997 and now implemented in Driverstudio, SoftICE
is a fully featured debugger with dozens of commands I’ll try to bring you
closer in this essay. Have you ever wondered what the ICE stands for in
SoftICE? Quite easy, it means “In Circuit Emulator”. If you don’t know
what an ICE is, just google for it smilie This paper will give you a step by step
introduction to SoftICE. First we’ll discuss the most important things while
installation and configuration as well as covering several problems that
can happen. Subsequent to this I will discuss hotkeys, the most important
basic and many advanced commands SoftICE has. Furthermore I will give
examples how to use them as well as alluding stumbling blocks with some
instructions. In the end of the document I prepared a list of useful API
calls, which may help when searching for the right breakpoint in future
debugging sessions. To reproduce all the things best, discussed here in
the following, you should be armed with WinXP or Win2003, Driverstudio
v3.2, IceExt v0.67, Spy & Capture v2.70 as well as VMWare Workstation
v5.5. Watch the link list at the bottom where to get the tools needed. The
reader of this document should have a basic understanding of x86
assembly and the fundamentals of debugging. Ok, let’s getting started
now.  


Một tài liệu căn bản cho việc cài đặt và sử dụng SoftICe cho những ai muốn debug app trên user và kernel mode.
Nếu muốn tìm tài liệu bằng tiếng việt thì đọc lại tut "How to become a cracker" của tôi smilie

Code:
Download file đính kèm theo bài viết!
Mọi câu hỏi vui lòng gửi lên diễn đàn!
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 31/05/2008 12:01:45 (+0700) | #2 | 133548
langmaninternet
Member

[Minus]    0    [Plus]
Joined: 24/08/2004 15:18:38
Messages: 22
Offline
[Profile] [PM]
thanks 2 u... very mush.
but where i can download the tut name "How to become a cracker" ??

google :

Không tìm thấy "How to become a cracker" hacknho trong tài liệu nào.

Ðề xuất:

* Xin bạn chắc chắn rằng tất cả các từ đều đúng chính tả.
* Hãy thử những từ khoá khác.
* Hãy thử những từ khoá chung hơn.
* Hãy thử bớt từ khoá.
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 31/05/2008 12:09:43 (+0700) | #3 | 133550
[Avatar]
secmask
Elite Member

[Minus]    0    [Plus]
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
[Profile] [PM] [WWW]
http://www.google.com.vn/search?hl=vi&q=How+to+become+a+cracker+hacnho&btnG=T%C3%ACm+ki%E1%BA%BFm&meta= 
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 09:28:44 (+0700) | #4 | 133901
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Mình đã thử cài Softice bản 4.05 trên máy cài Win XPSP2. Sau khi cài đặt, cấu hình theo hướng dẫn và tiến hành khởi động thì cửa sổ của Softice hiện ra nhưng sau khi mình khởi động lại máy lần thứ hai thì sau khi nhấn (Ctrl + D) màn cửa sổ Softice không hiện ra nữa mà máy lại bị Ice, xin hỏi các bác hiện tượng như vậy là thế nào, rất mong các bác giúp đỡ ?

Mình thử cài đặt lại nhiều lần nhưng vẫn bị hiện tượng như vậy.
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 10:05:18 (+0700) | #5 | 133907
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Install SoftIce phải nói là ác mộng. Nó Ctrl-D thì được thì không nói gì, nếu không thì mày mò hết cách, hên xui may rủi. Ctrl-D lên cũng chưa chắc debug được. Có khi nó ice bất tử nữa.
Tui mất gần 3 ngày để install SoftIce trên VPC 2007, không được, bó tay. Cuối cùng phải install Syser.
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 10:46:57 (+0700) | #6 | 133914
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Đúng là việc cài đặt Softice thật rắc rối. Mình cũng có nhe nói đến Syser, bác TQN sử dụng nó thấy thế nào, có thể giới thiệu sơ qua cho mình được không, à mà bác có bản cài đặt của nó không. Mình đang tập debug driver nhưng hiện tại chưa cài xong SoftIce nên cũng chưa thể tiếp tục được. smilie
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 11:28:14 (+0700) | #7 | 133919
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Cậu install Virtual PC hay VMWare để remote debug và test driver của cậu. Tui thì đang dùng Virtual PC, free, nhỏ, nhẹ.
Cài Syser lên máy ảo. Syser chưa hổ trợ remote debug. Dùng Syser hoàn toàn như SoftIce, các debug command của nó hoàn toàn như nhau. Cậu có thể đọc help của Syser hay các file Using SoftIce hay SoftIce Command Reference để áp dụng cho Syser.
Cài WinDbg trên cả máy ảo và máy thật. WinDbg hổ trợ live kernel debug cho Win XP SP2 trở lên, nhưng nên dùng tính năng remote debug trong WinDbg để debug driver trong máy ảo từ máy physical.
Máy ảo gọi là máy remote hay targe, máy physical gọi là máy host.
SoftIce cũng hổ trợ remote debug: Visual SoftIce và SoftIce. Nhưng do tôi install SoftIce trên VPC không được nên chưa dùng thử. Cậu có thể đọc trong các file .pdf của SoftIce. Cũng đơn giản.
Để remote debug cho ring 3 app thì có thể dùng IDA, WinDbg hay Visual Studio 6 tới 2008. Delphi cũng hổ trợ remote debug nhưng không tốt lắm.
Sau khi đã install Syser, WinDbg cho máy ảo và máy thật, config máy ảo với COM port là pipe. Dùng WinDbg để remote debug qua pipe này. Cậu đọc thêm thông tin trong WinDbg .chm help file.
Install symbol files cho OS trên máy ảo, nhưng install trên thư mục của máy thật, map hay share qua máy ảo để các debugger trên máy ảo và máy thật đều thấy thư mục Symbols này. Nhớ là symbol tương ứng với Windows của máy ảo.
Đang dự tính viết 1 article về remote debug ring0/ring3 qua Syser/WinDbg/IDA/VS cho anh em REA nhưng chưa viết được. Remote debug có lợi khi debug malware, drivers.
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 11:35:26 (+0700) | #8 | 133921
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Còn nếu cậu vẫn muốn dùng SoftIce thì nên install VMWare và install SoftIce + Visual SoftIce trên máy ảo. VMWare support SoftIce. Tài liệu "The big SoftIce how to" ở trên có nói về install SoftIce trên WMWare.
Theo tôi biết thì Virtual PC không thể install SoftIce được.
Để download Syser đầy đủ, cậu vào đây: hxxtp://reversengineering.wordpress.com/2008/05/31/syser-debugger-19719001016-2008527/
Nếu install SoftIce thành công trên VMWare thì nên bỏ thời gian tìm hiểu về remote debug với SoftIce và máy ảo.
Cmd: siremote PIPE tênpipe trên máy host.
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 12:03:17 (+0700) | #9 | 133926
[Avatar]
secmask
Elite Member

[Minus]    0    [Plus]
Joined: 29/10/2004 13:52:24
Messages: 553
Location: graveyard
Offline
[Profile] [PM] [WWW]
tớ cài softice trong bản driverstudio 3.2 trên máy ảo VMWare thấy chạy rất tốt, bản 4.05 thì phải cài thêm cái patch để chạy được trên winxp, bản 4.27 kia thì chưa thử. bạn tìm trên cracklab.ru có đủ mọi thứ liên quan.
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 21:19:34 (+0700) | #10 | 133967
[Avatar]
hacnho
HVA Friend

Joined: 28/01/2003 12:07:45
Messages: 199
Location: OEP
Offline
[Profile] [PM]
Link download SoftICE 4.32 tested work fine in XPSP2:

Code:
http://cracklab.ru/_dl/_/DriverStudio_3.2_CRACKLAB.rU.rar


Link download Syser Debugger 1.97.1900.1016 2008.5.27 :

Code:
http://rapidshare.com/files/119028937/Sys.Debug.v1.97.1900.1016.zip


Mình trích bài của thienthandien bên REA về cài SofIce trên VMWare cho các bạn tham khảo:



Dành cho những ai yêu thích softice nhưng ngại cài trên máy thật vì nó hay gây crash máy. Một vài dòng nhỏ nhỏ là softice có thể chạy tốt trên máy ảo rùi. Ở đây tôi test với vmware (dùng nhiều hđh khác nhau), các bạn có thể tìm thấy file .vmx trong folder chưa hđh ảo, mở file này với notepad cho đơn giản, rồi thêm vào:

Code:
vmmouse.present = "FALSE"
svga.maxFullscreenRefreshTick = "5"
svga.forceTraces = "TRUE"


sau dòng

Code:
sound.autodetect = "TRUE"


là được.

Ngoài ra khi cài softice các bạn nên chọn chế độ manual, tức chỉ khi nào cần thì mới gọi nó lên. Thêm một chút config softice mà tôi đang dùng:

Code:
1. Settings -> SoftICE Initialization -> General -> Initialization string:
color f a 1f 1f a;code on;lines 60;wc 36;wd 6;faults off;ww 4;dex 1 ss:esp;altkey ctrl d;watch ds:esi;watch es:edi;set mouse 3;cls;X;

2. Settings -> SoftICE Initialization -> General -> Video Memory Size:
4096




Mọi câu hỏi vui lòng gửi lên diễn đàn!
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 21:41:52 (+0700) | #11 | 133969
[Avatar]
kienmanowar
HVA Friend

Joined: 13/07/2004 05:57:34
Messages: 483
Offline
[Profile] [PM] [WWW]

TQN wrote:
Đang dự tính viết 1 article về remote debug ring0/ring3 qua Syser/WinDbg/IDA/VS cho anh em REA nhưng chưa viết được. Remote debug có lợi khi debug malware, drivers. 


Hay quá, anh cố gắng bớt chút thời gian để viết đi anh smilie
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 21:45:46 (+0700) | #12 | 133972
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Rất cám ơn mấy bác đã giúp đỡ, mình sẽ cài đặt lại SoftIce xem thế nào. À mình cũng muốn hỏi là khi debug một số chương trình thì làm thế nào các bác có thể hiểu được cấu trúc lệnh của nó như trong các tut của bác hacnho được nhỉ ? Thật sự mình đã đọc qua rất nhiều tut, nhưng khi dịch ngược một chương trình, mình vẫn không tài nào hình dung được cấu trúc mã nó như thế nào (chỉ hiểu được lệnh), các bác khi reverse chương trình có bí quyết gì đặc biệt không ?
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 21:47:32 (+0700) | #13 | 133973
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Ở trên các bác có nói về việc sử dụng VMWare, máy mình thì không cài được VMWare rùi (cấu hình yếu). Các bác cài được có thể cho mình biết thêm về chức năng của nó được không, nếu debug chương trình có malware thì liệu nó có lây lan sang máy thật không ? chương trình ở hai nền khác nhau có thể tương tác qua lại thông qua VMWare không ?
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 03/06/2008 23:50:35 (+0700) | #14 | 133990
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Để dịch ngược và hiểu được cấu trúc ct, ct làm sao run,... thì có các yếu tố quan trong, theo ngu ý của tui:
- Biết về ASM 32bit. Nếu có thời gian thì đọc luôn ASM 64. Tìm sách mà đọc.
- Biết lập trình trên ngôn ngữ dùng viết ra ct đó, nắm được cách làm sao compiler sinh mã ASM.
Cái này thì hơi khó, phải mất thời gian mày mò và đọc sách.
- Biết về Win32 API, kernel....
...
Reverse không có bí quyết gì cả, chỉ đi từ thấp lên cao, mày mò, kiên trì.

[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 05/06/2008 07:22:51 (+0700) | #15 | 134183
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Mình thấy ý kiến của bác cũng hay, nhưng nếu suy xét kĩ thì theo mình nghĩ việc hiểu được suy nghĩ của người viết chương trình cũng quan trọng không kém việc hiểu ngôn ngữ (mình nghe nói một số trình biên dịch mới bây giờ sử dụng Optimize sinh ra mã còn tốt hơn người viết mã nữa - không biết có thật không). Điều chính yếu mình muốn hỏi là khi Reverse một chương trình các bác suy nghĩ như thế nào để có thể hiểu thấu đáo đến vậy, vì dù là ngôn ngữ gì đi nữa thì khi sinh ra mã ASM nó cũng cùng một dạng như nhau, chỉ khác nhau về cấu trúc lệnh mà thôi, chút ý kiến của mình như vậy, mong các bác góp ý thêm.
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 05/06/2008 07:56:02 (+0700) | #16 | 134189
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Cậu phải hiểu được compiler sinh mã ra sao thì cậu mới sơ lược được cấu trúc ct, các hàm, các message handler của nó. Từ đó cậu mới hình thành sơ bộ được 1 phần source code của ct, từ source code đó cậu mới hiểu được coder viết gì.
Quy trình này đi ngược lại với coder. Coder suy nghĩ, design, code, compile, ra mã ASM. Reverser đi ngược lại: ASM code-> decompile -> source -> suy nghĩ của coder + design.
Nếu cậu không đi theo hướng trên thì tài thánh cũng không đoán được suy nghĩ của coder.
Còn về vụ optimize thì đúng, VC++ compiler từ VS 2005 trở lên, Intel compiler... sinh mã cực kỳ thông minh và optimize.
Tuy nhiên, dù có optimize mức nào đi nữa thì code sinh ra vẫn phải làm đúng yêu cầu của coder. Từ code này ta có thể đọc và đoán được.
Hiểu compiler sinh mã ra sao, theo tui, là cái cực kỳ quan trong. Vd như:
- Một ứng dụng MFC truy xuất resource ra sao, xữ lý event ra sao từ resource dialog đó, cơ chế C++ exception handling của nó, rồi cơ chế SEH của Windows. Nắm được cái này, bạn sẽ dò ra OnInitDialog, OnPaint,... InitInstance, ExitInstance nằm chổ nào trong đống code ASM đó...
- Một app viết = Delphi: Delphi lưu form ở đâu, cấu trúc form ra sao, khởi tạo event-handler như OnClick... cho các control ở đâu, như thế nào, VMT của class TForm, Txxx được cấu thành ra sao, RTTI nằm chổ nào. Từ đây bạn sẽ dò ra địa chỉ của FormReg.RegisterBtn.Click...
Nói chung là nhiều lắm.
Hiện tại .NET app đang được nhiều reverser đầu tư nghiên cứu nhiều. Đó cũng là hướng hay và mới.
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 05/06/2008 08:05:27 (+0700) | #17 | 134190
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Cám ơn bác đã góp ý, bây giờ thì mình đã hiểu vì sao mình không tài nào hình dung được tư tưởng của người viết CT, trước nay mình đều xem sét trường trình theo từng chức năng mà mình thấy vì vậy không tập trung được vào tình cấu trúc của nó. Thank
Mới tìm hiểu về lĩnh vực này nên còn nhiều thiếu sót, rất mong các bác góp ý thêm.

Tiện thể mình cũng hỏi thêm việc debug và reverse chương trình thì máy nên cấu hình như thế nào cho phù hợp ( chỉ là cấu hình phần mềm thôi còn phần cứng thì là chuyện khác).

Các bác có thể phân tích hướng đi trong việc tìm hiểu lĩnh vực này không ?
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 06/06/2008 08:42:22 (+0700) | #18 | 134328
TQN
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 22:28:01
Messages: 888
Location: Biết làm chi ?
Offline
[Profile] [PM] [WWW] [Yahoo!]
Chỉ cần 1 cái máy bình thường và install được máy ảo. Tool thì có topic trong box này đề cập rồi. Chịu khó đọc các sách về ASM, RE, debug. Đọc và thực hành.
[Up] [Print Copy]
  [Question]   Re: The big SoftICe How To - Step by step Guide 13/06/2008 08:54:08 (+0700) | #19 | 135273
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]
Thank bác đã cho ý kiến, mình sẽ cố gắng nhiều.
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|