امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ساخت Loader برای فایل های DLL
نویسنده پیام
Tiny Russell آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: شهریور ۱۳۹۹

تشکرها : 0
( 4 تشکر در 2 ارسال )
ارسال: #1
Cool  ساخت Loader برای فایل های DLL
سلام. خدمت همه دوستات گرامی 028
من برنامه ایی دارم که نیاز به پچ شدن یه فایل DLL داره برای کرک کردنش. متاسفانه فایل DLL با روش ASLR یا Address Space Layout Randomization محافظت میشه و هر سری یه آدرس جدید میده
من خودم مناسفانه تا به حال برای DLL ها Loader نساختم و نمی دونم نحوه ساخت به چه شکل هستش.
اگر فایل پچ بشه متاسفانه نرم افزار ارور میده و اجرا نمیشه و احتمالا یه پروتکتور هم در این موضوع داره. به همین جهت علاقه دارم با Loader اجرا کنم.
دوستان تجربه ایی دارن من رو در این زمینه کمک کنن؟  لبخند - بهینه شده برای ورژن جدید
۰۳-مهر-۱۳۹۹, ۲۱:۴۲:۱۹
ارسال‌ها
پاسخ
NO DONGLE آفلاین
مدیر بخش نفوذ و امنیت
*****

ارسال‌ها: 485
موضوع‌ها: 8
تاریخ عضویت: مهر ۱۳۹۱

تشکرها : 46
( 1808 تشکر در 478 ارسال )
ارسال: #2
RE: ساخت Loader برای فایل های DLL
ASLR  رو فيكس كن !!!
 راهاي زيادي داره،ساده ترين براش ما استفاده از ابزار CFF EXPLORER هست
1-DLL رو درون برنامه درگ كنيد
2- به قسمت Optional Header
3- به فيلد DllCharacteristics بريد ودبل كليك كنيد
4- گزينه DLL can move رو غير فعال كنيد
5-ذخيره كنيد(قبلش ي بك  آپ از فايلتون بگيريد)

[تصویر:  PE-NT-Header-Optional.PNG]

روش دوم: همون روش اول با اسكريپ پايتون

کد php:
import argparse
import os
import pefile


class DllCharacteristics():
 
   def __init__(self):
 
       self.IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE False
        self
.IMAGE_DLLCHARACTERISTICS_WDM_DRIVER False
        self
.IMAGE_DLLCHARACTERISTICS_NO_BIND False
        self
.IMAGE_DLLCHARACTERISTICS_NO_SEH False
        self
.IMAGE_DLLCHARACTERISTICS_NO_ISOLATION False
        self
.IMAGE_DLLCHARACTERISTICS_NX_COMPAT False
        self
.IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY False
        self
.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE False


def get_dll_characteristics
(path):
 
   foo DllCharacteristics()

 
   pe pefile.PE(pathfast_load=True)
 
   dll_characteristics pe.OPTIONAL_HEADER.DllCharacteristics

    if dll_characteristics 
0:
 
       if dll_characteristics >= 32768:
 
           foo.IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE True
            dll_characteristics 
-= 32768

        if dll_characteristics 
>= 8192:
 
           foo.IMAGE_DLLCHARACTERISTICS_WDM_DRIVER True
            dll_characteristics 
-= 8192

        if dll_characteristics 
== 2048 or dll_characteristics 2080:
 
           foo.IMAGE_DLLCHARACTERISTICS_NO_BIND True
            dll_characteristics 
-= 2048

        if dll_characteristics 
== 1024 or dll_characteristics 1056:
 
           foo.IMAGE_DLLCHARACTERISTICS_NO_SEH True
            dll_characteristics 
-= 1024

        if dll_characteristics 
== 512 or dll_characteristics 544:
 
           foo.IMAGE_DLLCHARACTERISTICS_NO_ISOLATION True
            dll_characteristics 
-= 512

        if dll_characteristics 
== 256 or dll_characteristics 288:
 
           foo.IMAGE_DLLCHARACTERISTICS_NX_COMPAT True
            dll_characteristics 
-= 256

        if dll_characteristics 
>= 128:
 
           foo.IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY True
            dll_characteristics 
-= 128

        if dll_characteristics 
== 64:
 
           foo.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE True
            dll_characteristics 
-= 64

    return foo


