Trang 2 trên tổng số 2 Đầu tiênĐầu tiên 12
Từ 11 tới 16 trên tổng số 16 kết quả

Đề tài: Lập trình API với tập tin PE

  1. #11
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    843

    Mặc định Xem qua thư mục Security

    Thư mục Security chứa các chứng nhận phần mềm sẽ được Windows "coi ngó" trước khi chương trình được thực thi. Điều đặc biệt là Windows xem nó nhưng bộ nạp (Loader) sẽ không nạp nó lên bộ nhớ, có nghĩa rằng trong các Sections không có nó => nó không có RVA. Vì vậy mà trong IMAGE_DATA_DIRECTORY[IMAGE_DIRECTORY_ENTRY_SECURITY] nếu trường VirtualAddress có nghĩa thì nó là Offset tập tin chứ không phải RVA.

    Thư mục Security nếu có sẽ chứa 1 hoặc nhiều các kiểu chứng nhận khác nhau, mỗi kiểu chứng nhận bao gồm 1 cấu trúc WIN_CERTIFICATE + khối dữ liệu, kích thước khối dữ liệu được lưu trong WIN_CERTIFICATE.dwLength. Các kiểu chứng nhận được xắp xếp tuần tự và được canh chỉnh bằng 8 bytes (mỗi kiểu bắt đầu tại Offset chia hết cho 8).
    Chúng ta có thể nhận con trỏ kiểu chứng nhận đầu tiên như :
    Visual C++ Code:
    1.     LPWIN_CERTIFICATE Security_GetCertificate()
    2.     {
    3.         PIMAGE_DATA_DIRECTORY   pDataDirectory = (PIMAGE_DATA_DIRECTORY)GetDataDirectory(IMAGE_DIRECTORY_ENTRY_SECURITY);
    4.         DWORD                   dwOffset = pDataDirectory->VirtualAddress;
    5.         DWORD                   dwSize = pDataDirectory->Size;
    6.         if (dwAddress && dwSize)
    7.             return (LPWIN_CERTIFICATE)(m_pFile + dwOffset);
    8.         return NULL;
    9.     }

    và tuần tự các chứng nhận khác cho đến hết như :
    Visual C++ Code:
    1.     LPWIN_CERTIFICATE Security_GetCertificate(LPWIN_CERTIFICATE pPrevCertificate, DWORD & dwCurSize, DWORD dwTotalSize)
    2.     {
    3.         dwCurSize += sizeof(WIN_CERTIFICATE) + pPrevCertificate->dwLength - 1;
    4.         DWORD       dw = dwCurSize % 8;
    5.         if (dw)
    6.             dw = 8 - dw;
    7.         dwCurSize += dw;
    8.         if (dwCurSize < dwTotalSize)
    9.             return (LPWIN_CERTIFICATE)((PBYTE)(pPrevCertificate + 1) + pPrevCertificate->dwLength - 1);
    10.         return NULL;
    11.     }
    Trong đó dwTotalSize chính là kích thước tổng mà được lấy từ trường Size trong thư mục Security. và dwCurSize là kích thước cộng dồn tới hết chứng nhận trước đó.

    Khối dữ liệu mà theo sau cấu trúc WIN_CERTIFICATE có bố cục hay nội dung là không có định dạng chung và rất tùy nghi nên tôi không đi sâu hơn. Trong pe4.exe cũng có theo bước 1 vài kiểu chứng nhận, bạn có thể xem qua.

  2. #12
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    375

    Chương trình pe của bạn sử dụng như thế nào vậy?
    sao mình thử mở một số dll trong thư mục windows system mà không thấy hàm nào vậy?

  3. #13
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    843

    Chương trình duyệt xem các thành phần trong PE, bạn mở bất kỳ một tập tin exe, dll, cpl, ocx... và xem thôi. Vài hình ảnh về các hàm nhập, các hàm xuất, các Relocation trong thư viện kernel32.dll

    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Import.jpg
Lần xem:	7
Size:		339.5 KB
ID:		61368Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Export.jpg
Lần xem:	6
Size:		372.9 KB
ID:		61369Click vào hình ảnh để lấy hình ảnh lớn

Tên:		Relocation.jpg
Lần xem:	5
Size:		310.6 KB
ID:		61370

  4. #14
    Ngày gia nhập
    12 2015
    Nơi ở
    Đà Nẵng
    Bài viết
    375

    Lúc trước mình dùng pe1, không xem được
    bây giờ dùng pe4 xem được rồi.

  5. #15
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    843

    Đó là một lẽ, giờ này phần đông chạy theo những kỹ thuật mới, mà chưa tự hỏi kỹ thuật mới là phản bác hay thừa kế từ xa xưa. Đúng, bạn phải lo cho cuộc sống, cơm áo gạo tiền là nỗi lo trước mắt. Ai cũng vậy, ở đề tài này, khô khan và nản chí, tôi muốn viết tiếp, và không vụ lợi, có ai còn tiếp tục quan tâm ?.

  6. #16
    Ngày gia nhập
    09 2011
    Bài viết
    16

    Mặc định Lập trình API với tập tin PE

    Trích dẫn Nguyên bản được gửi bởi MHoang Xem bài viết
    Đó là một lẽ, giờ này phần đông chạy theo những kỹ thuật mới, mà chưa tự hỏi kỹ thuật mới là phản bác hay thừa kế từ xa xưa. Đúng, bạn phải lo cho cuộc sống, cơm áo gạo tiền là nỗi lo trước mắt. Ai cũng vậy, ở đề tài này, khô khan và nản chí, tôi muốn viết tiếp, và không vụ lợi, có ai còn tiếp tục quan tâm ?.
    có tui quan tâm đây bạn
    lần trước có comment mà sao không thấy hiện, lâu không quay lại đây, forum có chức năng duyệt post trước khi đăng à

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn