PDA

View Full Version : امن کردن برنامه ،‌حداقل در مقابل Resource Hacker



Mojgan110
سه شنبه 11 مهر 1385, 16:53 عصر
بله ! بله !! متوجه هستم که تاپیک امنیت نرم افزار هم داریم ! ولی اونجا سطح مطالبش فراتر از سواله من بود ( قلمروی ژنرال اینپرایز) . نخواستم الکی کثیفش کنم :خجالت:

یک برنامه ای نوشتم که میخوام به یک نفر بدهمش ، ولی خب مجانی .
اون هم میدونم که میخواد با چیزی مثل Resource Hacker ( فقط اسمش را شنیدم) ، حتی همون قسمت About برنامه ام را هم که اسمم را داخلش نوشته ام را هم دستکاری کنه و به اسم کافی نتش بنویسه !

خب زورم میاد دیگه !! من زحمت بکشم و چیزی بنویسم و مجانی بهش بدم ولی اون حتی به اسمم توی قسمت about هم رحم نکنه !

واسه همین ،‌میخواستم ببینم چه چیزهایی واسه جلوگیری از این امور ( در همین حد ) سراغ دارید که بتونم استفاده کنم از آنها ؟

متشکرم.

Touska
سه شنبه 11 مهر 1385, 17:21 عصر
یک راح ساده ، استفاده از ابزار فشرده ساز مثل Aspack و غیره ...

ولی بر عکس Aspack هم موجود هست ولی از هیچی بهتره.

موفق باشید :)

MNosouhi
سه شنبه 11 مهر 1385, 19:21 عصر
یه راه خیلی ساده :
فرضا در فرم About یه Label داری که داخل اون مشخصات خودت رو نوشتی . برای اینکه طرف نتونه اون رو دستکاری کنه کافیه در رویداد OnFormShow فرم Aboute برنامت مشخصات خودت رو داخل Caption عنصر Label بریزی . با این کار حتی اگر طرف با برنامه ای بیاد و Caption رو تغییر بده در موقع اجرا دوباره Label مقدار جدید میگیره و مشخصات خودت رو نشون میده.

shobair
چهارشنبه 12 مهر 1385, 10:59 صبح
بله ! بله !! متوجه هستم که تاپیک امنیت نرم افزار هم داریم ! ولی اونجا سطح مطالبش فراتر از سواله من بود ( قلمروی ژنرال اینپرایز) . نخواستم الکی کثیفش کنم :خجالت:

یک برنامه ای نوشتم که میخوام به یک نفر بدهمش ، ولی خب مجانی .
اون هم میدونم که میخواد با چیزی مثل Resource Hacker ( فقط اسمش را شنیدم) ، حتی همون قسمت About برنامه ام را هم که اسمم را داخلش نوشته ام را هم دستکاری کنه و به اسم کافی نتش بنویسه !

خب زورم میاد دیگه !! من زحمت بکشم و چیزی بنویسم و مجانی بهش بدم ولی اون حتی به اسمم توی قسمت about هم رحم نکنه !

واسه همین ،‌میخواستم ببینم چه چیزهایی واسه جلوگیری از این امور ( در همین حد ) سراغ دارید که بتونم استفاده کنم از آنها ؟

متشکرم.



سلام

برنامه های پکر زیادی برای این کار وجود دارند. مثل UPX, ASPack, ASProtect, MoleBox, Petit و غیره. بعضیاشون خیلی قوی هستند. در مورد Resource Hacker باید بگم خیلی ضعیفه و هیچ کدوم از این پکر ها رو باز نمیکنه ولی برنامه هایی وجود دارند که میتونند بعضیهاشون رو باز کنند. من قویترین پکرهایی که دیدم MoleBox و ASProtect و بعضی نسخه های UPX بوده.

شبیر

fotondiamond
پنج شنبه 13 مهر 1385, 01:22 صبح
ولی من در کل از روش Pesare_khob v رو پیشنهاد می کنم، چون تمام این پکرهایی که دوستان گفتن همگی از پکرهای معروف هستن و سریعا آنپکر اونا Release میشه.

ali_abbasi22145
پنج شنبه 13 مهر 1385, 11:36 صبح
یه راه خیلی ساده :
فرضا در فرم About یه Label داری که داخل اون مشخصات خودت رو نوشتی . برای اینکه طرف نتونه اون رو دستکاری کنه کافیه در رویداد OnFormShow فرم Aboute برنامت مشخصات خودت رو داخل Caption عنصر Label بریزی . با این کار حتی اگر طرف با برنامه ای بیاد و Caption رو تغییر بده در موقع اجرا دوباره Label مقدار جدید میگیره و مشخصات خودت رو نشون میده.

سلام
این ارزانترین راه ممکن می تواند باشد ولی من خیلی خوب متوجه نشدم چون برنامه هک کردن را ندارم که تست کنم.
لطفا یک مثال ساده دلفی که روش شما را انجام می دهد اینجا آپلود کنید.

shobair
پنج شنبه 13 مهر 1385, 12:51 عصر
ولی من در کل از روش Pesare_khob v رو پیشنهاد می کنم، چون تمام این پکرهایی که دوستان گفتن همگی از پکرهای معروف هستن و سریعا آنپکر اونا Release میشه.

سلام

اتفاقا اینجوری نیست! شما یک برنامه رو با همین روش درست کنید من در عرض 10 دقیقه براتون کرکش میکنم. چون رشته های حرفی عیناً در متن برنامه تکرار می شوند.

شبیر

MNosouhi
پنج شنبه 13 مهر 1385, 14:54 عصر
اتفاقا اینجوری نیست! شما یک برنامه رو با همین روش درست کنید من در عرض 10 دقیقه براتون کرکش میکنم. چون رشته های حرفی عیناً در متن برنامه تکرار می شوند.

هرچی باشه از روش Pack کردن بهتره . در ضمن کد کردن یه رشته که کاری نداره.

Bahram0110
پنج شنبه 13 مهر 1385, 15:03 عصر
ولی من در کل از روش Pesare_khob v رو پیشنهاد می کنم، چون تمام این پکرهایی که دوستان گفتن همگی از پکرهای معروف هستن و سریعا آنپکر اونا Release میشه.

شاید این روش برای دوست mojgan110 جواب بده ولی باز هم یه مشکلی هست و اون استفاده از یه Hex Edit ِ
که با اون می شه فایل اجرایی رو مثل یه فایل متنی باز کنی و هر متنی رو که دوست داشتی باهاش عوض کنی.

راه حل یکم پیشرقته ترش اینه که
در زمان طراحی برنامه: تنهاتون رو به رمز در بیارید
در زمان لود فایل:متن ها رو رمزگشایی کنید و نشون بدید.
البته برای کارهای عادی نمی خواد زیاد رو این روش سرمایه گذاری کنید.
من در خدمتم!
--------------------

سلام
این ارزانترین راه ممکن می تواند باشد ولی من خیلی خوب متوجه نشدم چون برنامه هک کردن را ندارم که تست کنم.
لطفا یک مثال ساده دلفی که روش شما را انجام می دهد اینجا آپلود کنید.

منظورشون اینه که به کپشن پیش فرض کنترل ها کاری نداشته باشیم و در زمان لود فایل اونها رو مقدار بدیم.
مثلا:
on form load
button01.caption = 'OK';

arash_ebrahimi_nk
پنج شنبه 13 مهر 1385, 15:30 عصر
شاید این روش برای دوست mojgan110 جواب بده ولی باز هم یه مشکلی هست و اون استفاده از یه Hex Edit ِ
که با اون می شه فایل اجرایی رو مثل یه فایل متنی باز کنی و هر متنی رو که دوست داشتی باهاش عوض کنی.

راه حل یکم پیشرقته ترش اینه که
در زمان طراحی برنامه: تنهاتون رو به رمز در بیارید
در زمان لود فایل:متن ها رو رمزگشایی کنید و نشون بدید.
البته برای کارهای عادی نمی خواد زیاد رو این روش سرمایه گذاری کنید.
من در خدمتم!
--------------------


منظورشون اینه که به کپشن پیش فرض کنترل ها کاری نداشته باشیم و در زمان لود فایل اونها رو مقدار بدیم.
مثلا:
on form load
button01.caption = 'OK';

مثلاً اگه رشته ها رو بصورت هگزان ذخیره کنیم و بعد در موقع لود شدن بصورت رشته در بیاریم میشه رمزگذاری؟

shobair
پنج شنبه 13 مهر 1385, 16:06 عصر
هرچی باشه از روش Pack کردن بهتره . در ضمن کد کردن یه رشته که کاری نداره.

سلام

نکته همین جاست! شما یک با این کار رو بکن، مثلا بجای کاراکترها، کد اونها رو بذار. بعد با یک هگزا ادیتور برنامه کامپایل شده رو باز کن و رشته ای که نوشتی رو جستجو کن. آقای دلفی لطف کرده و خودش کد رو تبدیل به کاراکتر کرده!!!
من روشی خیلی پیشرفته تر رو هم کار کردم. اصولاً آبجکت رو از ایتدا روی فرم نذاشتم، بلکه اون رو create کردم. ولی باز هم امن نیست. خودم میتونم عوضش کنم!

ضمناً کی میگه پکرها خوب نیستند؟؟ من نمونه هایی از UPX دستکاری شده دارم که حتی بهترین unPacker ها هم نمیتونن تشخیص بدن چی هست، چه برسه به اینکه بازش کنن.

شبیر

Mojgan110
پنج شنبه 13 مهر 1385, 17:13 عصر
باز هم یه مشکلی هست و اون استفاده از یه Hex Edit ِ
که با اون می شه فایل اجرایی رو مثل یه فایل متنی باز کنی و هر متنی رو که دوست داشتی باهاش عوض کنی.

خب فایل اجرایی با دلفی میسازیم .. درست .. حالا اگه با برنامه های Hex Edit آنرا دستکاری کنیم ، خب مگه نباید دوباره بتونه کامپایل بشه تا مقدارهای جدید را نشون بده ؟ خب خوده Hex Edit ها مگه میونند کامپایل هم بکنند ؟


راه حل یکم پیشرقته ترش اینه که
در زمان طراحی برنامه: تنهاتون رو به رمز در بیارید
در زمان لود فایل:متن ها رو رمزگشایی کنید و نشون بدید.


خب مثلا من بیام و فلان رشته ام را کد کنم .. مثلا با فلان عدد آنرا XOR کنم !! خب بالاخره همان فلان عدد را داخل سورس برنامه ام که نوشته ام دیگه !! اون را پیدا نمیکنند یعنی ؟


من نمونه هایی از UPX دستکاری شده دارم که حتی بهترین unPacker ها هم نمیتونن تشخیص بدن چی هست، چه برسه به اینکه بازش کنن.

من UPX 2.02 را دارم .. چطوره ؟


ضمنا نظرتان چی هست که چندین تا Packer مختلف را اعمال کنیم به برنامه ؟:لبخند:

dkhatibi
پنج شنبه 13 مهر 1385, 19:00 عصر
خب فایل اجرایی با دلفی میسازیم .. درست .. حالا اگه با برنامه های Hex Edit آنرا دستکاری کنیم ، خب مگه نباید دوباره بتونه کامپایل بشه تا مقدارهای جدید را نشون بده ؟ خب خوده Hex Edit ها مگه میونند کامپایل هم بکنند ؟




Hex Editor ها فایل اجرایی را به زبان ماشین ذخیره می کنند که دیگر لازم به کامپایل مجدد آن نیست و تغییرات اعمال شده در فایل اجرایی لحاظ می گردد.

soroush_vs
جمعه 14 مهر 1385, 08:09 صبح
برنامه ای که با ASProtect پروتکت شده باشه به راحتی باDEDE دامپ میشه پس ASProtect فایدهای نداره.
من ابزارهای پروتکت زیادی دیدم اما هیچ کدوم به درد خور نبورند. فقط Obsidium رو خوب و قابل قبول دیدم

fotondiamond
جمعه 14 مهر 1385, 17:40 عصر
من UPX 2.02 را دارم .. چطوره ؟
ضمنا نظرتان چی هست که چندین تا Packer مختلف را اعمال کنیم به برنامه ؟:لبخند:


پک کردن یه فایل با پکرهای مختلف هم خوبه ولی تنها پکرهای معدودی هستن که با همدیگه سازگازند. یعنی شما اگه دوتا پکر غیر سازگار رو با هم استفاده کنین فایل خراب میشه.

یه سری پکرهای دستکاری شده که آقای شبیر گفتن میتونه عملیات آنپک رو سخت کنه نه غیر ممکن.

soroush_vs
شنبه 15 مهر 1385, 08:35 صبح
لطفا تگه توضیحی میدید مثل هم بیارید.
یکی از ایرادات این فروم هیمنه که اعضا توضیحات مفیدی رو بدون منبع و بدون مثال میدن.
لطفا بگید که کدوم پکر ها با هم سازگارند.و این مطلب علمی هست یا تجربی. فردا اگه برنامه اجرا شد ولی تنها یکی از فرم ها اجرا نشد چی؟

shobair
شنبه 15 مهر 1385, 13:09 عصر
پک کردن یه فایل با پکرهای مختلف هم خوبه ولی تنها پکرهای معدودی هستن که با همدیگه سازگازند. یعنی شما اگه دوتا پکر غیر سازگار رو با هم استفاده کنین فایل خراب میشه.

یه سری پکرهای دستکاری شده که آقای شبیر گفتن میتونه عملیات آنپک رو سخت کنه نه غیر ممکن.

سلام

هیچ چیزی غیر ممکن نیست. ولی سخت بودن آنپک شدن، خودش میتونه انگیزه خوبی باشه.

شبیر

SoftDevCo
شنبه 15 مهر 1385, 13:47 عصر
هیچ راه امنی وجود نداره ولی می تونید آبجکت رو با کد نویسی هنگام ایجاد فرم بسازید و مقدار دهی کنید.

کار کرکر رو سخت می کنه ولی غیر ممکن نمی کنه، شاید در عرض 5 دقیقه کرک بشه.

Bahram0110
یک شنبه 16 مهر 1385, 18:08 عصر
خب مثلا من بیام و فلان رشته ام را کد کنم .. مثلا با فلان عدد آنرا XOR کنم !! خب بالاخره همان فلان عدد را داخل سورس برنامه ام که نوشته ام دیگه !! اون را پیدا نمیکنند یعنی ؟


اولا xor یکی از ساده ترین الگوریتم های رمزنگاریه , ثانیا اگه با xor هم رمز کنی تقریبا محاله که یه کاربر عادی متوجه الگوریتم شما بشه!

RezaCPU
دوشنبه 17 مهر 1385, 14:28 عصر
راحت ترین راه در آوردن کد اسکی متن مورد نظر و اعمال یک عملیات ریاضی روی اعداد بدست آمده است که در نهایت برنامه شما هنگام اجرا کد بدست آمده را با عدد شما مقایسه کند در صورت اختلاف مانع اجرای برنامه شود.
مثال:
کد اسکی ali
a=97
l=108
i=105
حال میتوان (n=2*(97+108+105
عدد n را هر بار در برنامه محاسبه کرده و با حاصل عدد قبلی مقایسه کنید.
امید وارم کمکی کرده باشم

fotondiamond
سه شنبه 18 مهر 1385, 02:33 صبح
لطفا تگه توضیحی میدید مثل هم بیارید.
یکی از ایرادات این فروم هیمنه که اعضا توضیحات مفیدی رو بدون منبع و بدون مثال میدن.
لطفا بگید که کدوم پکر ها با هم سازگارند.و این مطلب علمی هست یا تجربی. فردا اگه برنامه اجرا شد ولی تنها یکی از فرم ها اجرا نشد چی؟

الان یادم نیست کدوما سازگارند، ولی تعداد پکرهای سازگار یا به اصطلاح ایزومرف کم هستن.
یه نمونش توی یکی از برنامه های فارسی اجرا شده بود که کرک شد ، صحبت ماله چند سال پیشه و یادم نیست کدوم برنامه بوده. اگه وقت داشتم اسم دو سه تا پکر سازگار با همدیگر رو میذارم، چون الان اسمشون دم دستم نیست و باید پیداشون کنم.

روش RezeCpu هم خوبه و کار کرک رو سخت میکنه نه غیرممکن، میخوام بگم که کرکر میتونه همون مقایسه ای رو که شما انجام میدید تا عدد مربوطه رو با عنوان Label چک کنه رو پیدا کنه و کلک اون If رو به راحتی بکنه.

joker
سه شنبه 18 مهر 1385, 16:23 عصر
چیزی به اسم روش codeInjection را امتحان کردید ؟
البته همیشه عوض کردن یک شرط یا یک متن راحت تر از این کارها هست :)
باید ببینی طرفی که میخوای برنامه را بهش بدی چقدر حالیشه :)
اصلا این کار ارزش داره یا نه ؟
همون UPX را بهش بدی فکر کنم بس باشه :لبخند:

fotondiamond
سه شنبه 18 مهر 1385, 20:18 عصر
ممنون Joker جان روش شما کار کرک رو سخت تر میکنه. البته فک می کنم Red Joker صحیح تره :چشمک:

pbm_soy
سه شنبه 18 مهر 1385, 21:47 عصر
سلام دوستان
بررسی کردن خود فایل اجرایی برنامه هم روش بدی نیست در برابر این قبیل کارها
در زمان اجرا حجم برنامه کنترل شود و یا فاکتورهای دیگر برای تشخیص دادن اینکه آیا تغییر کرده یا خیر

joker
سه شنبه 18 مهر 1385, 23:19 عصر
این یه نمونه که "
1- متن کد شده هست
2- فایل را در مقابل آنپک شدن ( مثثثلا) محافظت میکنه
( خدا InlienPatch کردن را برای همین افرید)

البته بشدت ابتدایی :) ولی بدک نیست :)


پیوست :
1- InlinePatch به روشی گفته میشه که فایل پک شده را بدون نیاز به آنپک کردن کرک میکنن به این صورت که محل OEP را پیدا میکنن ( حالا نپرسین OEP چیه Orginan Entry Point یا نقطه شروع برنامه ) بعد اون را به یه قسمت دیگه فوروارد میکنن اونجا ( که اکثر محلی از فایل هست که دیتای خالی و بلا استفاده وجود داره ) کد نویسی مربوط به کرک در حافظه انجام میشه و بعد بر میگرده به همون OEP اصلی ... اینطوری هیچ وقت حجم فایل تغییر نمیکنه و در اکثر موارد CRC چک برنامه هم آنچنان متوجه نمیشه ( پکر داریم که اینم متوجه بشه ) و الی آخر.......
2- میتونید آنپک کنید ( با UPX ) بعد CRC ها را پچ کنید بعد هم بگردین دنبال قسمتی که کار دیکود کردن را انجام میده
(یه تبدیل ساده هست) بر اساس تغییری که انجام میده متنی که میخواهید باشه را به هگز محاسبه کنید و جایگزین کنید.

oVERfLOW
چهارشنبه 19 مهر 1385, 14:38 عصر
استفاده از بیشتر محافظ‌ها برای حفاظت فایل اجرایی دلفی بی فایده هست
چون با کمک DeDe امکان Dump اون از حافظه به دیسک سخت وجود داره

بنابراین فقط استفاده از محافظهایی که از قابلیت‌های Code Redirection ، رمزگذاری پویا و حذف بخش‌های مورد نظر شما رو داشته باشن می‌تونن تا حدودی مفید باشن
ولی در کل استفاده از دلفی خیلی امنیت نرم‌افزار رو پایین میاره...

Inprise
چهارشنبه 19 مهر 1385, 14:41 عصر
مطلب فوق غیر فنی و فاقد صحت هست .

Mojgan110
چهارشنبه 19 مهر 1385, 16:38 عصر
این یه نمونه که "
1- متن کد شده هست
2- فایل را در مقابل آنپک شدن ( مثثثلا) محافظت میکنه
( خدا InlienPatch کردن را برای همین افرید)

البته بشدت ابتدایی :) ولی بدک نیست :)


.

ممنون.
من فایله نمونه شما را داخل notepad باز کردم ، بعدن دنبال کلمه Button گشتم ، پیدا شد ، بعدن دنبال کلمه Label گشتم ، ولی پیدا نشد ... یعنی شما اصلا اون متنها را مثلا با Canvas نوشته اید آیا ؟

Mojgan110
چهارشنبه 19 مهر 1385, 16:46 عصر
یک سوال ::
همه هی میگن که فلان پکر ، آنپکرش هم هست و اینا .

ولی من در مقالات اینپرایز خوندم که راه صحیح این هست که بعد از پک کردن ، به کمک یک هگز ادیتور ، جاها و نشانه هایی که باعث میشه بتوان تشخیص داد که از چه پکرهایی استفاده شده را دستکاری و عوض کنیم.

حالا اگر این کار را که فرموده اند را هم انجام بدهیم ، اصلا چطور قابل تشخیص میتونه باشه که از چه پکری استفاده شده که بخواد آنپکرش را بزنه ؟ هاین ؟

joker
چهارشنبه 19 مهر 1385, 17:26 عصر
یک سوال ::
همه هی میگن که فلان پکر ، آنپکرش هم هست و اینا .
ولی من در مقالات ژنرال اینپرایز خوندم که راه صحیح این هست که بعد از پک کردن ، به کمک یک هگز ادیتور ، جاها و نشانه هایی که باعث میشه بتوان تشخیص داد که از چه پکرهایی استفاده شده را دستکاری و عوض کنیم.
حالا اگر این کار را که ژنرال فرموده اند را هم انجام بدهیم ، اصلا چطور قابل تشخیص میتونه باشه که از چه پکری استفاده شده که بخواد آنپکرش را بزنه ؟ هاین ؟
وقتی شما از MUP ( انپک کردن به روش دستی ) استفاده میکنید و تجربه لازم را هم داشته باشید اصلا نیازی نیست که واقعا با چه پکری سروکله میزنید....
اینطوری بگم اگه یه پکر جدید بیاد آنپک نمیشه ؟
و اینم بگم که تجربه در مورد آنپک کردن میتونه با اینکه کمی امضا ها هم عوض شده باشه ولی چون ساختار پکر ها و پروتکتورها هرکدوم تقریبا ثابته نمیتونه کرکر را گول بزنه )
( همه امضاء ها و ساختارش کلا فرق میکنه ولی آنپک میشه ، پس این موضوع کار را کمی سخت تر میکنه )


در مورد label ... من از متن ساده استفاده کردم .
حتی متن لیبل هم به دقیقا همینه که نوشته شده هست ....
( توی یک تایمر هم گذاشتم که مثلا یه کم کار سخت تر بشه ولی نتیجه ظاهرا یکیه )
این که شما توی نوتپد ( بابا حداقل یه هگز ادیتور استفاده کن ) کلمه label را پیدا نکردی به خاطر اینه که فایل پک شده هست ... اول باید آنپکش کنید... ( تقریبا از این upx ساده تر پیدا نمیشه ها )


آورفلو جان بابا کمی تجدید نظر کن :)

shobair
چهارشنبه 19 مهر 1385, 20:33 عصر
سلام

نرم افزار PEiD بهترین نرم افزاری هستش که برای تشخیص زبان برنامه نویسی یک فایل اجرائی و یا پکری که اون رو باهاش پک کردن و همچنین اطلاعاتی راجع به ساختار فایلهای PE میده.

نرم افزار PEiD اصولاً یک FreeWare هستش و من ضمیمهء این پست میکنمش.

شبیر

fotondiamond
چهارشنبه 19 مهر 1385, 20:42 عصر
جوکر جان ممنون از اطلاعاتت ،در ضمن تو که خودت این کاره ای از روشهایی بگو که کار کرک رو سخت تر میکنه مثل همون نوشتن چند تا فانکشن که هر بار یکی رو فراخوانی کنی

Amir Lajevardi
چهارشنبه 19 مهر 1385, 21:55 عصر
جناب Shobair از شما و همچنین joker عزیز به خاطر نکات ارزنده و اطلاعات مفیدتون تشکر میکنم.

فقط یه سوال دارم، این برنامه PEiD که قرار دادید، میتونه ملاک مناسبی برای تشخیص امنیت نرم افزار باشه؟؟ یعنی به عبارت دیگه اگر این برنامه نتونه تشخیص بده نرم افزار از چه Packer استفاده میکنه و همچنین نتونه اونرو unpack کنه، میشه گفت برنامه از حداقل امنیت برخوردار است و توسط کرکرهای آماتور و نیمه حرفه ای مورد لطف قرار نخواهد گرفت؟؟

Mojgan110
چهارشنبه 19 مهر 1385, 22:12 عصر
من آموزش آنپک کردن PE Compact را پیدا کردم که میگذارم اینجا ( بصورت فلش):

http://www.teamicu.org/lafarge/Unpacking.PECompact.v2.7x.rar

joker
چهارشنبه 19 مهر 1385, 22:16 عصر
جناب Shobair از شما و همچنین joker عزیز به خاطر نکات ارزنده و اطلاعات مفیدتون تشکر میکنم.
فقط یه سوال دارم، این برنامه PEiD که قرار دادید، میتونه ملاک مناسبی برای تشخیص امنیت نرم افزار باشه؟؟ یعنی به عبارت دیگه اگر این برنامه نتونه تشخیص بده نرم افزار از چه Packer استفاده میکنه و همچنین نتونه اونرو unpack کنه، میشه گفت برنامه از حداقل امنیت برخوردار است و توسط کرکرهای آماتور و نیمه حرفه ای مورد لطف قرار نخواهد گرفت؟؟ اصلا و ابدا ... با این برنامه پک کن ( تقریبا شبیه به UPX عمل میکنه ولی peID نمیتونه نوع واقعی پکر استفاده شده را تشخیص بده ...( البته فعلا تا یه sig براش بدن بیرون که کار 30 ثانیه هست )
کرکش هم یه جورایی راحت تر از Upx هست SFX ):چشمک:

Mojgan110
چهارشنبه 19 مهر 1385, 22:20 عصر
من که بلد نیستم ، ولی توی صحبتهای جوکر ! ، یک MUP دیدم ... این هم که میگذارم ، آموزشه MUP و Inlining هست :

http://inf.75host.com/Tutorials/Exestealth.Complete.rar

shobair
پنج شنبه 20 مهر 1385, 07:46 صبح
جناب Shobair از شما و همچنین joker عزیز به خاطر نکات ارزنده و اطلاعات مفیدتون تشکر میکنم.

فقط یه سوال دارم، این برنامه PEiD که قرار دادید، میتونه ملاک مناسبی برای تشخیص امنیت نرم
افزار باشه؟؟ یعنی به عبارت دیگه اگر این برنامه نتونه تشخیص بده نرم افزار از چه Packer استفاده میکنه و همچنین نتونه اونرو unpack کنه، میشه گفت برنامه از حداقل امنیت برخوردار است و توسط کرکرهای آماتور و نیمه حرفه ای مورد لطف قرار نخواهد گرفت؟؟

سلام

این موضوع که PEiD بتونه تشخیص بده از چه پکری استفاده شده یا خیر نمیتونه خیلی ملاک امنیت باشه. اصولاً امنیت هیچ ملاکی نداره بغیر از اینکه در عمل درصد کرک شدن برنامه پائین باشه. بهترین نرم افزاری که برای این کار دیدم، شاید باورتون نشه ولی ضدویروس BitDefender 8 بود! چون موقع اسکن کردن فایل تمام پکرهاش رو هم تشخیص میداد. مثلاً اگر فایلی ابتدا با UPX بعد با ASPack و بعد با Petit پک شده بود (به فرض! چون یادم نیست این سه تا با هم کار میکردند یا نه) BitDefender 8 تمام اونها رو شناسائی و نشون میداد. البته بعضی پکرها از الگوریتم های مبتنی بر تصادف استفاده میکنند و معمولاً شناسائی نمیشن. مثل ASProtect و یا MoleBox. در مجموع اگر فقط از پکر استفاده کنید، نمیتونید خیلی مطمئن باشید که امنیت رو رعایت کردید. مگر اینکه کد برنامه خودش امنیت رو بیشتر کنه.

شبیر

seyedof
جمعه 21 مهر 1385, 10:34 صبح
سلام
برای کسی که خودش کرک کردن رو بلد باشه چندان نیازی به دونستن نوع برنامه پکر یا حفاظت کننده نیست. هرچند دونستنش کمک میکنه مخصوصا برای کسانی که میخوان با استفاده از برنامه های unpacker یا stripper محافظ رو حذف کنند. ولیکن تقریبا تمام این نرم افزارهای فشرده ساز و محافظ با استفاده از OllyDbg ، رفتن به OEP و دامپ کردن و سپس ایجاد مجدد Reloaction Table با استفاده از برنامه هایی مانند ImpRec به راحتی قابل باز شدن هستند. اصولا بیشتر قفلها هم با همین روش باز میشن و نیازی به دونستن نوع قفل یا فشرده ساز هم نیست.
ممنون علی

