delphi4arab منتديات دلفي للعرب
برنامج يخفي المجلدات صعب الكسر - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي الأخرى (https://delphi4arab.net/forum/forumdisplay.php?fid=4)
+--- قسم : الامن و تحليل التطبيقات البرمجية (https://delphi4arab.net/forum/forumdisplay.php?fid=31)
+--- الموضوع : برنامج يخفي المجلدات صعب الكسر (/showthread.php?tid=7963)



برنامج يخفي المجلدات صعب الكسر - Delphi4Us - 28-06-2016

استخدمت هذا البرنامج لاخفاء مجلد به ملفات مهمة ونسيت كلمة السر التي وضعتها
وعندما حاولت ان اكتشف وجدت قفزات كثيرة وامور معقدة ربما تفيدكم في دراسته
اسم البرنامج
كود :
WinMend-Folder-Hidden



RE: برنامج يخفي المجلدات صعب الكسر - ALKO - 29-06-2016

السلام عليكم
الرد ليس له صلة بالبرنامج .هي طريقة لاخفاء الملفات و المجلدات
وضعته فقط للاستفدة باقي الزملاء
الطريقة مشهورة لكن رأيت أن طرحها يمكن أن يستفيد منه شخص ما. الله أعلم
أنا شخصيا أقوم باخفاء الملفات والمجلدات بكود دوس
Attrib "Nom de Dossier" +a +r +s +h
و لاخفاء ملف معين
Attrib "Nom de Fichier.extention" +a +r +s +h
Attrib "Alko.rar" +a +r +s +h
و لاعادة أظهار المجلد أو الملف استبدال + بـ -
Attrib "Nom de Dossier" -a -r -s -h
استخدم النجمة لاخفاء كل الملفات داخل المجلد * أو *.*
انسخ الكود في ملف نصي بالنوت باد و احفظه باي اسم لكن الامتداد يكون bat
ثم ماعليك الا دوبل كليك على الملف و هو يقوم بالمهمة


RE: برنامج يخفي المجلدات صعب الكسر - naquadria - 30-09-2016

و عليكم السلام و رحمة الله
للأسف آلية الحماية التي يستعملها البرنامج ضعيفة جدا و يمكن تخطيها بسهولة باستعمال WinRAR مثلا للحصول على الملفات المخفية و كلمة المرور التي يحفظها البرنامج كما هي بدون تشفير...

هذه محكاة عملية انشائه للمجلدات المحمية التي سوف تستقبل الملفات التي سوف يتم اخفائها.
PHP كود :
#include <windows.h>
#include <ntdll.h>

#ifdef _WIN64
char *captionMsg = "64-bit Application";
#else
char *captionMsg = "32-bit Application";
#endif

char *statusMsg = "FAILED!";

#define MAIN_FOLDER L"\\??\\C:\\Winmend~Folder~Hidden"

wchar_t *folders[] = {
 
   MAIN_FOLDER,
 
   MAIN_FOLDER L"\\..." ,
 
   MAIN_FOLDER L"\\...\\cn"
};

void Report(NTSTATUS NtStatus, char *msg, wchar_t *path) {
 
   char buffer[256] = {0};

 
   if (NtStatus == 0)
 
       statusMsg = "SUCCESS";

 
   sprintf(buffer,
 
           "Task:\t%s\nPath:\t%S\nStatus:\t0x%X (%s)",
 
           msg,
 
           path,
 
           NtStatus,
 
           statusMsg);

 
   if (NtStatus == 0)
 
       MessageBoxA(NULL,
 
                   buffer,
 
                   captionMsg,
 
                   MB_ICONINFORMATION);
 
   else
        MessageBoxA
(NULL,
 
                   buffer,
 
                   captionMsg,
 
                   MB_ICONERROR);
}

int main() {

 
   NTSTATUS NtStatus;
 
   HANDLE hTarget;
 
   UNICODE_STRING ObjectName;
 
   OBJECT_ATTRIBUTES ObjectAttributes;
 
   IO_STATUS_BLOCK IoStatusBlock;

 
   for (int x = 0; x < 3; x++) {
 
       RtlInitUnicodeString(&ObjectName, folders[x]);
 
       InitializeObjectAttributes(&ObjectAttributes,
 
                                  &ObjectName,
 
                                  OBJ_CASE_INSENSITIVE,
 
                                  NULL,
 
                                  NULL);

 
       NtStatus = NtCreateFile(&hTarget,
 
                               FILE_READ_DATA | FILE_WRITE_DATA,
 
                               &ObjectAttributes,
 
                               &IoStatusBlock,
 
                               NULL,
 
                               FILE_ATTRIBUTE_HIDDEN,
 
                               FILE_SHARE_READ | FILE_SHARE_WRITE,
 
                               FILE_CREATE,
 
                               FILE_DIRECTORY_FILE,
 
                               NULL,
 
                               0);

 
       Report(NtStatus, "Creating folder...", folders[x]);
 
       NtClose(hTarget);
 
   }

 
   for (int x = 2; x >= 0; x--) {
 
       RtlInitUnicodeString(&ObjectName, folders[x]);

 
       InitializeObjectAttributes(&ObjectAttributes,
 
                                  &ObjectName,
 
                                  OBJ_CASE_INSENSITIVE,
 
                                  NULL,
 
                                  NULL);

 
       NtStatus = NtDeleteFile(&ObjectAttributes);
 
       Report(NtStatus, "Deleting folder...", folders[x]);
 
   }

 
   return 0;
} 

المرفق يحتوي على الملفات المصدرية و التنفيذية للتجربة...


RE: برنامج يخفي المجلدات صعب الكسر - naquadria - 01-10-2016

اضافة بسيطة للب العملية  بالباسكال:
PHP كود :
var
 
 ObjectAttributes: OBJECT_ATTRIBUTES;
 
 IoStatusBlock: IO_STATUS_BLOCK;
 
 hTarget: THandle;
 
 Status: NTSTATUS;
 
 FolderName: UNICODE_STRING; 
 
 
begin
RtlInitUnicodeString
(@FolderName, '\??\C:\Winmend~Folder~Hidden\...\cn');
InitializeObjectAttributes(@ObjectAttributes, @FolderName, OBJ_CASE_INSENSITIVE, 0, nil);

Status := NtCreateFile(@hTarget,
 
FILE_WRITE_DATA + SYNCHRONIZE,
 @
ObjectAttributes,
 @
IoStatusBlock,
 
nil,
 
FILE_ATTRIBUTE_HIDDEN,
 
FILE_SHARE_READ + FILE_SHARE_WRITE,
 
FILE_CREATE,
 
FILE_DIRECTORY_FILE,
 
nil,
 
0);

if 
Status = STATUS_SUCCESS then  
(* Display Message box *)

NtClose(hTarget);
end;