if __name__ == '__main__':

 
   parser argparse.ArgumentParser()
 
   parser.add_argument('dir'help='Directory to scan')
 
   args parser.parse_args()

 
   dep_enabled = []
 
   dep_disabled = []

 
   aslr_enabled = []
 
   aslr_disabled = []

 
   for rootdirsfiles in os.walk(args.dir):
 
       for f in files:
 
           bar get_dll_characteristics(os.path.join(rootf))

 
           if bar.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE:
 
               aslr_enabled.append(f)
 
           else:
 
               aslr_disabled.append(f)

 
           if bar.IMAGE_DLLCHARACTERISTICS_NX_COMPAT:
 
               dep_enabled.append(f)
 
           else:
 
               dep_disabled.append(f)

 
   print "ASLR Enabled: "
 
   print "=============="
 
   for i in aslr_enabled:
 
       print i
    print 
""

 
   print "ASLR Disabled: "
 
   print "==============="
 
   for i in aslr_disabled:
 
       print i
    print 
""

 
   print "DEP Enabled: "
 
   print "============="
 
   for i in dep_enabled:
 
       print i
    print 
""

 
   print "DEP Disabled: "
 
   print "=============="
 
   for i in dep_disabled:
 
       print i
    print 



روش سوم :ديباگ كردن (حوصله و وقت مثالش رو نداشتم)

روش چهارم لودر

روش پنجم  دستكاري سيستم عامل ك روي ي ادرس مشخص RELOCATE كنه (توصيه نميشه)

(آخرین ویرایش در این ارسال: ۰۷-مهر-۱۳۹۹, ۲۳:۲۶:۰۵، توسط NO DONGLE.)
۰۷-مهر-۱۳۹۹, ۲۳:۲۱:۲۱
ارسال‌ها
پاسخ
تشکر شده توسط : 1نفر, Ghoghnus, hadikh73, salehjg
Tiny Russell آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: شهریور ۱۳۹۹

تشکرها : 0
( 4 تشکر در 2 ارسال )
ارسال: #3
RE: ساخت Loader برای فایل های DLL
با تشکر از استاد عزیز لبخند - بهینه شده برای ورژن جدید
من چند راه رو تست کرده بودم ولی متاسفانه نامرد یه پروتکشن دیگه داره که بعد از ویرایش فایل میگه فایل مشکل داره و اجرا نمیشه
ولی بیشتر خودم علاقه دارم در مورد ساخت لودر برای فایل های DLL اطلاعاتی داشته باشم  :():
۱۰-مهر-۱۳۹۹, ۱۲:۳۳:۱۵
ارسال‌ها
پاسخ
NO DONGLE آفلاین
مدیر بخش نفوذ و امنیت
*****

ارسال‌ها: 485
موضوع‌ها: 8
تاریخ عضویت: مهر ۱۳۹۱

تشکرها : 46
( 1808 تشکر در 478 ارسال )
ارسال: #4
RE: ساخت Loader برای فایل های DLL
(۱۰-مهر-۱۳۹۹, ۱۲:۳۳:۱۵)Tiny Russell نوشته است: با تشکر از استاد عزیز لبخند - بهینه شده برای ورژن جدید
من چند راه رو تست کرده بودم ولی متاسفانه نامرد یه پروتکشن دیگه داره که بعد از ویرایش فایل میگه فایل مشکل داره و اجرا نمیشه
ولی بیشتر خودم علاقه دارم در مورد ساخت لودر برای فایل های DLL اطلاعاتی داشته باشم  :():

شما اول سوالتون رو مشخص كنيد
 در مورد سوال دومتون شايد CRC chk داره

۱۳-مهر-۱۳۹۹, ۰۰:۱۷:۳۱
ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73, salehjg, 1نفر
Tiny Russell آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: شهریور ۱۳۹۹

تشکرها : 0
( 4 تشکر در 2 ارسال )
ارسال: #5
RE: ساخت Loader برای فایل های DLL
می خوام برای یک نرم افزار که قفلش در یک DLL هستش و با ASLR محافظت میشه لودر درست کنم. آیا شدنی هستش؟  :(): چطوری میتونم CRC رو چک کنم؟ تعجب - بهینه شده برای ورژن جدید (البته میدونم سوالم خیلی کلی هستش)
۱۳-مهر-۱۳۹۹, ۱۹:۵۶:۴۶
ارسال‌ها
پاسخ
NO DONGLE آفلاین
مدیر بخش نفوذ و امنیت
*****

ارسال‌ها: 485
موضوع‌ها: 8
تاریخ عضویت: مهر ۱۳۹۱

