الأسمبلى شكله مقروء إلى حد كبير....
هأعتبر نفسي جربته :D ...
الأسمبلى شكله مقروء إلى حد كبير....
هأعتبر نفسي جربته :D ...
طيب انظر هذه الدالة :
ULONGLONG *GetFileClusters(
PCHAR lpFileName,
ULONG ClusterSize,
ULONG *ClCount,
ULONG *FileSize
)
{
HANDLE hFile;
ULONG OutSize;
ULONG Bytes, Cls, CnCount, r;
ULONGLONG *Clusters = NULL;
BOOLEAN Result = FALSE;
LARGE_INTEGER PrevVCN, Lcn;
STARTING_VCN_INPUT_BUFFER InBuf;
PRETRIEVAL_POINTERS_BUFFER OutBuf;
hFile = CreateFile(lpFileName, FILE_READ_ATTRIBUTES,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
NULL, OPEN_EXISTING, 0, 0);
if (hFile != INVALID_HANDLE_VALUE)
{
*FileSize = GetFileSize(hFile, NULL);
OutSize = sizeof(RETRIEVAL_POINTERS_BUFFER) + (*FileSize / ClusterSize) * sizeof(OutBuf->Extents);
OutBuf = (PRETRIEVAL_POINTERS_BUFFER)malloc(OutSize);
InBuf.StartingVcn.QuadPart = 0;
if (DeviceIoControl(hFile, FSCTL_GET_RETRIEVAL_POINTERS, &InBuf,
sizeof(InBuf), OutBuf, OutSize, &Bytes, NULL))
{
*ClCount = (*FileSize + ClusterSize - 1) / ClusterSize;
Clusters = (PULONGLONG)malloc(*ClCount * sizeof(ULONGLONG));
PrevVCN = OutBuf->StartingVcn;
for (r = 0, Cls = 0; r < OutBuf->ExtentCount; r++)
{
Lcn = OutBuf->Extents[r].Lcn;
for (CnCount = (ULONG)(OutBuf->Extents[r].NextVcn.QuadPart - PrevVCN.QuadPart);
CnCount; CnCount--, Cls++, Lcn.QuadPart++) Clusters[Cls] = Lcn.QuadPart;
PrevVCN = OutBuf->Extents[r].NextVcn;
}
}
free(OutBuf);
CloseHandle(hFile);
}
return Clusters;
}ترجع مصفوفة من الـVCN تمثل الـClusters التي يشغلها Stream خاص بملف .
مأخوذة من كود لـms-rem .
تم تعديل هذه المشاركة بواسطة GamingMasteR في 21 أغسطس 2010 في 20:47 — السبب: لا اعرف لماذا عدد المسافات في الكود يتم تغي&#
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
سؤال:
هل يتوجب اذا معرفة الSectors التي تم تخزين الملف عليها ثم تغيير قيمها كلها ؟؟
و هل يمكن ذلك من خلال الجافا ؟
شكرا
أي نعم .
لا أعرف شئ عن الجافا ![]()
هذه طريقة ... وهناك طرق اخرى .
mov eax, dword ptr ds:[0xffdf0308]
jmp dword ptr [eax+0xfc]
اقتباسو هل يمكن ذلك من خلال الجافا ؟
نعم من خلال JNI :P
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…