واضح آرشیو وب فارسی:سایت ریسک: jj1326-03-2007, 10:37 AMسال نو مبارک در مورداین مشکل دوستان کرکر نتوانستند کمکی بکنند لذا از شما خواهشمندم مرا یاری کنید چگونه می توان در Resource هایی که با تابع LockResource(kernel32.dll ) قفل شده اند تغییراتی را ایجاد کرد؟ برنامه با 6++VC نوشته شده است در نظر دارم نرم افزاری را فارسی سازی کنم و برای اینکاراکثر پنجره ها و کنترلها را راست چین کرده ام اما Resource های پنجره اصلی برنامه با تابع فوق قفل شده اند و در هنگام اجرای برنامه با تابع loadresource از قفل خارج شده و فراخوانی می شوند چگونه این منابع قابل مشاهده و تغییر هستند؟ با تشکر از همه کدنویسان عزیز someone27-03-2007, 04:59 AMسلام. از UpdateResource استفاده کنین. که به این شکل تعریف میشه : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! jj1329-03-2007, 10:16 AMبا تشکر از شما چگونه می توانم این تابع رابه فایل dll مربوطه اضافه کنم و چگونه می توانم این تابع را در مورد منابع مورد نظر بکار برم؟ من در نظر دارم مقدار Extended Style منابع را از 00000000 به 00007000 تغییر دهم تا کنترلها و اجزا برنامه راست چین شوند. در مورد api windows و نحوه استفاده از ان منبع مشروح و کاملی را می توانی به من معرفی کنید؟ متشکرم ، دوست عزیز someone30-03-2007, 03:14 AMدوباره سلام. برای اینکه در منابع تغییری ایجاد کنین دو API وجود داره که بعد از بار کردن فایل Dll مورد نظر در حافظه تغییرات رو در فایل مورد نظر ایجاد میکنه. BeginUpdateResource و EndUpdateResource. برای پیدا کردن توضیحات میتونین به این مبحث از MSDN مراجعه کنین : Resource Overview برای انجام کار فایل مورد نظر رو load می کنین. resource مورد نظرتون رو پیدا میکنین. lock می کنینش و از UpdateResource برای تغییر استفاده میکنین. که البته بین دو API بالایی قرار میگیرند. برای پیدا کردن resource هایی که در فایل مورد نظرتون وجود داره میتونین از این توابع استفاده کنین : EnumResNameProc و EnumResourceNames و نمونه های دیگه ای که البته اسمشون دقیقا یادم نیست. در حقیقت شما دوباره فایل مورد نظرتون رو مینویسین. کار زیاد ساده نیست. بستگی به برنامه داره. تا چه اندازه با برنامه نویسی آشنا هستین؟ با Resource Hacker آشنا هستین؟ تاحالا باهاش کار کردین؟ jj1305-04-2007, 11:10 AMسلام به شما دوست خوب در مورد توابعی که در بالا معرفی کردید مطالعه کردم بسیار مفید بود ، مدت زیادی است کد نویسی نکردم ( سخت افزار هستم ) ، با Resource Hacker و نرم افزار های مشابه کاملا اشنا هستم و زیاد ازش استفاده کردم . من عکسی را از اجرای برنامه را که در برنامه Traceplus/win32 لود کردم ،در لینک زیر قرار دادم ، با توجه به تصویر چگونه باید توابع بالا را در فایل Dll برنامه جای دهم؟ http://rapidshare.com/files/24412236/trace-plus.rar.htm امیدوارم توضیحات خوب شما گره مشکل مرا باز کند باز هم متشکرم someone06-04-2007, 03:20 AMدوباره سلام. فرض کنیم یک module داریم شامل چند resource (مثلا DLL) و یه Interface که از این resource ها استفاده میکنه. وقتی Interface این module رو در حافظه بار میکنه همونطور که گفتین با استفاده از LoadResource یه Handle از resource مورد نظر برمیگردونه و با استفاده از Lockresource در حافظه Lock میشه و یه pointer از اولین بایت اون برمیگرده. تا اینجا که مراحل دسترسی یه Interface به resource .( البته بدون در نظر گرفتن FindResource ). تا زمانی که Interface مورد نظر اجرا نشه تابع Lock صدا نمیشه و تابع Lock در Interface قرار داره نه Module شما باید module مورد نظرتون رو پیدا کنین و با یه Interface دیگه که مینویسن (که در اون UpdateResource , باقی API های مورد استفاده ) module مورد نظر رو تغییر میدین. jj1307-04-2007, 02:13 PMدوست خوبم سلام از توضیح شما متشکرم ، اون دستورالعملی که شما فرمودید از توانایی من خارج است ولی با توجه به اینکه من چهار ماه روی این پروژه وقت گذاشته ام و باید انرا به اتمام برسانم ، ایا راه ساده تری برای اینکار وجود دارد؟ ایا نمی توان تابع LockResource را غیر فعال کرد ؟ اگر راه دیگری وجود ندارد ،خواهش می کنم مرا بیشتر راهنمایی کنید ، تا با کمک شما این مسئله راحل کنیم. بسیار متشکرم rouhallah07-04-2007, 05:15 PMدوست خوبم سلام از توضیح شما متشکرم ، اون دستورالعملی که شما فرمودید از توانایی من خارج است ولی با توجه به اینکه من چهار ماه روی این پروژه وقت گذاشته ام و باید انرا به اتمام برسانم ، ایا راه ساده تری برای اینکار وجود دارد؟ ایا نمی توان تابع LockResource را غیر فعال کرد ؟ اگر راه دیگری وجود ندارد ،خواهش می کنم مرا بیشتر راهنمایی کنید ، تا با کمک شما این مسئله راحل کنیم. بسیار متشکرم سلام دوست عزيز نميدونم شايد اين مطلب كمكت كنه بروبه 115268 rouhallah10-04-2007, 09:37 PMدلیلش اینه که Notepad از نوع single Document هست و پنجره ی اصلی run-time ایجاد میشه. به عبارت دیگه resource ی براش وجود نداره و با کد ساخته میشه. سلام بازم سوال پيش اومد گفتين كه برنامه notepad پنجره اصلي اش run time ميباشد حالا سوال من اينه كدوم برنامه ها و فايلهاي ديگه ويندوز اين طوريند آيا همشون اين گونه طراحي شدند اگه ممكنه اون دست اي رو كه تعدادشون كمتره رو بهم بگوييد اگه هم از هر دونوع تعدادشون زياده چند تا از اون نمونه هايي رو كه پنجره اصلي run time نسيت برام مثال بزنيد راستي روم نميشه سوال دوم رو بپرسم ، ولي اميد دارم جوابم رو بدهيد . گفتين كه پنجره اصلي notepad به صورت كد ميباشد ميخواستم بدونم چطور ميشه محل شروع اين كدها رو پيدا كرد مثلاً تو كدوم آفست قرار دارند و اينكه چطور ميشه تغييرات لازم رو روي اونها انجا م داد باز هم منو ببخشيد واقعاً متشكرم someone11-04-2007, 10:38 AMدوباره سلام. برای اینکه بیشتر با چیزی که گفتم آشنا بشین کافیه یه پروژه ی Win32 ایجاد کنین. میبینین که struct ی وجود داره به نام WNDCLASS ویا WNDCLASSEX که توسط RegisterClass از کلاس های خود Windows استفاده میشه. برنامه رو اجرا کنین و کدش رو ببینین. هر برنامه ای میتونه از این کلاس ها استفاده کنه. اما بیشتر برنامه های Document Type مثل WordPad و خیلی های دیگه از این کلاس استفاده میکنن. (multiDoc) میتونم بدونم منظورتون از تغییر دادن چیه؟ بادستکاری در Offset یه فایل exe میخواین این کار رو انجام بدین؟ rouhallah11-04-2007, 04:37 PMدوباره سلام. برای اینکه بیشتر با چیزی که گفتم آشنا بشین کافیه یه پروژه ی Win32 ایجاد کنین. میبینین که struct ی وجود داره به نام WNDCLASS ویا WNDCLASSEX که توسط RegisterClass از کلاس های خود Windows استفاده میشه. برنامه رو اجرا کنین و کدش رو ببینین. هر برنامه ای میتونه از این کلاس ها استفاده کنه. اما بیشتر برنامه های Document Type مثل WordPad و خیلی های دیگه از این کلاس استفاده میکنن. (multiDoc) میتونم بدونم منظورتون از تغییر دادن چیه؟ بادستکاری در Offset یه فایل exe میخواین این کار رو انجام بدین؟ منظورم از تغيير دادن اينه كه ميخوام محل عنوان برنامه در title bar رو با نماد ضربدر پنجره عوض كنم و ضربدر بستن ( close) را به سمت چپ و عنوان برنامه رو ه سمت راست ببرم چون گفتيد به صورت كد ميباشند ميخواستم محل كدشون رو پيدا كرده و با تغييراتي محل آنها رو عوض كنم براي همين گفتم شايد تو همون آفستها ميشه اين تغيير رو انجام داد اگه شما راه بهتري هم ميشناسيد راهنماييم كنيد. آيا با باز كردن برنامه اي، تحت پروژه ي win32 كه ميخوام تغييراتي توش بدم ميتونم كدهاي مربوطه برنامه رو مشاهده كنم و نيازي به برنامه هاي hexadesimal نداشته باشم؟ با تشكر سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 670]