Inprise
جمعه 21 مهر 1385, 11:25 صبح
ولیکن تقریبا تمام این نرم افزارهای فشرده ساز و محافظ با استفاده از OllyDbg ، رفتن به OEP و دامپ کردن و سپس ایجاد مجدد Reloaction Table با استفاده از برنامه هایی مانند ImpRec به راحتی قابل باز شدن هستند. اصولا بیشتر قفلها هم با همین روش باز میشن و نیازی به دونستن نوع قفل یا فشرده ساز هم نیست.

این حرف مال مدتها قبل هست . حالا خیلی وقته اینطور نیست ؛

Bahram0110
جمعه 21 مهر 1385, 12:28 عصر
مثلاً اگه رشته ها رو بصورت هگزان ذخیره کنیم و بعد در موقع لود شدن بصورت رشته در بیاریم میشه رمزگذاری؟
این هم یه جور رمز گذاریه!


لطفا تگه توضیحی میدید مثل هم بیارید.
این مطلب علمی هست یا تجربی هم علمی و هم تجربی


استفاده از بیشتر محافظ‌ها برای حفاظت فایل اجرایی دلفی بی فایده هست
چون با کمک DeDe امکان Dump اون از حافظه به دیسک سخت وجود داره

بنابراین فقط استفاده از محافظهایی که از قابلیت‌های Code Redirection ، رمزگذاری پویا و حذف بخش‌های مورد نظر شما رو داشته باشن می‌تونن تا حدودی مفید باشن
ولی در کل استفاده از دلفی خیلی امنیت نرم‌افزار رو پایین میاره...
دلفی از VC به خاطر سختی و از VB به خاطر دلایل خیلی زیادی حتی امنیت فایل اجرایی بهتره

البته من نمی گم برنامه ای که یک بار با دلفی و بار دیگر با وی بی بنویسی وی بی زودتر کرک می شه!
ولی اگه بحث روی Optimize کردن فایل اجرایی باشه برنامه هایی که با دلفی نوشته می شوند می توانند امنیت خیلی بالایی داشته باشند.


یک سوال ::

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

حالا اگر این کار را که فرموده اند را هم انجام بدهیم ، اصلا چطور قابل تشخیص میتونه باشه که از چه پکری استفاده شده که بخواد آنپکرش را بزنه ؟ هاین ؟
1- اگه جاهایی که مشخص کنندهء نوع پکر است را دستکاری کنیم پکر اون تقریبا قابل تشخیص نیست.

2 - من این کار رو انجام دادم ولی خود توابعی که به برنامهء پک شده شما، توسط برنامهء پکر اضافه می شوند همین قسمت ها را بررسی می کنند و در صورت برابر نبودن فایل را اجرا نمی کنند.
CRC ERROR
لا اقل رو پکر هایی که من استفاده کردم جواب نداد.

راه حل : شاید اگه قسمت Anti Debug و(یا) CRC Check را در تنظیمات پکر غیر فعال کنید جواب بده!

Mojgan110
یک شنبه 23 مهر 1385, 11:15 صبح
خب ! من طبق صحبتهای اینجا ، برنامه HexEdit 3.0 را نصب کردم . ( البته نسخه 30 روزه)

بعد یک فرم ساختم در دلفی ، و چیزی داخل Caption آن نوشتم ( از طریق خاصیت پرایرتیز).

همین !

حالاهمون برنامه ی یک فرمی بالا را با HexEdit باز کردم !، وارد منوی Find Replace شدم و عبارتی که داخل کپشن _ فرم نوشته بودم را نوشتم که مثلا با یک چیز دیگر عوض شود.
ولی نشد !

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

shobair
یک شنبه 23 مهر 1385, 12:52 عصر
خب ! من طبق صحبتهای اینجا ، برنامه HexEdit 3.0 را نصب کردم . ( البته نسخه 30 روزه)

بعد یک فرم ساختم در دلفی ، و چیزی داخل Caption آن نوشتم ( از طریق خاصیت پرایرتیز).

همین !

حالاهمون برنامه ی یک فرمی بالا را با HexEdit باز کردم !، وارد منوی Find Replace شدم و عبارتی که داخل کپشن _ فرم نوشته بودم را نوشتم که مثلا با یک چیز دیگر عوض شود.
ولی نشد !

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

سلام

من جای شما بودم از UltraEdit یا WinHex استفاده می کردم. (WinHex بهتره) شما اساس کار رو درست انجام دادید ولی ممکنه اشتباهاتی داشته باشید. مثلاً Save نکرده باشید.

شبیر

kont_200
یک شنبه 23 مهر 1385, 12:55 عصر
بهترین کار برای این عمل استفاده از crc32 هست وبس
--------------------
بهترین کار برای این عمل استفاده از crc32 هست وبس

rainstorm
یک شنبه 23 مهر 1385, 21:51 عصر
در مقابل SourceRescuer که سورس فایل های EXE دلفی رو باز می کنه چه حرفی برای گفتن دارید؟؟؟؟؟
(اگر خواستین SourceRescuer رو پیوست می کنم)

arash_ebrahimi_nk
دوشنبه 24 مهر 1385, 08:59 صبح
در مقابل SourceRescuer که سورس فایل های EXE دلفی رو باز می کنه چه حرفی برای گفتن دارید؟؟؟؟؟
(اگر خواستین SourceRescuer رو پیوست می کنم)

سورس رو به زبان اسمبلی باز میکنه ؟ :لبخند:
لطفاً پیوست کنید.

SoftDevCo
دوشنبه 24 مهر 1385, 10:34 صبح
در مقابل SourceRescuer که سورس فایل های EXE دلفی رو باز می کنه چه حرفی برای گفتن دارید؟؟؟؟؟
(اگر خواستین SourceRescuer رو پیوست می کنم)
چه جلب...............

Amir Lajevardi
دوشنبه 24 مهر 1385, 11:47 صبح
در مقابل SourceRescuer که سورس فایل های EXE دلفی رو باز می کنه چه حرفی برای گفتن دارید؟؟؟؟؟
(اگر خواستین SourceRescuer رو پیوست می کنم)
نظر من اینه که این برنامه ضعیف تر از این صحبتهاست که تهدیدی به شمار بره ، حتی برنامه pack شده با packer عادی رو هم نمیتونه تشخیص بده. همونطور که توی توضیحاتش اومده Event Procedure هایی که تولید میکنه فقط آدرس کد اجرایی رو در داخل فایل EXE نشون میده...

توضیحات برنامه :


EMS Source Rescuer™ is an easy-to-use wizard application which can help you to restore your lost source code. If you lose your Delphi® or C++Builder® project sources, but have an executable file, then this tool can rescue part of lost sources. Rescuer produces all project forms and data modules with all assigned properties and events. Produced event procedures don't have a body (it is not a decompiler), but have an address of code in executable file. In most cases Rescuer saves 50-90% of your time to project restoration.


سایت مربوطه :


http://www.sqlmanager.net/en/products/tools/sourcerescuer

arash_ebrahimi_nk
دوشنبه 24 مهر 1385, 12:32 عصر
لطفاً یه پکر که سرعت اجرای فایل رو کند نکنه (درجه اول) و قدرتمند هم باشه (درجه دوم) معرفی کنید.

joker
دوشنبه 24 مهر 1385, 23:52 عصر
اینم ChangeMe ورژن 2 ویژه دوستداران OllyDBG :چشمک:
اینبار با چیزی پک نشده کار راحت تره :)

arash_ebrahimi_nk
سه شنبه 25 مهر 1385, 08:39 صبح
اینم ChangeMe ورژن 2 ویژه دوستداران OllyDBG :چشمک:
اینبار با چیزی پک نشده کار راحت تره :)

شما که سورس رو نذاشتید

______


پکری که پسورد نذاره - سرعت رو کند نکنه - حجم رو زیاد بالا نبره - قدرتمند هم باشه - یه نفر معرفی کنه. [-o<

مهدی کرامتی
سه شنبه 25 مهر 1385, 11:18 صبح
در مقابل SourceRescuer که سورس فایل های EXE دلفی رو باز می کنه چه حرفی برای گفتن دارید؟؟؟؟؟
(اگر خواستین SourceRescuer رو پیوست می کنم)

1- این ابزار فقط میتواند فرم های ساخته شده در دلفی (*.dfm) را، آنهم بشرطی که فایل اجرایی پک نشده باشد استخراج میکند، آنهم بدون کدهای اجرایی (فقط قالب فرم).

2- نیازی به یادآوری قوانین سایت هست؟!

joker
سه شنبه 25 مهر 1385, 13:58 عصر
شما که سورس رو نذاشتید
_____
پکری که پسورد نذاره - سرعت رو کند نکنه - حجم رو زیاد بالا نبره - قدرتمند هم باشه - یه نفر معرفی کنه. [-o< سورس نسخه قبلی الان در اختیار (دوست )دوستانی که روی نسخه قبلی کار کردند و سوالاتی داشتند قرار گرفته ...
روی این هم یه کم کار کنید ... چند روز دیگه سورس را ضمیمه میکنم..( این یکی کرکش راحت تره با دیس اسمبلرها چون فقط روتینهای آنتی دیباگر و آنتی دامپ توش بکار رفته و پک هم نشده ، فقط به خاطر اونا گذاشتم )
هدفم از این برنامه ها اشنایی بیشتر برنامه نویسهای همکار با روشهای اعمال امنیت توی برنامه هاشون هست... سورس خالی ضمیمه بشه یه جورایی کاربرد کورکورانه در پی خواهد داشت...
البته پله پله .... امیدوارم در نهایت با کمک دیگر دوستان بتونیم به یه چارچوب تقریبا امن برسیم..

rainstorm
سه شنبه 25 مهر 1385, 21:23 عصر
منظورتون از پک کردن فایل اجرایی چیه و چه جوری میشه این کار رو انجام داد؟

arash_a
پنج شنبه 27 مهر 1385, 05:29 صبح
از دوستان کسی میشه این برنامه ی منو هک کنه ؟

Mojgan110
پنج شنبه 27 مهر 1385, 08:11 صبح
سوال سوال :
فرض کنین که داخل برنامه مون ، از یک سری کامپوننتهای جدیدی که ماله خوده دلفی نیستند هم استفاده کرده باشیم. خب هرچی که استفاده میکنیم ، به لیست uses هم استفاده میشه.
حالا میخواهم طوری باشه که وقتی دارند فایل اجرایی را نگاه میکنند و اینا ، نتوانند متوجه بشند که اسمه کامپوننتهایی که استفاده کرده ایم ، چه بوده ؟
چی کار باید کرد حالا ؟
مخسی

soroush_vs
جمعه 28 مهر 1385, 08:08 صبح
عزیزان دلم!
فایل اگر Pack هم بشه در حالت RunTimeمیشه با DEDE اون رو Dump کرد و فایل های با پسوند pas رو ذخیره کرد.
راه حل استفاده از Protector ها است. مانند Obsidium1.3

M A R S H A L
شنبه 04 آذر 1385, 23:06 عصر
عزیزان دلم!
فایل اگر Pack هم بشه در حالت RunTimeمیشه با DEDE اون رو Dump کرد و فایل های با پسوند pas رو ذخیره کرد.
راه حل استفاده از Protector ها است. مانند Obsidium1.3

شما یه جوری میگی فایلهای Pas برنامه رو میده بیرون که یکی ندونه فکر میکنه به کدهای اصلی نوشته شده توسط برنامه نویس (پاسکال) رو میده. بهتره قید میکردید که داخل این فایلهای pas فقط دستورات اسمبلی ترجمه شده و آدرسهای فراخوانی روالها وجود داره.
مورد دوم :
دلیل تاکید شما رو برای استفاده از Obsidium متوجه نشدم. اما بنظر شخصی من بین پروتکتورهای موجود هیچی Exe Cryptor نمیشه.
The Mida هم بد نیست. روش حفاظتی جالبی داره اگه اشتباه نکنم 20 تا Thread ناظر بر صحت عملکرد پروتکتورش در زمان اجرای برنامه پروتکت شده ایجاد میکنه.
مورد سوم:
چه دلیل قانع کننده ای بر "عدم" توانایی و ضعف برنامه های دلفی در مقابل کرک شدن وجود داره ؟ و آیا در برنامه تولید شده زبانهای دیگر این مشکل وجود ندارد؟
آیا برنامه نهایی به زبانی غیر از زبان ماشین ترجمه میشود؟
آیا برنامه ای که به زبان ماشین ترجمه شده قابل ترجمه به کدهای متناظر خود در اسمبلی نمیباشد؟
مسئله کرک شدن یا نشدن یه برنامه مستلزم استفاده از روشهای حرفه ای و ابتکاری در حین کد نویسی هست که برنامه رو "دیر کرک تر" میکنه.

Bahram0110
سه شنبه 08 اسفند 1385, 10:47 صبح
سوال سوال :
فرض کنین که داخل برنامه مون ، از یک سری کامپوننتهای جدیدی که ماله خوده دلفی نیستند هم استفاده کرده باشیم. خب هرچی که استفاده میکنیم ، به لیست uses هم استفاده میشه.
حالا میخواهم طوری باشه که وقتی دارند فایل اجرایی را نگاه میکنند و اینا ، نتوانند متوجه بشند که اسمه کامپوننتهایی که استفاده کرده ایم ، چه بوده ؟
چی کار باید کرد حالا ؟
مخسی

به نظر من که راهی نداره! حتی اگه برنامه رو پک، انکریپت یا . . . کنی

Delphi_Developer
شنبه 19 اسفند 1385, 22:57 عصر
از دوستان کسی میشه این برنامه ی منو هک کنه ؟

بابا ملت Lock سخت افزاری میذارن برنامشون Crack میشه شما به یه Timer دل بستی ؟!!!
بیا اینم فایل Crack شدش :

iranianprogrammers
دوشنبه 21 اسفند 1385, 22:32 عصر
جسارتا !

hossein taghi zadeh
سه شنبه 22 اسفند 1385, 22:41 عصر
یکی از راه‌هایی که برای ایمن کردن exe های دلفی وجود داره :

فشرده کردن Resource با برنامه UPX و سپس کد کردن Resource برنامه با Scramable

(تست شده با Resource Hacker, EXEScope, DeDe, PE Explorer نمی‌شه فرم هاشو دستکاری کرد.)

_____________________________________
با اهل دل شرح غم خود نمی‌کنم تقدیر غصه دل من ناشنیدن است

Hamid_PaK
چهارشنبه 23 اسفند 1385, 16:22 عصر
از این ساده تر نمی شد آنپکش کرد ، تغییری در بنیان UPX نمی داد و ساده شناخته و آنپک شد !!!

یا حق ...

Delphi_Developer
چهارشنبه 15 فروردین 1386, 02:13 صبح
سلام

ببخشید این چند مدت چندتا کار برام پیش اومد نتونستم سر بزنم


جسارتا !
فایل های ضمیمه changeme2.zip

الان ساعت 3 صبحه ! فردا نگاش میکنم خبرشو بهت میدم ...

Delphi_Developer
دوشنبه 10 اردیبهشت 1386, 16:04 عصر
جسارتا !
فایل های ضمیمه changeme2.zip

سلام
ببخشید این چند مدت سرم شلوغ بود نتونستم بیام این سایت - - - این رو امروز دیدم یادم اومد ببخشید - اگه منظور شما به تغییر دادن این هست => من راحت تغییرش دادم اینم فایلش :

Mohammad_Mnt
پنج شنبه 04 مرداد 1386, 09:23 صبح
بعد از خوندن 64 پست، من راه حل مناسبی ندیدم. چه مانع‌هایی می شه برای ک.رک.ر ها گذاشت ؟

Batman
پنج شنبه 04 مرداد 1386, 09:27 صبح
با سلام تا چند روزه دیگه یه برنامه همینجا میذارم آپلودش کنید و اگه تونستید تغییرش بدید حتما خبر بدید
البته قصد من اهانت به کسی نیست فقط دارم تستش میکنم همین
تا چند روز آینده؟

Batman
پنج شنبه 04 مرداد 1386, 17:18 عصر
با سلام
دوستان اینم آدرس همون برنامه هستش اگه توانستید تغییر بدید لطفا توی همون تاپیک بحث رو ادامه بدید
با سلام
http://barnamenevis.org/forum/showthread.php?t=73976&page=2
موفق باشید

milad.a
شنبه 06 آذر 1389, 00:29 صبح
ولی من در مورد این که داخل فرم لود بنویسیم تقریبا مطمینم که امنیت خیلی بالایی داره!

mehdi_naghous
شنبه 06 آذر 1389, 16:40 عصر
بهترین پکر که میتونی استفاده کنی themedia هستش برای کار با پکرها و انپکرها توی سایت www.tuts4you.com (http://www.tuts4you.com) یه سری بزن

Mahmood_M
شنبه 06 آذر 1389, 19:33 عصر
این تاپیک قفل شد :

1. این بحث برای 4 سال پیش هست ، اگر مایل به بحث جدیدی هستید تاپیک جدیدی ایجاد کنید

2. این موضوع مربوط به دلفی نمی شه و بهتره در بخش امنیت نرم افزار بحث رو پیگیری کنید

موفق باشید ...