Trang 2 trên tổng số 3 Đầu tiênĐầu tiên 123 Cuối cùngCuối cùng
Từ 11 tới 20 trên tổng số 21 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
    872

    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
    407

    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
    872

    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:	8
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:	6
Size:		310.6 KB
ID:		61370

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

    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
    872

    Đó 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 à

  7. #17
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    872

    Mặc định Xem thêm thư mục .NET

    Lưu trữ thêm dự án pe5. Nội dung có xem qua thư mục .NET và thay đổi trực tiếp tập tin PE trên khung xem Gridview.

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

Tên:		NET_PE.jpg
Lần xem:	3
Size:		201.5 KB
ID:		66406
    Attached Files Attached Files

  8. #18
    Ngày gia nhập
    08 2017
    Bài viết
    1,971

    Trên một HDH nó báo thiếu thư viện


    Thay đổi trực tiếp dạng Hex thì khó dùng lắm.

  9. #19
    Ngày gia nhập
    02 2014
    Nơi ở
    TP.HCM
    Bài viết
    872

    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    Thay đổi trực tiếp dạng Hex thì khó dùng lắm.
    Đúng đó bạn, đây chỉ là chương trình nghiên cứu thôi, tôi không có ý định lớn hơn. Chỉ dùng nó để thuận tiện làm cái khác cho chính mình và thử nghiệm.

    Trích dẫn Nguyên bản được gửi bởi Monre Xem bài viết
    Trên một HDH nó báo thiếu thư viện
    Chính vì vậy nên có nhiều bài viết tôi đưa mã lên có nói rõ dùng cái gì xây dựng, HĐH, phiên bản v.v... Tập tin thực thi dùng đúng khi bạn có cái phù hợp với nó, quan trọng là mã nguồn viết sai đúng ntn để sửa chữa. Hướng thì có nhưng không thể làm ngay ( viết trình cài đặt, copy thư mục dll, tạo batch, kiểm tra hệ thống đích, ... hoặc viết trên TBD khác chỉ sử dụng những thư viện lõi ...)

    Với riêng caí pe5.exe kèm theo, nó không chỉ có riêng MSVCP140.dll mà còn một số nữa như hình dưới, nếu HĐH nào của bạn không cài VS2015 thì tìm các dll đó trên mạng tải về thảy vào system32.

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

Tên:		Picture.jpg
Lần xem:	4
Size:		347.0 KB
ID:		66464

  10. #20
    Ngày gia nhập
    08 2017
    Bài viết
    1,971

    Cứ xem như Hoang là tác giả, tôi là người dùng cho dễ nói chuyện.

    1 - Có nhiều công cụ cho phép can thiệp, sửa đổi exec (ứng dụng được biên dịch thành exe). Người dùng khai thác hay phát triển thêm là việc của họ
    2 - Một số có cung cấp mã nguồn. Các thư viện đi kèm (import) không nhất thiết phải copy vào System32 (Windows), nó có thể nằm đâu đó trong đường dẫn (path) khi chạy
    3 - Quan niệm write once run anywhere là không đú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