الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

هل المشكله من المترجم او من الكود

بدأه aasar في 18 أكتوبر 2008 · 21 رد · 1,832 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي شيل كود مثلاً للاله الحاسبه

وابغا اترجمه

#include <stdio.h>
unsigned char PIshellcode[] =
{

لنفترض ان هنا الشيل كود لاله حاسبه

};
int main()
{
  void (*c0de)();
  *(int*)&c0de = PIshellcode;
  c0de();
  }

جربت اترجمه على Microsoft Visual C++ 6.0

وضبط معي ممتاز

بس عيبه ان حجمه كبير جدا 148 كيلوبايت

------------

بينما جربت نفس الكود على Borland C++Builder 6

وطلع حجمه 16 كيلوبايت

بس المشكله ما اشتغل معي

هل العطل من Compiler والا من كتابه الكود

ارجوا انكم تنورونا بردودكم وحلولكم وارائكم

وشكراً

#3

شكرا يا فهد الشلوي

الموضوع هذا فادني وصار حجمه 28 kb

---------

طيب هل اشتغل معك بكفائة ونفذ الشيل كود اللي طلبته منه؟

اذا كان ما عندك شيل كود جاهز ادخل ميتا سبلويت واطلب calc

http://metasploit.com:55555/PAYLOADS?MODE=...DULE=win32_exec

---------------------------------

يبقى السؤال ليه ما يترجم الا ب vc 6

وباقي المترجمات؟

#4

أعتقد يجب يكون ملفك أمتداده .c وليس cpp وأعمله كمبايلر على انه كود سي وليس سي بلس

لم أنفذ البرنامج فقط عملت له كمبايلر.

tvquran_6.gif

#5

لالا انا جربت بكل الصيغ ما ضبط الظاهر المشكله من المترجمات الاخرى غير vc 6

اعتقد انها احد 3 امور

يا نقص في المكتبات , او خطأ في الكود , او خطأ في اعدادات الكومبايل

هذا والله اعلم

#6

أين الـshellcode للتجربة ؟

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#7

لقد وضعت shellcode في ولكن اخونا المشرف فهد الشلوي حذفه درأً للمفاسد

ولكن بامكانك عمل الـshellcode بسهوله تاااامه من

http://metasploit.com:55555/PAYLOADS?MODE=...DULE=win32_exec

واكتب مثلا calc للاله الحاسبه

وجربه

انا عن نفسي استخدم shellcode خاص ببرنامج تجسس اسمه Poison Ivy لسهوله التشفير ومن ثم اضغطه واجعله مخفي لأخفاء شاشه الدوس ويعمل بكل كفائه

تم تعديل هذه المشاركة بواسطة aasar في 18 أكتوبر 2008 في 20:38

#8

جربته على VC++ 2008 و GCC ويعمل بعد تغيير الكود الى :

