PDA

View Full Version : تبدیل ShellCode به کد قابل فهم



Developer Programmer
دوشنبه 25 آبان 1383, 13:20 عصر
کد زیر قسمتی از یک برنامه است


char header1[]=
"\xFF\xD8\xFF\xE0\x00\x10\x4A\x46\x49\x46\x00\x01\x 02\x00\x00\x64"
"\x00\x64\x00\x00\xFF\xEC\x00\x11\x44\x75\x63\x6B\x 79\x00\x01\x00"
"\x04\x00\x00\x00\x0A\x00\x00\xFF\xEE\x00\x0E\x41\x 64\x6F\x62\x65"
"\x00\x64\xC0\x00\x00\x00\x01\xFF\xFE\x00\x01\x00\x 14\x10\x10\x19"
"\x12\x19\x27\x17\x17\x27\x32\xEB\x0F\x26\x32\xDC\x B1\xE7\x70\x26"
"\x2E\x3E\x35\x35\x35\x35\x35\x3E";

چطور میشه این آپکدها و اپرندها رو معکوس کرد تا قابل فهم بشه!

aakh1361
سه شنبه 26 آبان 1383, 00:43 صبح
معکوس به چی ؟ کارکتر . رشته . اسمبلی ..... :گیج:

Developer Programmer
سه شنبه 26 آبان 1383, 17:49 عصر
معکوس به چی ؟ کارکتر . رشته . اسمبلی
عزیزم همانوطور که قبلا گفتم :strange: میخوام بدونم اینها معادل کدام دستورات در اسمبلی بودن که به کار رفتن... :kaf:

aakh1361
سه شنبه 26 آبان 1383, 22:01 عصر
خوب کاری نداره
اول اینها رو تو یک فایل بریزید بعد با برنامه TD تحت داس این فایل رو باز کنید

jirjirakk
چهارشنبه 27 آبان 1383, 00:55 صبح
سوال جالبی بود :)
من خیلی دلم میخواد بدونم این کد رو چی جوری تولید میکنن و چی جوری میشه به همون کد اولیش برگردوندش

aakh1361
چهارشنبه 27 آبان 1383, 02:00 صبح
راستی اون کد مال سر فایل هست یا نه
اگر مال سر فایل نیست بگو مال چی هست

Developer Programmer
چهارشنبه 27 آبان 1383, 09:38 صبح
من خیلی دلم میخواد بدونم این کد رو چی جوری تولید میکنن و چی جوری میشه به همون کد اولیش برگردوندش
تولید کدش که خیلی راحته یکسری دستورات اسمبلی که بعد از کامپایل disassemblee میکنن و معادل کدها رو مینوسن مثل x90 همون db 90h است و معادلNop اما اینکه چطور برعکسش کنیم رو بلد نیستم!

استی اون کد مال سر فایل هست یا نه
بله heder فایل jpeg

aakh1361
پنج شنبه 28 آبان 1383, 05:54 صبح
نقل قول:
من خیلی دلم میخواد بدونم این کد رو چی جوری تولید میکنن و چی جوری میشه به همون کد اولیش برگردوندش

تولید کدش که خیلی راحته یکسری دستورات اسمبلی که بعد از کامپایل disassemblee میکنن و معادل کدها رو مینوسن مثل x90 همون db 90h است و معادلNop اما اینکه چطور برعکسش کنیم رو بلد نیستم!
سلام
دوست من
داری اشتپ می زنی
سرفایل ها کد اسمبلی نیستن بلکه یک ساختمان داده هستند که مشخصات اون اطلاعاتی رو که درون فایل هست رو نگه می دارن و وقتی قرار اون اطاعات ذخیره شن (یا خونده بشن ) اول سر فایل که مشخصات اون فایل رو مشخص می کنه رو اول اون فایل می نویسند که به اون اطلاعات اول یک فایل میگن سرفایل
در واقع تمام فایل های که وجود داره فرقشون تو سر فایل هاشون هست که باعث میشه مشخص بشه اون فایل چی هست البته پسوند ها هم برای اینکه کاربر بودن نگاه کردن داخل فایل بفهمه او فایل چی هست بکار میره
مثلا این سرفایل برای یکی از بازیهام بود که اطلاعات اشکال بازیم رو نگه می داشت

TYPE A
FileName AS STRING * 8
BColor AS INTEGER
Ani AS INTEGER
XXPic AS INTEGER
YYPic AS INTEGER
XXBlock AS INTEGER
YYBlock AS INTEGER
Datas AS STRING * 2700
END TYPE
من در این ساختمان اطلاعات اشکال بازیم رو نگه می داشتم وقتی اطلاعات رو وارد میکردم و این ساختمان رو در یک فایل ذخیره می کردم اگر شما این فایل ساخته شده را باز کنید این اطلاعاترو می بینید
AAKH1361
04
00
20
20
50
60
0................
البته شما بجای اعداد معادل کارکتری اون ها رو می بینید و این اطلاعات پشت سر هم نوشته شده
خوب شما اگر این اطلاعات رو به اسمبلی برگردونید چیزی نمی فهمید چو اینها کد نیستند بلکه دادها هستن البته دادهای اصلی بعد از سرفایل می ایند و تا شما ساختار سر فایل اون فایل رو ندونید نمی تونید از اون فایل استفاده کنید
نتیجه اینکه شما تا خود ساختمانی که این اطلاعات رو باهاش ایجاد کردن پیدا نکنید نمی تونید از فایلتون استفاده کنید البته من قبلا ساختمان سرفایل jepg رو داشتم ولی الان فکر نکم پیداش کنم اگر شما این سر فایل رو می خواید کمی در اینترنت بگردید می تونید ساختمان هر فایلی رو که می خواید پیدا کنید
مهندسی معکوس در زمینه سر فایلها فوق العاده سخت وپیچیده هست
:موفق:

Developer Programmer
پنج شنبه 28 آبان 1383, 17:57 عصر
سرفایل ها کد اسمبلی نیستن
از راهنمایی کلی تون ممنون ... مجبور بودم کد غیر خطرناک رو بذارم تا با قوانیین مغایرت نداشته باشه...