GoGPT Best VPN GoSearch

فاویکون OnWorks

pidlp - آنلاین در ابر

اجرای pidlp در ارائه دهنده هاست رایگان OnWorks از طریق Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS

این دستور pidlp است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.

برنامه:

نام


pidl - یک کامپایلر IDL که به زبان Perl نوشته شده است

خلاصه


pidl -- کمک

pidl [--outputdir[=OUTNAME]] [--includedir DIR...] [--parse-idl-tree] [--dump-idl-tree]
[--dump-ndr-tree] [--header[=OUTPUT]] [--python[=OUTPUT]] [--ndr-parser[=OUTPUT]]
[--مشتری] [--سرور] [--warn-compat] [--آرام] [--کلمه] [--الگو]
[--ws-Parser[=OUTPUT]] [--Diff] [--dump-idl] [--tdr-Parser[=OUTPUT]]
[--samba3-ndr-client[=OUTPUT]] [--samba3-ndr-server[=OUTPUT]] [--typelib=[OUTPUT]]
[ .idl]...

شرح


pidl یک کامپایلر IDL است که به زبان Perl نوشته شده و هدف آن سازگاری با midl است.
کامپایلر IDL مخفف عبارت Interface Definition Language است.

pidl می تواند برای کد سرور DCE/RPC، کد کلاینت DCE/RPC و Wireshark، خرد تولید کند
کالبد شکافی برای ترافیک DCE/RPC.

کامپایلرهای IDL مانند pidl توضیحات یک رابط را به عنوان ورودی خود می گیرند و از آن استفاده می کنند
کد C را تولید کنید (البته پشتیبانی از زبان های دیگر ممکن است بعداً اضافه شود) که می تواند از آنها استفاده کند
رابط‌ها، داده‌های زیبای چاپی ارسال شده با استفاده از این رابط‌ها، یا حتی تولید Wireshark
تجزیه کننده هایی که می توانند داده های ارسال شده از طریق سیم توسط این رابط ها را تجزیه کنند.

pidl فایل های IDL را با همان فرمتی که توسط midl استفاده می شود می گیرد و آن را به یک فایل .pidl تبدیل می کند.
(که حاوی نمایش داخلی pidl از رابط است) و سپس می تواند تولید کند
هر خروجی که نیاز دارید فایل های .pidl باید فقط برای اهداف اشکال زدایی استفاده شوند. نوشتن
تعاریف رابط کاربری شما در قالب idl.

هدف pidl پیاده سازی یک کامپایلر IDL است که بتوان از آن در هنگام توسعه RPC استفاده کرد
زیرسیستم در سامبا (هم برای اهداف مارشال/برداشتن و هم برای رفع اشکال).

OPTIONS


--کمک
نمایش لیست گزینه های موجود

- نسخه
نمایش نسخه pidl

--outputdir OUTNAME
فایل های خروجی را در دایرکتوری مشخص شده بنویسید. پیش‌فرض دایرکتوری فعلی.

--includedir DIR
DIR را به مسیر جستجوی استفاده شده توسط پیش پردازنده اضافه کنید. این گزینه قابل تعیین است
چندین بار.

-- parse-idl-tree
ساختار درختی داخلی را از فایل های ورودی بخوانید نه اینکه فرض کنید حاوی IDL هستند.

--dump-idl
یک فایل IDL جدید ایجاد کنید. نام فایل OUTNAME.idl خواهد بود.

--سرتیتر
یک فایل هدر C برای رابط مشخص شده ایجاد کنید. پیش‌فرض نام فایل روی OUTNAME.h است.

--ndr- تجزیه کننده
یک فایل C و هدر C حاوی تجزیه کننده های NDR ایجاد کنید. نام فایل برای تجزیه کننده
پیش‌فرض ndr_OUTNAME.c است. نام فایل هدر، نام فایل تجزیه کننده خواهد بود
پسوند از .c به .h تغییر کرد.

--tdr-parser
یک فایل C و هدر C حاوی تجزیه کننده های TDR ایجاد کنید. نام فایل برای تجزیه کننده
پیش‌فرض tdr_OUTNAME.c است. نام فایل هدر، نام فایل تجزیه کننده خواهد بود
پسوند از .c به .h تغییر کرد.

--typelib
اطلاعات نوع را در فایل مشخص شده بنویسید.

-- سرور
برای سرور RPC که رابط را پیاده سازی می کند، boilerplate ایجاد کنید. نام فایل
پیش‌فرض ndr_OUTNAME_s.c است.

--قالب
برای سرور RPC که رابط را پیاده سازی می کند، خرد تولید کنید. خروجی نوشته خواهد شد
به stdout.

--ws- تجزیه کننده
یک دیسکتور Wireshark (به زبان C) و فایل هدر ایجاد کنید. نام فایل تشریح
پیش‌فرض روی packet-dcerpc-OUTNAME.c است در حالی که نام فایل هدر به‌طور پیش‌فرض است
packet-dcerpc-OUTNAME.h.

Pidl داده های اضافی را از یک فایل انطباق Wireshark در صورت وجود می خواند. مثل
فایل باید همان مکان فایل IDL اما با پسوند باشد cnf نسبتا
نسبت به بت. برای جزئیات بیشتر در مورد قالب این، به Parse::Pidl::Wireshark::Conformance مراجعه کنید
فایل.

--تفاوت
تجزیه یک فایل IDL، ایجاد یک فایل IDL جدید بر اساس ساختارهای داده داخلی و
ببینید آیا هیچ تفاوتی با فایل IDL اصلی وجود دارد یا خیر. برای رفع اشکال مفید است
pidl.

--dump-idl-tree
به pidl بگویید که نمایش درخت داخلی یک فایل IDL را روی دیسک قرار دهد. مفید
برای اشکال زدایی pidl

--dump-ndr-tree
به pidl بگویید درخت اطلاعات داخلی NDR را که از فایل IDL تولید کرده است، در آن تخلیه کند
دیسک مفید برای اشکال زدایی pidl.

--samba3-ndr-client
ایجاد فراخوانی مشتری برای Samba3 که در rpc_client/ قرار می گیرد. به جای صدا زدن
به کد موجود در rpc_parse/ Samba3، در عوض کد NDR Samba4 را فراخوانی می کند.

--samba3-ndr-سرور
ایجاد فراخوانی سرور برای Samba3، برای قرار دادن در rpc_server/. به جای صدا زدن
به کد موجود در rpc_parse/ Samba3، در عوض کد NDR Samba4 را فراخوانی می کند.

IDL نحو


فایل های IDL همیشه با استفاده از پیش پردازنده C پیش پردازش می شوند.

تقریباً همه چیز در یک رابط (خود رابط، توابع، پارامترها) می تواند
دارای صفات (یا خصوصیات هر نامی که به آنها می دهید). صفات همیشه پیش می آیند
عنصری که روی آن اعمال می شود و با براکت های مربع احاطه شده است ([]). ویژگی های متعدد
با کاما از هم جدا می شوند. آرگومان های ویژگی ها بین پرانتز مشخص می شوند.

برای لیست ویژگی هایی که pidl پشتیبانی می کند، بخش COMPATIBILITY را ببینید.

می توان از نظرات به سبک C استفاده کرد.

انطباق آرایه ها
آرایه سازگار آرایه ای است که به [*] یا [] ختم می شود. چیزهای عجیب در مورد همنوایی
آرایه ها به این صورت هستند که آنها فقط می توانند به عنوان آخرین عنصر یک ساختار ظاهر شوند (مگر اینکه یک وجود داشته باشد
اشاره گر به آرایه سازگار، البته) و اندازه آرایه قبل از نشان داده می شود
خود ساختار روی سیم

بنابراین، در این مثال:

ساختار typedef {
abc طولانی;
شمارش طولانی؛
لانگ فو
[size_is(count)] طولانی s[*];
} ساختار1;

اینگونه به نظر می رسد:

[size_is] [abc] [تعداد] [foo] [s...]

اولین فیلد [size_is] اندازه تخصیص آرایه است و قبل از آرایه رخ می دهد
عناصر و حتی قبل از تراز سازه.

توجه داشته باشید که size_is() می تواند به یک ثابت اشاره کند، اما سیم را تغییر نمی دهد
نمایندگی. آرایه را به یک آرایه ثابت تبدیل نمی کند.

midl.exe آرایه فوق را به صورت هدر C زیر می نویسد:

ساختار typedef {
abc طولانی;
شمارش طولانی؛
لانگ فو
طولانی s [1];
} ساختار1;

pidl رویکرد متفاوتی دارد و آن را اینگونه می نویسد:

ساختار typedef {
abc طولانی;
شمارش طولانی؛
لانگ فو
طولانی *s;
} ساختار1;

متفاوت است آرایه ها
یک آرایه متفاوت به شکل زیر است:

ساختار typedef {
abc طولانی;
شمارش طولانی؛
لانگ فو
[size_is(count)] طولانی *s;
} ساختار1;

روی سیم به شکل زیر خواهد بود:

[abc] [شمارش] [foo] [PTR_s] [شمارش] [s...]

درست شد آرایه ها
یک آرایه ثابت به شکل زیر است:

ساختار typedef {
طولانی s [10];
} ساختار1;

نمایش NDR دقیقاً مانند 10 اعلامیه طولانی جداگانه به نظر می رسد. اندازه آرایه است
روی سیم کدگذاری نشده است

pidl همچنین از آرایه های "inline" پشتیبانی می کند که بخشی از استاندارد IDL/NDR نیستند. اینها هستند
اینگونه اعلام کرد:

ساختار typedef {
uint32 foo;
تعداد uint32;
uint32 bar;
طولانی s[count];
} ساختار1;

این به این شکل ظاهر می شود:

[فو] [شمارش] [نوار] [s...]

آرایه های ثابت افزونه ای هستند که برای پشتیبانی از برخی از ساختارهای تعبیه شده عجیب و غریب اضافه شده اند
توصیفگرها و قرقره های امنیتی

این بخش به هیچ وجه کامل نیست. برای مشاهده اسناد OpenGroup و MSDN مراجعه کنید
اطلاعات اضافی

COMPATIBILITY با MIDL


گم امکانات in pidl
ویژگی‌های MIDL زیر (هنوز) در pidl پیاده‌سازی نشده‌اند یا با یک پیاده‌سازی می‌شوند
رابط ناسازگار:

· ارتباط ناهمزمان

· Typelibs (فایل های tlb.)

· پشتیبانی دیتاگرام (ncadg_*)

پشتیبانی خواص و اظهارات
in, out, ref, length_is, switch_is, size_is, uuid, case, default, string, unique, ptr,
pointer_default، v1_enum، object، helpstring، range، local، call_as، endpoint،
switch_type، progid، coclass، iid_is، present_as، transmit_as، import، شامل،
cpp_quote.

PIDL خاص املاک
عمومی
دارایی [عمومی] در یک ساختار یا اتحادیه یک پسوند pidl است که باعث می شود
توابع کشش/فشار تولید شده غیراستاتیک باشد. این به شما امکان می دهد تا انواع آن را اعلام کنید
می تواند بین ماژول ها استفاده شود. اگر [عمومی] را مشخص نکردید، توابع pull/push را مشخص کنید
برای غیر از توابع سطح بالا، ایستا اعلام می شوند.

بدون چاپ
ویژگی [noprint] یک پسوند pidl است که به شما امکان می دهد آن pidl را مشخص کنید
یک تابع ndr_print_*() برای آن ساختار یا اتحادیه ایجاد نکنید. این زمانی استفاده می شود که
شما می خواهید تابع چاپ خود را تعریف کنید که یک ساختار را به شیوه ای زیباتر چاپ کند.
یک مثال خوب استفاده از [noprint] در dom_sid است که امکان چاپ زیبا را فراهم می کند
SID ها

ارزش
ویژگی [value(expression)] یک پسوند pidl است که به شما اجازه می دهد تا آن را مشخص کنید
مقدار یک فیلد زمانی که روی سیم قرار می گیرد. این اجازه می دهد تا زمینه هایی که همیشه دارای یک هستند
مقدار شناخته شده ای که باید به طور خودکار پر شود، بنابراین API برنامه نویس تر می شود
مهربان. عبارت می تواند هر عبارت C باشد.

نسبی
ویژگی [نسبی] را می توان بر روی یک اشاره گر ارائه کرد. هنگامی که از آن استفاده می شود، آن را اعلام می کند
اشاره‌گر به‌عنوان یک اشاره‌گر «نسبی» به سبک spoolss، به این معنی که روی سیم به‌عنوان نشانگر ظاهر می‌شود
یک افست در ساختار کپسوله سازی فعلی. این بخشی از حالت عادی نیست
IDL/NDR، اما یک پسوند بسیار مفید است زیرا از رمزگذاری دستی بسیاری جلوگیری می کند
ساختارهای پیچیده

زیر زمینه (طول)
مشخص می کند که اندازه ای از طول بایت ها باید خوانده شوند، به دنبال آن یک حباب به آن اندازه،
که به عنوان NDR تجزیه خواهد شد.

زیر زمینه () اکنون منسوخ شده است و نباید در کد جدید استفاده شود. در عوض، استفاده کنید
present_as() or transmit_as().

پرچم
گزینه های بولی را که بیشتر برای گزینه های NDR سطح پایین استفاده می شود، مشخص کنید. چندین گزینه می تواند باشد
مشخص شده با استفاده از | شخصیت. توجه داشته باشید که پرچم ها توسط زیرساخت ها به ارث می رسند!

بدون تمایز
ویژگی [nodiscriminant] در یک اتحادیه به این معنی است که unint16 متمایز معمول است
فیلد در شروع اتحاد روی سیم حذف شده است. این به طور معمول مجاز نیست
در IDL/NDR، اما برای برخی از ساختارهای قرقره استفاده می شود.

مجموعه حروف (نام)
مشخص کنید که آرایه یا رشته از مجموعه نویسه های مشخص شده استفاده می کند. اگر این ویژگی باشد
مشخص شده است، pidl وظیفه تبدیل داده های کاراکتر از این فرمت را به عهده خواهد گرفت
قالب میزبان مقادیر رایج مورد استفاده UCS2، DOS و UTF8 هستند.

پشتیبانی نشده MIDL املاک or اظهارات
جمع‌آوری‌پذیر، appobject، async_uuid، bindable، control، defaultbind، defaultcollelem،
مقدار پیش‌فرض، جدول پیش‌فرض، دیسپینترفیس، نمایش باند، دوگانه، ورودی، first_is،
helpcontext، helpfile، helpstringcontext، helpstringdll، hidden، idl_module، idl_quote،
id، immediatebind، importlib، includelib، last_is، lcid، Licensed، max_is، ماژول،
ms_union، no_injected_text، غیرقابل مرور، غیرقابل ایجاد، غیر قابل توسعه، odl، oleautomation،
اختیاری، پراگما، propget، propputref، propput، فقط خواندنی، درخواست ویرایش، محدود، بازیابی،
منبع، uidefault، usegetlasterror، vararg، vi_progid، wire_marshal.

مثال ها


# تولید تجزیه کننده Wireshark
$ ./pidl --ws-parser -- atsvc.idl

# تولید یک تجزیه کننده و هدر TDR
$ ./pidl --tdr-parser --header -- regf.idl

# ایجاد مشتری و سرور Samba3
$ ./pidl --samba3-ndr-client --samba3-ndr-server -- dfs.idl

# تولید یک تجزیه کننده، سرویس گیرنده و سرور Samba4 NDR
$ ./pidl --ndr-parser --ndr-client --ndr-server -- samr.idl

با استفاده از خدمات onworks.net از pidlp آنلاین استفاده کنید


سرورها و ایستگاه های کاری رایگان

دانلود برنامه های ویندوز و لینوکس

دستورات لینوکس

Ad




×
تبلیغات
❤️اینجا خرید کنید، رزرو کنید یا بخرید - رایگان است، به رایگان ماندن خدمات کمک می‌کند.