sandbox_document_final.odt

C và copy file ể ướ ồ ẩ ị ườ ? ư ụ

This preview shows page 13 - 15 out of 18 pages.

c) và copy file ướ ườ ư ntStatus = MakeFilePath(szPathRedirect, TRUE, pSes->SessionID); if (!NT_SUCCESS(ntStatus)) goto RET_NTSTATUS; goto CREATE_IN_SANDBOX; } Các ch đ FILE_OVERWRITE, FILE_OVERWRITE_IF thì hãy xem thêm ế document c a hàm NtCreateFile đ bi t cách chúng nó ho t đ ng. đây ch nói đ n ế ế hàm MakeFilePath(). Ta s t o m i file trong b d li u riêng, nghĩa là ví d NtCreateFile g i t o file ẽ ạ C:\Windows\System32\newfile.dll thì ta s ph i t o file C:\SANDBOX\1001\C_\Windows\System32\newfile.dll. Tuy nhiên khi kh i t o session thì b tài nguyên riêng c a ta ch có th m c C:\SANDBOX\1001\ tr ng tr n, nên ta ư ơ
Image of page 13

Subscribe to view the full document.

s ph i t o các th m c C_, Windows, System32 tr c khi có th t o newfile.dll ư ướ ể ạ trong các th m c đó. Hàm MakeFilePath() th c hi n đi u đó. ư Phù gõ văn b n dài m t wé, đo n còn l i là ph n ghi log, m c dù đó là m c đích cu i cùng và quan tr ng nh t c a d án sandbox nh ng code thì cũng đ n gi n thôi nhé. ư ơ Thu t toán c a hàm SbNtWriteFile: Nh đã nói, các hàm x lý file (cũng nh x lý các tài nguyên khác) có 2 lo i hàm chính: lo i ư ư 1 nh n tham s b ng filepath còn lo i 2 nh n tham s b ng handle. Hàm NtCreateFile là ví d đ y đ nh t v hàm lo i 1, còn hàm NtWriteFile ta mô t d i đây là ví d c th c a ướ hàm lo i 2. Đo n 1: Xác đ nh session mà process hi n t i đang ch y PPROCESS_ENTRY pProcess; PSESSION_ENTRY pSes = IsInSandbox(&pProcess); NTSTATUS ntStatus = STATUS_SUCCESS; LPWSTR szPath = NULL; BOOLEAN bSandboxed = FALSE; if (pSes == NULL) goto RET_OLD; Đo n này g n nh là đi m chung c a t t c các hàm x lý Sandbox, m c đích c a nó ư hoàn toàn gi ng v i đo n code này hàm NtCreateFile, đó là ki m tra xem process hi n t i có đang ch y trong sandbox hay không. Đo n 2: Ki m tra tham s // Ki m tra tham s __try { ProbeForRead(Buffer, SIZE1(Length), sizeof(UCHAR)); ProbeForWrite(IoStatusBlock, sizeof(IO_STATUS_BLOCK), sizeof(UCHAR)); } __except(EXCEPTION_EXECUTE_HANDLER) { goto RET_OLD; } M c đích đo n code này cũng t ng t nh trên hàm NtCreateFile, nói chung b t đ u các ươ ư hàm x lý đ u nên ki m tra các tham s truy n vào, ít nh t là các tham s mà hàm chuy n h ng có s d ng. Ngoài ra vi c ki m tra tham s này còn ph thu c vào vi c ướ g i NtXxx t user-mode hay t kernel-mode n a cho nên c n ph i chú ý s d ng cho đúng.
Image of page 14
Image of page 15
  • Fall '19

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern