المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
السلام عليكم
مثال لاستخراج functions List من dlls
كيف يمكن استخراج functions List مع المعرفات (parameters)
مثلا هذا التعريف
كود :
DWORD GetNamedSecurityInfo(
LPTSTR pObjectName, // name of the object
SE_OBJECT_TYPE ObjectType, // type of object
SECURITY_INFORMATION SecurityInfo, // type of security information to retrieve
PSID *ppsidOwner, // receives a pointer to the owner SID
PSID *ppsidGroup, // receives a pointer to the primary group SID
PACL *ppDacl, // receives a pointer to the DACL
PACL *ppSacl, // receives a pointer to the SACL
PSECURITY_DESCRIPTOR *ppSecurityDescriptor // receives a pointer to the security descriptor
);
وليس فقط GetNamedSecurityInfo
كي اعمل برنامج يحول التعريف من لغة السي ++ الى الدلفي
لكن اين نجد كل المعرفات وما يقابلها بالدلفي
ان استخراج الدوال والتوابع مع معرفاتها سيكون دو فائدة رائعة في المستقبل
بحيث تكون كل Windows API معرفة بالدلفي
اتمنى لكم كل التوفيق
تحياتي
الملفات المرفقة
dllfunc.rar (الحجم : 116.5 ك ب / التحميلات : 24)
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
وعليكم السلام ورحمة الله
تقصد استخراج تعاريف دوال مكتبة DLL
ان كان كذلك فهو غير ممكن دون تنقيح!
بالنسبة للتحويل من c/c++الى pascal/delphi تحتاج لمعرفة اللغتين على الأقل الاساس
المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
شكرا ولكن اين اجد بقية المعرفات وما يقابلها ب الدلفي
المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
التحويل بسيط جدا ولا يحتاج للتعمق باللغة
المهم هو المعرفات
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
إقتباس : اين اجد بقية المعرفات
غالبا من عند صاحبها
في حالة جهاز او شيئ ما تجدها ضمن الSDK الذي معه وغالبا تكون بلغة السي/c++
بالنسبة للتحويل يمكن الاستفادة من اداة Dr.Bob's HeadConv
كود :
http://www.drbob42.com/headconv/
http://www.drbob42.com/delphi/headconv.htm
طبعا لتستخدمها تحتاج لملف .h
المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
يعني هجوم على السورس كود
كود :
في حالة جهاز او شيئ ما تجدها ضمن الSDK الذي معه وغالبا تكون بلغة السي/c++
نعم اشهر المعرفات الموجودة في c++
كود :
لتستخدمها تحتاج لملف .h
ممكن مثال
انت تقصد .h الوجود في السورس
PHP كود :
C / C ++ Type ObjectPascal Type unsigned short [ int ] Word [ signed ] short [ int ] SmallInt unsigned [ int ] Cardinal { 3.25 fix } [ signed ] int Integer UINT LongInt { or Cardinal } WORD Word DWORD LongInt { or Cardinal } unsigned long LongInt { or Cardinal } unsigned long int LongInt { or Cardinal } [ signed ] long LongInt [ signed ] long int LongInt char Char signed char ShortInt unsigned char Byte char * PChar LPSTR or PSTR PChar LPWSTR or PWSTR PWideChar { 3.12 fix } void * Pointer BOOL Bool float Single double Double long double Extended LP , NP , PP , P prefix : if first = T then T becomes P else P prefix HANDLE THandle FARPROC TFarProc ATOM TAtom TPOINT TPoint TRECT TRect COLORREF TColorRef OFSTRUCT TOFStruct DEBUGHOOKINFO TDebugHookInfo BITMAP TBitMap RGBTRIPLE TRGBTriple RGBQUAD TRGBQuad BITMAPCOREHEADER TBitmapCoreHeader BITMAPINFOHEADER TBitmapInfoHeader BITMAPINFO TBitmapInfo BITMAPCOREINFO TBitmapCoreInfo BITMAPFILEHEADER TBitmapFileHeader HANDLETABLE THandleTable METARECORD TMetaRecord METAHEADER TMetaHeader METAFILEPICT TMetaFilePict TEXTMETRIC TTextMetric NEWTEXTMETRIC TNewTextMetric LOGBRUSH TLogBrush LOGPEN TLogPen PATTERN TPattern { TLogBrush } PALETTEENTRY TPaletteEntry LOGPALETTE TLogPalette LOGFONT TLogFont ENUMLOGFONT TEnumLogFont PANOSE TPanose KERNINGPAIR TKerningPair OUTLINETEXTMETRIC TOutlineTextMetric FIXED TFixed MAT2 TMat2 GLYPHMETRICS TGlyphMetrics POINTFX TPointFX TTPOLYCURVE TTTPolyCurve TTPOLYGONHEADER TPolygonHeader ABC TABC RASTERIZER_STATUS TRasterizer_Status MOUSEHOOKSTRUCT TMouseHookStruct CBTACTIVATESTRUCT TCBTActivateStruct HARDWAREHOOKSTRUCT THardwareHookStruct EVENTMSG TEventMsg WNDCLASS TWndClass MSG TMsg MINMAXINFO TMinMaxInfo SEGINFO TSegInfo ACCEL TAccel PAINTSTRUCT TPaintStruct CREATESTRUCT TCreateStruct CBT_CREATEWND TCBT_CreateWnd MEASUREITEMSTRUCT TMeasureItemStruct DRAWITEMSTRUCT TDrawItemStruct DELETEITEMSTRUCT TDeleteItemStruct COMPAREITEMSTRUCT TCompareItemStruct WINDOWPOS TWindowPos WINDOWPLACEMENT TWindowPlacement NCCALCSIZE_PARAMS TNCCalcSize_Params SIZE TSize MENUITEMTEMPLATEHEADER TMenuItemTemplateHeader MENUITEMTEMPLATE TMenuItemTemplate DCB TDCB COMSTAT TComStat MDICREATESTRUCT TMDICreateStruct CLIENTCREATESTRUCT TClientCreateStruct MULTIKEYHELP TMultiKeyHelp HELPWININFO THelpWinInfo CTLSTYLE TCtlStyle CTLtype TCtltype CTLINFO TCtlInfo DDEADVISE TDDEAdvise DDEDATA TDDEData DDEPOKE TDDEPoke DDEAACK TDDEAck DEVMODE TDevMode KANJISTRUCT TKanjiStruct
الكل وليس البعض
المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
file.h
إقتباس : bool closeNT();
void close();
bool truncateNT();
void truncate();
file.pas
إقتباس : var
closeNT: function: Bool cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
close: procedure cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
truncateNT: function: Bool cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
truncate: procedure cdecl {$IFDEF WIN32} stdcall {$ENDIF};
هذا خطا
ايضا class
كود :
class VDFileStream : public VDFile, public IVDRandomAccessStream {
private:
VDFileStream(const VDFile&);
const VDFileStream& operator=(const VDFileStream& f);
public:
VDFileStream() {}
VDFileStream(const char *pszFileName, uint32 flags = nsVDFile::kRead | nsVDFile::kDenyWrite | nsVDFile::kOpenExisting)
: VDFile(pszFileName, flags) {}
VDFileStream(const wchar_t *pwszFileName, uint32 flags = nsVDFile::kRead | nsVDFile::kDenyWrite | nsVDFile::kOpenExisting)
: VDFile(pwszFileName, flags) {}
VDFileStream(VDFileHandle h) : VDFile(h) {}
~VDFileStream();
const wchar_t *GetNameForError();
sint64 Pos();
void Read(void *buffer, sint32 bytes);
sint32 ReadData(void *buffer, sint32 bytes);
void Write(const void *buffer, sint32 bytes);
sint64 Length();
void Seek(sint64 offset);
};
كود :
var
VDFileStream: function(const _1: VDFILE&): PRIVATE: cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
operator=: function(const f: VDFILESTREAM&): CONST cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
VDFileStream: var function: UBLIC: cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
VDFileStream: function(const pszFileName: PChar;
VDFile(pszFileName: UINT32 FLAGS = NSVDFILE::KREAD | NSVDFILE::KDENYWRITE | NSVDFILE::KOPENEXISTING) :;
_3: FLAGS): Integer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
VDFileStream: function(const pwszFileName: PWCHAR_T;
VDFile(pwszFileName: UINT32 FLAGS = NSVDFILE::KREAD | NSVDFILE::KDENYWRITE | NSVDFILE::KOPENEXISTING) :;
_3: FLAGS): Integer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
VDFileStream: function(h: VDFILEHANDLE): Integer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
~VDFileStream: function: Integer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
GetNameForError: var function: CONST WCHAR_T cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
Pos: function: SINT64 cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
Read: procedure(buffer: Pointer;
bytes: SINT32) cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
ReadData: function(buffer: Pointer;
bytes: SINT32): SINT32 cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
Write: procedure(const buffer: Pointer;
bytes: SINT32) cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
Length: function: SINT64 cdecl {$IFDEF WIN32} stdcall {$ENDIF};
var
Seek: procedure(offset: SINT64) cdecl {$IFDEF WIN32} stdcall {$ENDIF};
المشاركات : 418
المواضيع 50
:
: 0
الإنتساب : Sep 2009
implicit
كود :
function VDFileStream(const _1: VDFILE&): PRIVATE: cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function operator=(const f: VDFILESTREAM&): CONST cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function var VDFileStream: UBLIC: cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function VDFileStream(const pszFileName: PChar;
VDFile(pszFileName: UINT32 FLAGS = NSVDFILE::KREAD | NSVDFILE::KDENYWRITE | NSVDFILE::KOPENEXISTING) :;
_3: FLAGS): Integer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function VDFileStream(const pwszFileName: PWCHAR_T;
VDFile(pwszFileName: UINT32 FLAGS = NSVDFILE::KREAD | NSVDFILE::KDENYWRITE | NSVDFILE::KOPENEXISTING) :;
_3: FLAGS): Integer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function VDFileStream(h: VDFILEHANDLE): Integer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function ~VDFileStream: Integer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function var GetNameForError: CONST WCHAR_T cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function Pos: SINT64 cdecl {$IFDEF WIN32} stdcall {$ENDIF};
procedure Read(buffer: Pointer;
bytes: SINT32) cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function ReadData(buffer: Pointer;
bytes: SINT32): SINT32 cdecl {$IFDEF WIN32} stdcall {$ENDIF};
procedure Write(const buffer: Pointer;
bytes: SINT32) cdecl {$IFDEF WIN32} stdcall {$ENDIF};
function Length: SINT64 cdecl {$IFDEF WIN32} stdcall {$ENDIF};
procedure Seek(offset: SINT64) cdecl {$IFDEF WIN32} stdcall {$ENDIF};
implementation
function VDFileStream; external 'X.DLL';
function operator=; external 'X.DLL';
function VDFileStream; external 'X.DLL';
function VDFileStream; external 'X.DLL';
function VDFileStream; external 'X.DLL';
function VDFileStream; external 'X.DLL';
function ~VDFileStream; external 'X.DLL';
function GetNameForError; external 'X.DLL';
function Pos; external 'X.DLL';
procedure Read; external 'X.DLL';
function ReadData; external 'X.DLL';
procedure Write; external 'X.DLL';
function Length; external 'X.DLL';
procedure Seek; external 'X.DLL';
end.