[color= #000000;]*[color= #000000;]([color= #0000ff;]unsigned [color= #0000ff;]char[color= #000000;]**[color= #000000;])[color= #000000;]&c0de [color= #000000;]= [color= #000000;]([color= #0000ff;]unsigned [color= #0000ff;]char [color= #000000;]*[color= #000000;])PIshellcode;

يمكن أيضا تغيير الثلاث سطور الى كود الاسمبلي التالي :

__asm lea eax, dword ptr [color= #000000;][PIshellcode[color= #000000;]];

__asm jmp eax;

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#9

اهلا GamingMasteR

ما فهمت وش تقصد في المثال الاول ممكن توضح اكثر

#10

لا شئ ... فقط هذا السطر :

*(int*)&c0de = PIshellcode;

حولته الى هذا :

*(unsigned char**)&c0de = (unsigned char *)PIshellcode;

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#11

اخوانى الكرام اريد التوضيح ما معنى الـ shellcode الذى تتكلمون عنه (اكيد غير ال shell scripts ) وكيف تستخدمونها وماذا تستطيع ان تصنع بها

من جانب اخر ما فهمته من كلامكم انها محاولة لعمل delegate او بمعنى اخر function pointer ثم مناداتها فهل هذا ما قصدتموه

والله الموفق

amdvsintel22.jpg

--i use AMD--

لا اله الا الله محمد رسول الله

أستعن بالله و لا تعجز

تابعنى على تويتر

***

#12

^

اكثر شيء يستخدم بالاستغلات والثغرآت ..

لاني على حسب مآفهمت الشل كود يتعآمل مع الذآكرة وتقتدر تسوي شل كود لاي داله بالاسمبلي ..

طبعآ اشهرهم فتح منفذ بالجهآز والتنصت عليه . اضافه يوزر . تفيذ اوآمر الدوس . تحميل الملف وتشغيله والكثير ..

رآجع موآضيع الاخ جآس

#13

شكرا اخى redfalcon464 على التوضيح و لكن اتمنى اضافة رابط للتوضيح اكثر او مثال

amdvsintel22.jpg

--i use AMD--

لا اله الا الله محمد رسول الله

أستعن بالله و لا تعجز

تابعنى على تويتر

***

#14

انظر المرفق آخ

ايرآ

سوف تجد الكثير من الملفآت

واهم كتآب ارفقته لك وهو كبير جدآ

اسمه

shell code handbook

+

مترفقآت سهله وسريعه ولاتنسى موآضيع الاخ جآس

Desktop.rar

#15

الكتآب الذي ذكرت اسمه بالاول

بالمرفق لانه الحد المسموح سبب لي مشكله

واذهب لهذآ الموقع لتجد امثله :

http://metasploit.com:55555/PAYLOADS?FILTER=win32

سوف تجد قآئمه كبيرة للانوآع المشهورة المستخدمه بكثرة بالثغرآت :)

موفق بعون الله

Wiley.The.Shellcoders.Handbook.2nd.Edition.Aug.2007.rar

تم تعديل هذه المشاركة بواسطة redfalcon464 في 20 أكتوبر 2008 في 22:15

#16

shellcode باختصار مجموعة تعليمات low level (بغض النظر عن النظام الذي نتكلم عنه، أو البيئة التي نعمل بها) تقوم بتنفيذ عملية ما، تقوم بأخذ هذه التعليمات بصيغة هكس وتقوم بوضعها ككتلة في برنامجك وكما ترى تستدعيها أو تقوم بالانتقال إليها من برنامجك وما يحدث هو أنه سيتم تنفيذ هذه التعليمات بغض النظر ما هي.

\x6A\x00\xE9\xF3\xBA\x41\x7C

ضع هذا في برنامجك وقم بتنفيذه وسيغلق برنامجك لأنه فعلياً يمثل:

push	 0
jmp	   7C41BAF3h; <<< ExitProcess address in Kernel32.dll on WinXP SP3

لاحظ استخدمت عنوان مطلق (مباشر) لدالة ExitProcess من دوال API لذلك قد لا يعمل على بقية الأنظمة وحصراً على winXP sp3 (لأن العناوين تتغير).

هناك طرق للحصول على عنوان دالة ما بشكل نسبي وفق قوانين معينة لكنها تحتاج إلى خبرة في هذا المجال، يصبح الـ shell يعمل على أي نظام Windows (في حال كان هذا هو النظام طالما نتكلم عن Windows API)

هذا هو shellcode باختصار شديد.

تم تعديل هذه المشاركة بواسطة Xacker في 21 أكتوبر 2008 في 00:44

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#17

هل يستخدم ال shellcode تحت اللينكس وهل بنفس الطريقة

amdvsintel22.jpg

--i use AMD--

لا اله الا الله محمد رسول الله

أستعن بالله و لا تعجز

تابعنى على تويتر

***

#18

أنا لا أستخدم لينوكس ولم أبرمج فيه على الإطلاق من قبل لكن نظرياً، نعم الفكرة والطريقة نفسها.

يخطئ من يعتقد أن shellcode فقط يترافق مع وجود ثغرة، إن لم توجد ثغرة لا نستخدم shellcode.

على الإطلاق، هذا الإعتقاد خاطئ تماماً، يمكنك أن تقوم باستخدام هذه الطريقة مجازاً للتقليل من حجم برنامجك!

تسأل كيف؟

مثال: PoisonIvy، برنامج RAT - يقوم بإنشاء server يعمل بمبدأ الاتصال العكسي (Reverse Connection) "مما يذكرني يجب أن أضيف هذا المصطلح في Security FAQs ;)" - عندما يقوم البرنامج بإنشاء سيرفر فهو لا يضع فيه سوى بعض الحيل البسيطة كي يقوم الأخير بحقن نفسه في النظام والاختفاء - ثم يحاول الاتصال بالعميل الذي يكون معد سلفاً لتلقي اتصالات من جميع السيرفرات المنشورة (بناء على IP يتم تحديده مسبقاً) - ما الذي أحاول قوله؟

حجم السيرفر لا يتجاوز بضع كيلوبايتات، ليس لأنه مضغوط أو حسبما سمعت مكتوب بالأسمبلي، لكنه لأنه أيضاً لا يحوي على أكثر من مجرد حيل اختفاء واجرائية للاتصال بالعميل.. فكيف يسمح بالتحكم إذن؟

بكل بساطة يستخدم shellcode!

يقوم العميل بإرسال رزمة بيانات عبر الشبكة تحوي على الـ shellcode المراد تنفيذه على الجهاز المصاب، ثم يتولى السيرفر تنفيذ هذا الأمر وإعادة المعلومات إلى العميل - lovely isn't it :D

تم تعديل هذه المشاركة بواسطة Xacker في 21 أكتوبر 2008 في 04:14 — السبب: do I really have to justify my deeds to you?

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#19

شكرآ اخ اكس

ع التوضيح اتضحت اكثر بالنسبه للشل كود ..

ولهذآ يستخدم بكثرة بالثغرآت وبرآمج الاخترآق القوية ..

موفق بعون الله

#20

بارك الله فيك اخى اكس صراحتا معلومات قيمة

بارك الله فيكم جميعا وشكرا للافادة

amdvsintel22.jpg

--i use AMD--

لا اله الا الله محمد رسول الله

أستعن بالله و لا تعجز

تابعنى على تويتر

***

#21
Xacker كتب:
يقوم العميل بإرسال رزمة بيانات عبر الشبكة تحوي على الـ shellcode المراد تنفيذه على الجهاز المصاب، ثم يتولى السيرفر تنفيذ هذا الأمر وإعادة المعلومات إلى العميل - lovely isn't it :D

هذه فكرة جيدة .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#22
SIFE كتب:
هذه فكرة جيدة .

نعم ولا تنسى الـ reverse connection + الحقن في ملف explorer.exe وفي المتصفح بشكل persistence حسبما أذكر يعني:

1. reverse connection: الـ firewall لا يقوم بإيقاف الاتصال الخارج من الجهاز (إلا لو كانت خيارات الأمان عالية فيقوم بسؤالك)

2. هنا يأتي دور الحقن في ملف مثل explorer.exe أو iexplore.exe فيسألك برنامج الـ firewall هل تود حقاً السماح لمتصفحك الغالي بالاتصال بالانترنت وأي شخص عادي سيجيب بنعم وبالتالي:

1. التخفيف من الحجم.

2. يعمل من خلف الـ firewall

3. لا يمثل شئ تشك فيه

4. آآآخ لو تم تطويره ليكون polymorphic .. ليس أثناء تنفيذه :rolleyes:، لكن عند إنشائه، يقوم بإنشاء نسخة عشوائية من الملف فيصعب إضافته في قاعدة بيانات مكافح فيروسات :wink:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…