Thứ Bảy, 26 tháng 4, 2014

4 năm nhìn lại!

Bữa nào chán học là lại có tâm trạng muốn lảm nhảm :)
2010-2014 sắp đi hết chặng đường đại học. Thời gian trôi nhanh, như mới ngay đây thôi còn là một con người chập chững những bước đầu sau 12 năm đèn sách. Giờ đây là 22 tuổi, là sinh viên năm cuối, sắp ra trường và đang chuẩn bị bước vào những thử thách căng go.
Suốt 4 năm, nhiều sự việc xảy ra, có những điều tạm hài lòng cũng như những điều hối tiếc. Hãy nói về những điều hối tiếc trước. Có thể hối tiếc lớn đó là chưa được hưởng cảm giác ở kí túc xá. Nhiều chuyện vui được nghe kể lại mà cứ muốn mình là người trong cuộc một lần. Điều hài lòng trong suốt 4 năm là trong mình luôn duy trì được sự cố gắng, luôn nỗ lực dù đôi khi vẫn có sự hoang mang về con đường mình chọn, và tính cách thiếu cẩn thận liệu có phù hợp với ngành nghề theo đuổi. Bốn năm ở trường đối với mình vẫn là những ngày tháng ý nghĩa, có bạn bè, có những buổi chiều chạy bộ, đá banh, có những buổi đi chơi xa. Những kỉ niệm về chuyến phượt của 6 thằng gần 600 cây, leo 2 cái ngọn núi.Về chuyến đi chơi xa với lớp mà chắc sẽ khó có thể nào quên. Nhiều lúc muốn tua lại về những khoảng thời gian ấy để sống lại những năm tháng ấy một lần nữa. Năm 4 cái năm quyết định có thể nói là như vậy phía trước là đợt thực tập, tốt nghiệp, may mắn ra được trường thì phía trước vẫn là một chặng đường, có những tia sáng, nhưng cũng có sự chông gai đang chờ đợi.
Sẽ không thể quên những tuyến xe buýt, những lần ngủ gật trên xe buýt :D, những lúc đi học về trên xe buýt vào buổi tối được ngắm được phố những trải nghiệm đó phải nói là tuyệt. Nhiều lúc chẳng biết đường xá vì cái tội đi xe buýt nhiều. Nhớ những bữa nhậu nhẹt cùng đám bạn, những bữa nhậu bắt đầu từ năm nhất khi chỉ vì thích hay là vì thằng bạn thất tình rủ nhậu, nói chung là vui vẻ và gắn kết anh em rất nhiều :). Những buổi chiều chạy bộ ở sân trường là những lần không thể quên, mỗi chiều là một sự hào hứng khi được chạy bộ, ở đó có thể 8 chuyện tào lào với mấy thằng bạn, khi là chuyện học hành, lúc là chuyện hát hò, guitar... những buổi đá banh trên sân cờ có lúc đến rát cả chân mà vẫn đá. Tất cả dù nhiều hay it, không theo trình tự tất cả đã được xắp lại trong trí nhớ, chỉ trong năm nay thôi là phải chia tay thời sinh viên, chia tay bạn bè, mái trường... Sẽ vẫn luôn nhớ.

Thứ Năm, 17 tháng 4, 2014

Love is Sharing: Windows XP Boot Process

Love is Sharing: Windows XP Boot Process: Sau đây mình sẽ mô tả tiến trình boot trong Windows XP Sau khi đã được cấp nguồn điện, một máy tính chạy Windows XP sẽ thực hiện các bước ...

Thứ Tư, 16 tháng 4, 2014

Windows XP Boot Process

Sau đây mình sẽ mô tả tiến trình boot trong Windows XP

Sau khi đã được cấp nguồn điện, một máy tính chạy Windows XP sẽ thực hiện các bước sau:
1. Nguồn cung cấp điện tự kiểm tra chính nó và gửi đi một tín hiệu năng lượng tốt (power-good signal) tới bộ vi xử lý
2. chip thời gian ngưng việc gửi cá tín hiệu reset tới bộ vi xử lý, cho phép CPU bắt đầu các hoạt động.
3. CPU nạp ROM BIOS bắt đầu tại địa chỉ bộ nhớ ROM FFFF:0000
4. ROM BIOS chứa một lệnh JMP (jmp) mà trỏ tới địa chỉ thực sự của ROM BIOS code.
5. ROM BIOS thực hiện các kiểm tra cơ bản trên phần cứng trung tâm để kiểm tra các chức năng cơ bản.
6. BIOS tìm kiếm các adapters cần thiết để nạp các ROM BIOS routines của riêng chúng
7. Startup BIOS routines quét qua các địa chỉ từ C000:0000 đến C780:0000 để tìm ra video ROM
8. ROM BIOS kiểm tra xem nếu đó là cold boot hay là một warm boot
9. Nếu đó là một cold boot, ROM BIOS thực thi trọn vẹn POST (power-on self-test). Nếu đó là một warm boot, phần kiểm tra bộ nhớ của POST bị tắt đi.
10. POST có thể bị chia ra thành 2 thành phần:

  • một video test khởi tạo video adapter
  • một video adapter kiểm tra video card và video memory, và hiển thị thông tin cấu hình hoặc bất cứ lỗi nào
11. BIOS xác định vị trí và đọc thông tin cấu hình được lưu trong CMOS.
12. BIOS phân tích đĩa để tìm master boot record (MBR)
13. Với một MBR hợp lệ được nạp vào trong bộ nhớ, BIOS chuyển quyền điều khiển của boot process tới partition loader code.
14. Partition loader, hoặc boot loader, phân tích partition table để tìm ra một partition active.
15. Partition loader sau đó tìm kiếm boot record trong mọi sector đầu tiên của partition đó. 
16. Boot record của active partition được kiểm tra để xem có boot signature hợp lệ hay không, nếu tìm thấy, boot sector code được thực thi như một chương trình
17. NTLDR, một file hệ thống ẩn trong thư mục root của system partition, điều khiển việc nạp Windows XP trong 4 chặng:
  • chặng khởi tạo boot-loader: NTLDR chuyển processor từ real mode sang protected mode, những gì đặt processor trong 32-bit memory mode và bật memory paging lên. Nó sau đó nạp các file system drivers thích hợp để cho phép NTLDR nạp các files từ một partition định dạng với bất cứ file systems nào được hỗ trợ bởi XP. Nếu file BOOT.INI được đặt trong thư mục root, NTLDR sẽ đọc nội dung của nó trong bộ nhớ. 
  • chọn lựa hệ điều hành: nếu BOOT.INI chứa các entries cho nhiều hơn một hệ điều hành, NTLDR sẽ dừng trình tự boot tại điểm này. Một user có thể nhấn F8 ở chặng này của thứ tự boot để hiển thị các tùy chọn boot
  • Phát hiện phần cứng: nếu OS được chọn là XP, NTLDR xác định vị trí và nạp chương trình NTDETECT.COM dựa trên DOS để thực hiện việc phát hiện phần cứng. Nếu máy tính này có nhiều hơn một hardware profile đã được định nghĩa trước, NTLDR sẽ dừng lại tại điểm này và hiển thị Hardware Profiles/Configuration Recovery menu. Sau khi người dùng chọn một cấu hình phần cứng, NTLDR bắt đầu nạp XP kernel (NTOSKRNL.EXE)
  • Chọn cấu hình: NTLDR bây giờ nạp các device drivers đã được đánh dấu như là boot devices. Sau khi nạp các drivers này, NTLDR từ bỏ quyền điều khiển tới các device drivers
18. NTOSKRNL đi qua 2 chặng trong quá trình boot của nó
  • Chặng 0: XP disable các ngắt trong suốt chặng 0 và enable chúng trước chặng 1.Tầng trừu tượng phần cứng (HAL) được gọi để chuẩn bị interrupt controller.
  • Chặng 1: Tất cả excutive subsystems được khởi tạo lại theo thứ tự sau:
    1. Object manager
    2. Executive
    3. Microkernel
    4. Security Reference Monitor
    5. Virtual Memory Manager
    6. Cache Manager
    7. Local Procedure Calls (LPCs)
    8. I/O Manager
    9. Process Manager
19. I/O Manager bắt đầu nạp tất cả system driver files
  • đầu tiên nó nạp boot devices
  • nó nối một danh sách các drivers được ưu tiên và cố gắng nạp mỗi driver lần lượt
  • nó khởi động Session Manager Subsystem (SMSS).
  • SMSS nạp win32k.sys device driver, những gì implement Win32 graphics subsystem.
20. Win32k.sys chuyển màn hình thành chế độ đồ họa
21. các services subsystem khởi động tất cả các services được đánh dấu như Auto Start
22. Mỗi khi tất cả các thiết bị và các dịch vụ được khởi động , boot được coi như là thành công , và cấu hình này được lưu vào như là cấu hình tốt nhất cuối cùng
23. file WINLOGON.EXE khởi động logon process. nó là một login manager file chịu trách nhiệm cho tất cả các thủ tục login và logout.
24. Local Security Authority (LSASS.EXE) process hiển thị hộp thoại logon.
 

Thứ Sáu, 4 tháng 4, 2014

[Computer Forensic] CD-ROM/DVD File Systems

Dữ liệu lưu trên CD-ROM/DVDs được chia thành 2 sectors. Các sectors này chứa cả dữ liệu người dùng (user data) lẫn các mã điều khiển lỗi (error detection codes). Users không cần phải lo lắng về những dữ liệu nào được lưu ở sector nào, nhưng users nên trang bị kiến thức về cấu trúc file trong CD-ROM/DVDs.

ISO 9660
ISO 9660 định nghĩa một file system cho CD-ROM/DVD media. Nó hướng đến việc hỗ trợ cho nhiều hệ điều hành khác nhau, ví dụ như Microsoft Windows, MAC OS, và UNIX, để cho phép trao đổi dữ liệu giữa nhiều hệ điều hành khác nhau.

ISO 9660 Specifications
Có một vùng được dự trữ với kích thước là 32,768 bytes nằm ở phần đầu của đĩa. Vùng lưu trữ này không được nhắc tới trong chuẩn ISO 9660, nhưng nó thường được sử dụng để lưu trữ các thông tin để boot hệ thống trên các các CD-ROM/DVDs có thể boot (bootable CD-ROM/DVDs  ).

Volume Descriptors Nằm ngay phía sau, một chuỗi volume descriptors mô tả chi tiết những nội dung và kiểu thông tin được lưu trên đĩa.
Một volume descriptor mô tả các thuộc tính của thông tin file system tên CD-ROM/DVDs cho trước. Nó được chia thành 2 phần: kiểu của volume descriptor và các thuộc tính của descriptor.
  Một volume descriptor được xây dựng theo cách mà nếu một chương trình đọc một disk không hiểu về một descriptor cụ thể nào, nó có thể bỏ qua descriptor đó cho đến khi nó tìm thấy một descriptor mà nó có thể nhận dạng, do vậy nó cho phép việc sử dụng nhiều kiểu thông tin trên một CD-ROM/DVDs. Còn nữa, nếu có một lỗi làm cho descriptor không thể đọc được, một bản sao dư thừa của một descriptor sẽ được sử dụng cho việc khôi phục lỗi.

Một đĩa theo chuẩn ISO 9660 chứa ít nhất một primary descriptor mô tả ISO 9660 file system và một terminating descriptor ám chỉ cuối của chuỗi descriptor. Joliet và UDF là những ví dụ của các file systems thêm vào nhiều descriptors tới chuỗi này.

Primary volume descriptor hoạt động giống như là superblock trên UNIX file system, cung cấp các chi tiết trên các vùng trên đĩa theo chuẩn ISO 9660. Chứa bên trong primary volume descriptor là root directory record mô tả vị trí của root directory. Directory entries được lưu bên trong vùng này. Root directory được lưu trữ như một mở rộng, hoặc một chuỗi tuần tự các sectors, mà chứa mỗi directory entries xuất hiện trong root. Ngoài ra, bởi vì ISO 9660 hoạt động thông qua việc phân chia CD-ROM/DVD thành các khối logic (logical blocks), kích thước của các blocks này được tìm thấy trong primary volume descriptor.

Trường đầu tiên trong một volume descriptor là volume descriptor type, nó có thể có các giá trị sau:

  • Number 0: volume descriptor là một boot record
  • Number 1: volume descriptor là một primary volume descriptor
  • Number 2: volume descriptor là một supplementary volume descriptor
  • Number 3: voluem descriptor là một volume partition descriptor
  • Number 255: volume descriptor là một volume descriptor set terminator
Trường thứ 2 được gọi là standard identifier và được set giá trị CD001 cho một CD-ROM theo chuẩn ISO 9660.
Một trường đáng chú ý khác đó là volume space size, trường naỳ chứa lượng dữ liệu trên CD-ROM
Các thuộc tính file rất đơn giản trong ISO 9660. Thuộc tính file quan trọng nhất xác định xem file đó là thư mục hay là file thông thường.

Có 2 cách để xác định vị trí một file trên một ISO 9660 file system
  • một là interpret các directory names và tìm trong thư mục đó có file cần tìm hay không
  • một cách khác đó là sử dụng các bảng đường dẫn đã được biên dịch trước (precomplied table of paths), ở đó tất cả các entries được liệt kê trong các nội dung của một file với các entries tương ứng.