تشکرها : 46
( 1808 تشکر در 478 ارسال )
ارسال: #6
RE: ساخت Loader برای فایل های DLL
(۱۳-مهر-۱۳۹۹, ۱۹:۵۶:۴۶)Tiny Russell نوشته است: می خوام برای یک نرم افزار که قفلش در یک DLL هستش و با ASLR محافظت میشه لودر درست کنم. آیا شدنی هستش؟  :(): چطوری میتونم CRC رو چک کنم؟ تعجب - بهینه شده برای ورژن جدید (البته میدونم سوالم خیلی کلی هستش)

احتياج به لودر نيست ولي اگه هدفت تمرين هست بله اونم ميشه منتهي اگه ASLR رو نخوايي فيكس كني بايد از تكنيك S&R استفاده كني به اينصورت كه توالي يكتا از بايت هايي رو پيدا كني كه بايت يا بايت هاي پچ شما هم درونش باشن

اگر متوجه نشدي Dll رو همينجا آپلود كن

۱۴-مهر-۱۳۹۹, ۱۴:۲۶:۰۴
ارسال‌ها
پاسخ
تشکر شده توسط : 1نفر
Tiny Russell آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: شهریور ۱۳۹۹

تشکرها : 0
( 4 تشکر در 2 ارسال )
ارسال: #7
RE: ساخت Loader برای فایل های DLL
منظوزتون Search and replace هستش؟ متاسفانه تو DUP2 و یه برنامه دیگه تست کردم ارور میده که نمیتونه لودر رو درست کنه  014
(آخرین ویرایش در این ارسال: ۱۵-مهر-۱۳۹۹, ۲۱:۳۹:۳۰، توسط Tiny Russell.)
۱۵-مهر-۱۳۹۹, ۲۱:۳۷:۰۰
ارسال‌ها
پاسخ
Injected آفلاین
تازه وارد

ارسال‌ها: 4
موضوع‌ها: 0
تاریخ عضویت: آذر ۱۳۹۳

تشکرها : 6
( 10 تشکر در 4 ارسال )
ارسال: #8
RE: ساخت Loader برای فایل های DLL
خودتون لودر بنویسید، روش pattern scan رو برای بدست آوردن آدرس پچ تست کنید ببینید جواب میده یا نه
۰۳-آبان-۱۳۹۹, ۲۱:۴۳:۲۴
ارسال‌ها
پاسخ
تشکر شده توسط : 1نفر


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش شبیه سازی قفل های سخت افزاری -برای اولین بار توسط تیم قدرتمند ایرانی NO DONGLE 6 17,588 ۲۷-مهر-۱۳۹۹, ۱۲:۴۳:۳۵
آخرین ارسال: alirezabo
  بررسی نحوه کرک dll پلاگین کاربردی eCut برای CorelDraw mmmahdy 2 1,766 ۰۱-آبان-۱۳۹۸, ۱۹:۳۵:۵۸
آخرین ارسال: mmmahdy
  دیکامپایل کردن فایل dll inter_law 6 1,026 ۲۰-تير-۱۳۹۸, ۰۱:۲۴:۰۱
آخرین ارسال: babyy
  درخواست کرک DLL zand120 4 1,897 ۲۲-مهر-۱۳۹۷, ۰۸:۴۱:۱۷
آخرین ارسال: sa1151sh
  درخواست کرک CutGLib.dll aslani68 7 4,291 ۳۱-فروردین-۱۳۹۶, ۱۹:۰۷:۲۱
آخرین ارسال: Di Di
  [سوال] کمک برای آنالیز های آنتی دیباگ یه برنامه nImaarek 0 2,359 ۲۹-دى-۱۳۹۵, ۰۰:۴۸:۴۰
آخرین ارسال: nImaarek
  درخواست کرک برای این فایل unforgiven 34 10,104 ۱۰-دى-۱۳۹۵, ۱۶:۱۵:۰۹
آخرین ارسال: salar.exe
  کمک در کرک یا ساخت کیجن برای Video to EXE Converter dashali 10 5,528 ۲۹-تير-۱۳۹۵, ۱۴:۰۴:۳۲
آخرین ارسال: NO DONGLE
  BoxedApp+dll TORIST 8 2,954 ۱۵-دى-۱۳۹۴, ۱۷:۲۰:۳۱
آخرین ارسال: NO DONGLE
  ساختن پچ برای فایل آنپک شده kamran749 7 3,558 ۰۳-اردیبهشت-۱۳۹۴, ۱۳:۵۸:۴۶
آخرین ارسال: NO DONGLE

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS