تحليل شامل لتقنيات سحب السجاد الكبيرة

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

Forward the Original Title’技术详解 | العمق الواضح للعنوان الأصلي، في وسط مبادرة جديدة على السلسلة الرئيسية، فك شيفرة تقنية Rug Pull بشكل واسع النطاق’

في الآونة الأخيرة ، اكتشف خبراء الأمان في CertiK بشكل متكرر حالات متعددة من نفس طريقة احتيال الخروج ، والمعروفة باسم Rug Pull. بعد إجراء مزيد من التحقيق ، اكتشفنا أن العديد من الحالات من نفس الطريقة تشير إلى نفس المجموعة ، مرتبطة في النهاية بأكثر من 200 عملية احتيال للخروج من Token. يشير هذا إلى أننا ربما اكتشفنا مجموعة قراصنة آلية واسعة النطاق تحصد الأصول من خلال عمليات الاحتيال للخروج. في عمليات الاحتيال هذه ، يقوم المهاجمون بإنشاء رمز ERC20 جديد واستخدام الرموز المميزة التي تم تعدينها مسبقا جنبا إلى جنب مع كمية معينة من WETH لإنشاء مجمع سيولة Uniswap V2. بعد أن تقوم الروبوتات أو المستخدمون في السلسلة بإجراء عدد معين من عمليات شراء الرمز المميز الجديد من مجمع السيولة ، سيستنفد المهاجم كل WETH في التجمع برموز تم إنشاؤها من فراغ. نظرا لأن الرموز المميزة التي حصل عليها المهاجم من فراغ لا تنعكس في إجمالي العرض ولا تؤدي إلى أحداث النقل ، فهي غير مرئية على الإثيرسكان ، مما يجعل من الصعب على الغرباء اكتشافها. لا يفكر المهاجمون في الإخفاء فحسب ، بل يصممون أيضا حيلة لخداع المستخدمين ذوي المهارات التقنية الأساسية الذين يتحققون من الإثيرسكان ، باستخدام مشكلة بسيطة لإخفاء نواياهم الحقيقية ...

الغوص في الاحتيال

العمق النصب

استخدام أحد الحالات كمثال، دعونا نغوص في تفاصيل هذا الاحتيال على الخروج. ما اكتشفناه كانت عملية تم فيها استخدام مهاجم كمية هائلة من الرموز (تم إنتاجها بصمت) لإفراغ بركة السيولة والربح. في هذه العملية، قام فريق المشروع بتبادل حوالي 416،483،104،164،831 (حوالي 416 كوادريليون) رمز MUMI مقابل حوالي 9.736 WETH، مفرغين بذلك سيولة البركة. ومع ذلك، هذه العملية هي فقط الجزء النهائي من الاحتيال بأكمله. لفهم الاحتيال بأكمله، نحتاج إلى مواصلة تتبع الأمور إلى الوراء.

نشر الرموز

في 6 مارس الساعة 7:52 صباحًا (بتوقيت UTC، نفس الشيء للتوالي)، نشرت عنوان المهاجم (0x8AF8) عملة ERC20 بالاسم MUMI (الاسم الكامل MultiMixer AI) على العنوان 0x4894 وقامت بتعدين 420،690،000 (حوالي 420 مليون) رمز، جميعها مخصصة لمنشئ العقد.

يتوافق عدد الرموز المعدنية مسبقًا مع شفرة مصدر العقد.

إضافة سيولة

عند الساعة 8 حتيق (8 دقائق بعد إنشاء الرمز)، بدأ عنوان المهاجم (0x8AF8) في إضافة السيولة. يُطلق عنوان المهاجم (0x8AF8) وظيفة openTrading في عقد الرمز، ينشئ بركة سيولة MUMI-WETH من خلال مصنع uniswap v2، يضيف جميع الرموز المعدنية مسبقًا و 3 ETH إلى بركة السيولة، ويحصل أخيرًا على حوالي 1.036 رمز LP.


يمكن رؤية ذلك من تفاصيل المعاملة أن من الرموز البالغ عددها 420،690،000 (حوالي 420 مليون) التي استخدمت أصلاً لإضافة السيولة، تم إرسال حوالي 63،103،500 (حوالي 63 مليون) رمز إلى العقد الذكوري (العنوان 0x4894). من خلال عرض مصدر العقد تبين أن العقد الذكوري سيفرض رسوم معالجة معينة على كل نقل، والعنوان المخصص لجمع رسوم المعالجة هو العقد الذكوري نفسه (منفذ بشكل محدد في وظيفة "_transfer").

ما هو غريب هو أن عنوان الضريبة 0x7ffb (العنوان لجمع رسوم التحويل) قد تم تعيينه في العقد، ولكن تم إرسال الرسوم النهائية إلى عقد الرمز ذاته.

لذلك، العدد النهائي لعملات MUMI المضافة إلى بركة السيولة هو 357،586،500 (حوالي 350 مليون) بعد الضريبة، وليس 420،690،000 (حوالي 430 مليون).

قفل السيولة

في الساعة 8:01 (بعد دقيقة واحدة من إنشاء بركة السيولة)، قفلت عنوان الهاجم (0x8AF8) جميع الرموز LP بمقدار 1.036 التي تم الحصول عليها عن طريق إضافة السيولة.

بعد قفل LP، من النظرية أن جميع رموز MUMI المملوكة من قبل عنوان المهاجم (0x8AF8) مقفلة في بركة السيولة (باستثناء الجزء المستخدم كرسوم معالجة)، لذلك عنوان المهاجم (0x8AF8) ليس لديه القدرة على إزالتها من خلال قدرة السيولة على القيام بـ Rug Pull. من أجل السماح للمستخدمين بشراء الرموز الجديدة المطروحة بثقة، يقوم العديد من أطراف المشروع بقفل LP، مما يعني أن طرف المشروع يقول: 'لن أهرب، يمكن للجميع شراء بثقة!'، ولكن هل هذا هو الحال حقًا؟ بوضوح لا، هذا هو الحال، دعونا نواصل التحليل.

Rug Pull

في 8:10، ظهر عنوان المهاجم الجديد ② (0x9DF4)، ونشر عنوان الضريبة 0x7ffb المعلن في عقد الرمز.

هناك ثلاث نقاط جديرة بالذكر هنا: 1. العنوان الذي يتم فيه نشر العنوان الضريبي والعنوان الذي يتم نشر الرموز المميزة فيه ليسا متماثلين. قد يشير هذا إلى أن طرف المشروع يقلل عمدا من الارتباط بين كل عملية والعنوان ، مما يجعل من الصعب تتبع السلوك. 2. عقد العنوان الضريبي ليس مفتوح المصدر ، مما يعني أنه قد تكون هناك عمليات خفية في العنوان الضريبي لا تريد كشفها. 3. يتم نشر العقد الضريبي في وقت لاحق من عقد الرمز المميز ، وقد تم ترميز العنوان الضريبي في عقد الرمز المميز ، مما يعني أنه يمكن التنبؤ بعنوان العقد الضريبي من قبل فريق المشروع مسبقا. نظرا لأن تعليمات CREATE تحدد عنوان المنشئ و nonce ، يتم تحديد عنوان عقد النشر. لذلك ، استخدم فريق المشروع عنوان المنشئ لمحاكاة وحساب عنوان العقد مقدما. في الواقع ، يتم إجراء العديد من عمليات الاحتيال للخروج من خلال العناوين الضريبية ، وتتوافق خصائص وضع النشر للعناوين الضريبية مع النقطتين 1 و 2 أعلاه. في الساعة 11 صباحا (بعد 3 ساعات من إنشاء الرمز المميز) ، أجرى عنوان المهاجم (2) (0x9DF4) سحب البساط. من خلال استدعاء طريقة "swapExactETHForTokens" للعقد الضريبي (0x77fb) ، قام بتبادل 416،483،104،164،831 (حوالي 416 تريليون) من رموز MUMI في العنوان الضريبي لحوالي 9.736 ETH ، واستنفد السيولة في المجمع.

نظرًا لأن عقد الضرائب (0x77fb) ليس مفتوح المصدر، قمنا بتفكيك بايت كوده وكانت نتائج التفكيك كما يلي:

https://app.dedaub.com/decompile?md5=01e2888c7691219bb7ea8c6b6befe11c

بعد تحليل طريقة "swapExactETHForTokens" لعقد جمع الضرائب (0x77fb)، اكتشفنا أن الوظيفة الرئيسية المنفذة بواسطة هذه الوظيفة هي تبادل كمية "xt" المحددة (المحددة من قبل المتصل) من رموز MUMI التي تمتلكها عقد جمع الضرائب (0x77fb) إلى ETH باستخدام موجه UniswapV2 ثم إرسالها إلى العنوان المعلن باسم "_manualSwap" في عنوان الضريبة.


عنوان تخزين العنوان اليدوي للتبادل هو 0x0. بعد الاستعلام بأمر getStorageAt من json-rpc، وجدنا أن العنوان المقابل لـ _manualSwap هو بالضبط مطور عقد الضريبة (0x77fb): المهاجم ② (0x9DF4).

تكوين المعلمة xt لهذه العملية Rug Pull هو 420،690،000،000،000،000،000،000، مما يعادل 420،690،000،000،000 (حوالي 420 تريليون) رموز MUMI (عدد عشري لرموز MUMI هو 9).

بمعنى آخر ، في النهاية ، استخدم المشروع 420،690،000،000،000،000 (حوالي 420 تريليون) MUMI لاستنزاف WETH في مجمع السيولة وإكمال عملية احتيال الخروج بأكملها. ومع ذلك ، هناك سؤال حاسم هنا: من أين حصل عقد تحصيل الضرائب (0x77fb) على الكثير من رموز MUMI؟ من المحتوى السابق ، علمنا أن إجمالي المعروض من الرموز المميزة لرموز MUMI في وقت النشر كان 420،690،000 (حوالي 420 مليون). ومع ذلك ، بعد نهاية مخطط سحب البساط ، عندما استفسرنا عن إجمالي عرض الرمز المميز في عقد رمز MUMI ، ظل عند 420,690,000 (كما هو موضح في الشكل أدناه ، معروض ك 420,690,000,000,000,000,000 ، والذي يحتاج إلى طرح الأصفار اللاحقة المقابلة للرقم العشري ، حيث العلامة العشرية هي 9). يبدو أن الرموز المميزة في عقد تحصيل الضرائب (0x77fb) ، والتي تتجاوز بكثير إجمالي العرض (420،690،000،000،000 ، حوالي 420 تريليون) ، قد ظهرت من فراغ. تجدر الإشارة إلى أنه ، كما ذكرنا سابقا ، لم يتم استخدام 0x77fb العنوان ، الذي يعمل كعنوان ضريبي ، لتلقي رسوم المعاملات الناتجة أثناء عملية نقل رموز MUMI ؛ تم استلام الضريبة من خلال عقد الرمز المميز نفسه.

كشف التقنية

  • من أين جاء عقد الضرائب؟

من أجل استكشاف مصدر الرمز لعقد الضريبة (0x7ffb)، قمنا بالنظر إلى تاريخ حدث نقل ERC20 الخاص به.

كشفت النتائج أنه من بين جميع أحداث التحويل ال 6 التي تنطوي على 0x77fb ، لوحظت أحداث فقط حيث تم نقل الرموز المميزة من عقد تحصيل الضرائب (0x7ffb) ، مع عدم نقل أي أحداث لرموز MUMI. للوهلة الأولى ، يبدو بالفعل أن الرموز المميزة في عقد تحصيل الضرائب (0x7ffb) ظهرت من فراغ. لذلك ، فإن الكمية الكبيرة من رموز MUMI التي تظهر على ما يبدو من فراغ في عقد تحصيل الضرائب (0x7ffb) لها خاصيتان: 1. لم يؤثر على إجمالي توريد عقد MUMI. 2. لم تؤدي الزيادة في الرموز المميزة إلى حدوث حدث نقل. مع وضع ذلك في الاعتبار ، يصبح من الواضح أنه يجب أن يكون هناك باب خلفي في عقد رمز MUMI ، يقوم مباشرة بتعديل متغير الرصيد دون تغييرات مقابلة في totalSupply أو تشغيل أحداث التحويل. بمعنى آخر ، يعد هذا تطبيقا غير قياسي أو ضار لرمز ERC20 ، حيث لا يمكن للمستخدمين إدراك سك الرموز المميزة خلسة لفريق المشروع من التغييرات في إجمالي العرض أو الأحداث. الخطوة التالية هي التحقق من هذه الفكرة من خلال البحث مباشرة عن الكلمة الرئيسية "balance" في الكود المصدري لعقد رمز MUMI المميز.

ونتيجة لذلك، وجدنا أن هناك نوعًا خاصًا من الوظيفة “swapTokensForEth” في العقد، والمعلمة الإدخالية هي tokenAmount من نوع uint256. في السطر الخامس من الوظيفة، تقوم الطرفية المشروع بتعديل _taxWallet مباشرة، وهو رصيد MUMI لعقد الضرائب (0x7ffb) بمقدار tokenAmount 10*_القراءة العشرية، وهي 1،000،000،000 (تقريبًا 1 مليار) مرة قيمة tokenAmount، ثم تحويل كمية tokenAmount من MUMI إلى ETH من بركة السيولة وتخزينها في عقد الرمز (0x4894). ثم البحث عن الكلمة المفتاحية "swapTokenForEth".

يتم استدعاء وظيفة "swapTokenForEth" داخل وظيفة "_transfer". عند فحص أقرب لظروف الاستدعاء، يُلاحَظ ما يلي: 1. عندما يكون عنوان المستلم (عنوان الوجهة) للتحويل هو بركة سيولة MUMI-WETH. 2. يتم استدعاء وظيفة "swapTokenForEth" فقط عندما تتجاوز كمية رموز MUMI التي تم شراؤها بواسطة عناوين أخرى في بركة السيولة "_preventSwapBefore" (5 مرات). 3. المعلمة "tokenAmount" التي تم تمريرها إلى الوظيفة هي القيمة الدنيا بين رصيد رموز MUMI المملوكة من قبل عنوان الرمز و"_maxTaxSwap".



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

  • كيف تحقق ربحاً

بعد تنفيذ وظيفة "swapTokenForEth"، ستنفذ أيضًا وظيفة "_transfer" لإرسال ETH المحصلة من جمع الضرائب في عنوان الرمز إلى عقد الضرائب (0x77fb).

يمكن سحب ETH في عقد الضريبة (0x77fb) باستخدام وظيفة "الإنقاذ" المنفذة في عقده.

الآن انظر إلى سجل الاسترداد لآخر عملية ربحية في عملية الخروج الاحتيالية بأكملها.

تم إجراء مجموع قدره عمق صفقتين في الصفقة الرابحة. الوقت الأول كان 4،164،831 (حوالي 4.16 مليون) رموز MUMI مقابل 0.349 ETH، والوقت الثاني كان 416،483،100،000،000 (حوالي 416 تريليون) رموز MUMI مقابل 9.368 ETH. الصفقة الثانية هي الصفقة التي بدأت داخل وظيفة "swapExactETHForTokens" في عقد الضريبة (0x7ffb). السبب في عدم تطابق العدد مع 420،690،000،000،000 (حوالي 420 تريليون) رمزًا يمثلها معلمات الإدخال هو أن بعض الرموز تُستخدم كضريبة ترسل إلى عقد الرمز (0x4894)، كما هو موضح في الشكل أدناه:

يتوافق التبادل الأول مع عملية التبادل الثانية. عندما يتم إرسال الرمز من عقد الضريبة (0x7ffb) إلى عقد الموجه، يتم تلبية شرط تنشيط وظيفة الباب الخلفي في عقد الرمز، مما يؤدي إلى تنشيط "swapTokensForEth". التبادل الذي بدأته الوظيفة ليس عملية حرجة.

  • الحصاد وراء الاحتيال

كما هو موضح من المحتوى السابق، فإن الدورة الكاملة لرمز MUMI، من النشر إلى إنشاء بركة السيولة، ثم إلى Rug Pull، استغرقت حوالي 3 ساعات فقط. ومع ذلك، تمكنت من تحقيق أكثر من 50٪ من الربح بتكلفة أقل من حوالي 6.5 ETH (3 ETH لإضافة السيولة، 3 ETH لتبديل MUMI من بركة السيولة كطعم، وأقل من 0.5 ETH لنشر العقد وبدء المعاملات)، مما أسفر عن 9.7 ETH. قام الهاجم بخمس معاملات لتبادل ETH مقابل MUMI، التي لم يتم ذكرها مسبقًا. تفاصيل المعاملات كما يلي:

عند تحليل حسابات الأشخاص الذين يملكونها (EOAs) العاملة داخل السيولة، تبين أن جزءًا كبيرًا من العناوين كانت تنتمي إلى عمليات "البوت" على السلسلة. نظرًا للطبيعة السريعة لعملية الاحتيال بأكملها، فمن المعقول أن نفترض أن هدف هذا الاحتيال كان العديد من "البوتات" والنصوص النشطة على السلسلة. لذلك، سواء كان التصميم اللامنطقي ولكن المعقد للعقد، أو عملية نشر العقد، أو عملية قفل السيولة، أو السلوك المشبوه للمهاجمين الذين يقومون بتبادل ETH بنشاط مقابل رموز MUMI في منتصف الطريق، يمكن فهم كل ذلك كمحاولات من قبل المهاجمين لخداع آليات مكافحة الاحتيال المختلفة للبوتات على السلسلة. من خلال تتبع تدفق الأموال، تبين أن جميع الأرباح التي تم الحصول عليها من الهجوم تم إرسالها في النهاية من قبل العنوان المهاجم ② (0x9dF4) إلى العنوان 0xDF1a.

في الواقع ، أشارت كل من مصادر التمويل الأولية والوجهات النهائية للعديد من عمليات الاحتيال الأخيرة إلى هذا العنوان. لذلك ، تم إجراء تحليل تقريبي وإحصاءات لمعاملات هذا العنوان. وقد وجد أن العنوان أصبح نشطا منذ حوالي شهرين وبدأ أكثر من 7000 معاملة حتى الآن ، وتفاعل مع أكثر من 200 رمز. من بين ما يقرب من 40 سجلا لمعاملات الرمز المميز التي تم تحليلها ، وجد أن جميع الرموز المميزة تقريبا ، عند عرضها في مجمعات السيولة المقابلة لها ، سيكون لها معاملة صرف كبيرة واحدة تستنفد كل ETH في مجمع السيولة ، ودورة احتيال الخروج بأكملها قصيرة. فيما يلي معاملات نشر بعض الرموز المميزة (مثل السيجارة الصينية):

https://etherscan.io/tx/0x324d7c133f079a2318c892ee49a2bcf1cbe9b20a2f5a1f36948641a902a83e17

https://etherscan.io/tx/0x0ca861513dc68eaef3017e7118e7538d999f9b4a53e1b477f1f1ce07d982dc3f

لذلك، يمكن الاستنتاج من ذلك أن هذا العنوان، في الواقع، عبارة عن جهاز جمع ضخم مؤتمت 'احتيال الخروج'، يستهدف عمليات البوت على السلسلة. هذا العنوان ما زال نشطاً.

في الختام ، إذا كانت عملية سك الرمز المميز لا تتوافق مع تعديل totalSupply أو تشغيل أحداث النقل ، فمن الصعب علينا إدراك ما إذا كان فريق المشروع يقوم بسك الرموز المميزة سرا. يؤدي هذا إلى تفاقم الوضع الحالي حيث يعتمد أمان الرموز المميزة كليا على وعي فريق المشروع. لذلك ، قد يكون من الضروري النظر في تحسين آليات الرمز المميز الحالية أو إدخال مخطط فعال لمراقبة العرض الكلي للرمز المميز لضمان الشفافية في تغييرات كمية الرمز المميز. الاعتماد فقط على الأحداث لالتقاط تغييرات حالة الرمز المميز لا يكفي. علاوة على ذلك ، نحتاج إلى إدراك أنه على الرغم من أن وعي الناس بمنع الاحتيال آخذ في الازدياد ، إلا أن أساليب المهاجمين في مكافحة الاحتيال تتقدم أيضا. هذه لعبة لا نهاية لها ، ونحن بحاجة إلى مواصلة التعلم والتفكير من أجل حماية أنفسنا.

  • الأدوات المستخدمة في هذه المقالة

عرض معلومات العملية الأساسية: https://etherscan.io/

فك تشفير العقد: app.dedaub.com/decompilejson-rpc: https://www.quicknode.com/docs/ethereum/eth_getStorageAt

إخلاء المسؤولية:

  1. تمت إعادة طبع هذه المقالة من [سيرتيك], Forward the Original Title‘技术详解 | 链上打新局中局,大规模Rug Pull手法解密’.All copyrights belong to the original author [CertiK]. إذا كانت هناك اعتراضات على إعادة النشر هذه، يرجى الاتصال بـبوابة تعلمالفريق، وسوف يتولى التعامل معها على الفور.
  2. إخلاء المسؤولية عن المسؤولية: الآراء والآراء الواردة في هذه المقالة هي فقط تلك التي يعبر عنها الكاتب ولا تشكل أي نصيحة استثمارية.
  3. يتولى فريق Gate Learn ترجمة المقال إلى لغات أخرى. ما لم يذكر، يُحظر نسخ أو توزيع أو انتحال المقالات المترجمة.

تحليل شامل لتقنيات سحب السجاد الكبيرة

متوسط3/26/2024, 4:10:49 AM
الوضع الحالي حيث تعتمد أمان الرموز بالكامل على الوعي الذاتي للمشروع. لمعالجة هذا، قد نحتاج إلى تحسين آليات الرموز أو إدخال خطط مراقبة فعالة لتأمين الإمدادات لضمان شفافية تغيير كمية الرموز. يجب أن نكون يقظين، حيث أن وعي الناس بالاحتيال يزداد، فإن تقنيات مكافحة الاحتيال للمهاجمين تتطور أيضًا باستمرار. هذه لعبة مستمرة، ونحتاج إلى مواصلة التعلم والتفكير لحماية مصالحنا.

Forward the Original Title’技术详解 | العمق الواضح للعنوان الأصلي، في وسط مبادرة جديدة على السلسلة الرئيسية، فك شيفرة تقنية Rug Pull بشكل واسع النطاق’

في الآونة الأخيرة ، اكتشف خبراء الأمان في CertiK بشكل متكرر حالات متعددة من نفس طريقة احتيال الخروج ، والمعروفة باسم Rug Pull. بعد إجراء مزيد من التحقيق ، اكتشفنا أن العديد من الحالات من نفس الطريقة تشير إلى نفس المجموعة ، مرتبطة في النهاية بأكثر من 200 عملية احتيال للخروج من Token. يشير هذا إلى أننا ربما اكتشفنا مجموعة قراصنة آلية واسعة النطاق تحصد الأصول من خلال عمليات الاحتيال للخروج. في عمليات الاحتيال هذه ، يقوم المهاجمون بإنشاء رمز ERC20 جديد واستخدام الرموز المميزة التي تم تعدينها مسبقا جنبا إلى جنب مع كمية معينة من WETH لإنشاء مجمع سيولة Uniswap V2. بعد أن تقوم الروبوتات أو المستخدمون في السلسلة بإجراء عدد معين من عمليات شراء الرمز المميز الجديد من مجمع السيولة ، سيستنفد المهاجم كل WETH في التجمع برموز تم إنشاؤها من فراغ. نظرا لأن الرموز المميزة التي حصل عليها المهاجم من فراغ لا تنعكس في إجمالي العرض ولا تؤدي إلى أحداث النقل ، فهي غير مرئية على الإثيرسكان ، مما يجعل من الصعب على الغرباء اكتشافها. لا يفكر المهاجمون في الإخفاء فحسب ، بل يصممون أيضا حيلة لخداع المستخدمين ذوي المهارات التقنية الأساسية الذين يتحققون من الإثيرسكان ، باستخدام مشكلة بسيطة لإخفاء نواياهم الحقيقية ...

الغوص في الاحتيال

العمق النصب

استخدام أحد الحالات كمثال، دعونا نغوص في تفاصيل هذا الاحتيال على الخروج. ما اكتشفناه كانت عملية تم فيها استخدام مهاجم كمية هائلة من الرموز (تم إنتاجها بصمت) لإفراغ بركة السيولة والربح. في هذه العملية، قام فريق المشروع بتبادل حوالي 416،483،104،164،831 (حوالي 416 كوادريليون) رمز MUMI مقابل حوالي 9.736 WETH، مفرغين بذلك سيولة البركة. ومع ذلك، هذه العملية هي فقط الجزء النهائي من الاحتيال بأكمله. لفهم الاحتيال بأكمله، نحتاج إلى مواصلة تتبع الأمور إلى الوراء.

نشر الرموز

في 6 مارس الساعة 7:52 صباحًا (بتوقيت UTC، نفس الشيء للتوالي)، نشرت عنوان المهاجم (0x8AF8) عملة ERC20 بالاسم MUMI (الاسم الكامل MultiMixer AI) على العنوان 0x4894 وقامت بتعدين 420،690،000 (حوالي 420 مليون) رمز، جميعها مخصصة لمنشئ العقد.

يتوافق عدد الرموز المعدنية مسبقًا مع شفرة مصدر العقد.

إضافة سيولة

عند الساعة 8 حتيق (8 دقائق بعد إنشاء الرمز)، بدأ عنوان المهاجم (0x8AF8) في إضافة السيولة. يُطلق عنوان المهاجم (0x8AF8) وظيفة openTrading في عقد الرمز، ينشئ بركة سيولة MUMI-WETH من خلال مصنع uniswap v2، يضيف جميع الرموز المعدنية مسبقًا و 3 ETH إلى بركة السيولة، ويحصل أخيرًا على حوالي 1.036 رمز LP.


يمكن رؤية ذلك من تفاصيل المعاملة أن من الرموز البالغ عددها 420،690،000 (حوالي 420 مليون) التي استخدمت أصلاً لإضافة السيولة، تم إرسال حوالي 63،103،500 (حوالي 63 مليون) رمز إلى العقد الذكوري (العنوان 0x4894). من خلال عرض مصدر العقد تبين أن العقد الذكوري سيفرض رسوم معالجة معينة على كل نقل، والعنوان المخصص لجمع رسوم المعالجة هو العقد الذكوري نفسه (منفذ بشكل محدد في وظيفة "_transfer").

ما هو غريب هو أن عنوان الضريبة 0x7ffb (العنوان لجمع رسوم التحويل) قد تم تعيينه في العقد، ولكن تم إرسال الرسوم النهائية إلى عقد الرمز ذاته.

لذلك، العدد النهائي لعملات MUMI المضافة إلى بركة السيولة هو 357،586،500 (حوالي 350 مليون) بعد الضريبة، وليس 420،690،000 (حوالي 430 مليون).

قفل السيولة

في الساعة 8:01 (بعد دقيقة واحدة من إنشاء بركة السيولة)، قفلت عنوان الهاجم (0x8AF8) جميع الرموز LP بمقدار 1.036 التي تم الحصول عليها عن طريق إضافة السيولة.

بعد قفل LP، من النظرية أن جميع رموز MUMI المملوكة من قبل عنوان المهاجم (0x8AF8) مقفلة في بركة السيولة (باستثناء الجزء المستخدم كرسوم معالجة)، لذلك عنوان المهاجم (0x8AF8) ليس لديه القدرة على إزالتها من خلال قدرة السيولة على القيام بـ Rug Pull. من أجل السماح للمستخدمين بشراء الرموز الجديدة المطروحة بثقة، يقوم العديد من أطراف المشروع بقفل LP، مما يعني أن طرف المشروع يقول: 'لن أهرب، يمكن للجميع شراء بثقة!'، ولكن هل هذا هو الحال حقًا؟ بوضوح لا، هذا هو الحال، دعونا نواصل التحليل.

Rug Pull

في 8:10، ظهر عنوان المهاجم الجديد ② (0x9DF4)، ونشر عنوان الضريبة 0x7ffb المعلن في عقد الرمز.

هناك ثلاث نقاط جديرة بالذكر هنا: 1. العنوان الذي يتم فيه نشر العنوان الضريبي والعنوان الذي يتم نشر الرموز المميزة فيه ليسا متماثلين. قد يشير هذا إلى أن طرف المشروع يقلل عمدا من الارتباط بين كل عملية والعنوان ، مما يجعل من الصعب تتبع السلوك. 2. عقد العنوان الضريبي ليس مفتوح المصدر ، مما يعني أنه قد تكون هناك عمليات خفية في العنوان الضريبي لا تريد كشفها. 3. يتم نشر العقد الضريبي في وقت لاحق من عقد الرمز المميز ، وقد تم ترميز العنوان الضريبي في عقد الرمز المميز ، مما يعني أنه يمكن التنبؤ بعنوان العقد الضريبي من قبل فريق المشروع مسبقا. نظرا لأن تعليمات CREATE تحدد عنوان المنشئ و nonce ، يتم تحديد عنوان عقد النشر. لذلك ، استخدم فريق المشروع عنوان المنشئ لمحاكاة وحساب عنوان العقد مقدما. في الواقع ، يتم إجراء العديد من عمليات الاحتيال للخروج من خلال العناوين الضريبية ، وتتوافق خصائص وضع النشر للعناوين الضريبية مع النقطتين 1 و 2 أعلاه. في الساعة 11 صباحا (بعد 3 ساعات من إنشاء الرمز المميز) ، أجرى عنوان المهاجم (2) (0x9DF4) سحب البساط. من خلال استدعاء طريقة "swapExactETHForTokens" للعقد الضريبي (0x77fb) ، قام بتبادل 416،483،104،164،831 (حوالي 416 تريليون) من رموز MUMI في العنوان الضريبي لحوالي 9.736 ETH ، واستنفد السيولة في المجمع.

نظرًا لأن عقد الضرائب (0x77fb) ليس مفتوح المصدر، قمنا بتفكيك بايت كوده وكانت نتائج التفكيك كما يلي:

https://app.dedaub.com/decompile?md5=01e2888c7691219bb7ea8c6b6befe11c

بعد تحليل طريقة "swapExactETHForTokens" لعقد جمع الضرائب (0x77fb)، اكتشفنا أن الوظيفة الرئيسية المنفذة بواسطة هذه الوظيفة هي تبادل كمية "xt" المحددة (المحددة من قبل المتصل) من رموز MUMI التي تمتلكها عقد جمع الضرائب (0x77fb) إلى ETH باستخدام موجه UniswapV2 ثم إرسالها إلى العنوان المعلن باسم "_manualSwap" في عنوان الضريبة.


عنوان تخزين العنوان اليدوي للتبادل هو 0x0. بعد الاستعلام بأمر getStorageAt من json-rpc، وجدنا أن العنوان المقابل لـ _manualSwap هو بالضبط مطور عقد الضريبة (0x77fb): المهاجم ② (0x9DF4).

تكوين المعلمة xt لهذه العملية Rug Pull هو 420،690،000،000،000،000،000،000، مما يعادل 420،690،000،000،000 (حوالي 420 تريليون) رموز MUMI (عدد عشري لرموز MUMI هو 9).

بمعنى آخر ، في النهاية ، استخدم المشروع 420،690،000،000،000،000 (حوالي 420 تريليون) MUMI لاستنزاف WETH في مجمع السيولة وإكمال عملية احتيال الخروج بأكملها. ومع ذلك ، هناك سؤال حاسم هنا: من أين حصل عقد تحصيل الضرائب (0x77fb) على الكثير من رموز MUMI؟ من المحتوى السابق ، علمنا أن إجمالي المعروض من الرموز المميزة لرموز MUMI في وقت النشر كان 420،690،000 (حوالي 420 مليون). ومع ذلك ، بعد نهاية مخطط سحب البساط ، عندما استفسرنا عن إجمالي عرض الرمز المميز في عقد رمز MUMI ، ظل عند 420,690,000 (كما هو موضح في الشكل أدناه ، معروض ك 420,690,000,000,000,000,000 ، والذي يحتاج إلى طرح الأصفار اللاحقة المقابلة للرقم العشري ، حيث العلامة العشرية هي 9). يبدو أن الرموز المميزة في عقد تحصيل الضرائب (0x77fb) ، والتي تتجاوز بكثير إجمالي العرض (420،690،000،000،000 ، حوالي 420 تريليون) ، قد ظهرت من فراغ. تجدر الإشارة إلى أنه ، كما ذكرنا سابقا ، لم يتم استخدام 0x77fb العنوان ، الذي يعمل كعنوان ضريبي ، لتلقي رسوم المعاملات الناتجة أثناء عملية نقل رموز MUMI ؛ تم استلام الضريبة من خلال عقد الرمز المميز نفسه.

كشف التقنية

  • من أين جاء عقد الضرائب؟

من أجل استكشاف مصدر الرمز لعقد الضريبة (0x7ffb)، قمنا بالنظر إلى تاريخ حدث نقل ERC20 الخاص به.

كشفت النتائج أنه من بين جميع أحداث التحويل ال 6 التي تنطوي على 0x77fb ، لوحظت أحداث فقط حيث تم نقل الرموز المميزة من عقد تحصيل الضرائب (0x7ffb) ، مع عدم نقل أي أحداث لرموز MUMI. للوهلة الأولى ، يبدو بالفعل أن الرموز المميزة في عقد تحصيل الضرائب (0x7ffb) ظهرت من فراغ. لذلك ، فإن الكمية الكبيرة من رموز MUMI التي تظهر على ما يبدو من فراغ في عقد تحصيل الضرائب (0x7ffb) لها خاصيتان: 1. لم يؤثر على إجمالي توريد عقد MUMI. 2. لم تؤدي الزيادة في الرموز المميزة إلى حدوث حدث نقل. مع وضع ذلك في الاعتبار ، يصبح من الواضح أنه يجب أن يكون هناك باب خلفي في عقد رمز MUMI ، يقوم مباشرة بتعديل متغير الرصيد دون تغييرات مقابلة في totalSupply أو تشغيل أحداث التحويل. بمعنى آخر ، يعد هذا تطبيقا غير قياسي أو ضار لرمز ERC20 ، حيث لا يمكن للمستخدمين إدراك سك الرموز المميزة خلسة لفريق المشروع من التغييرات في إجمالي العرض أو الأحداث. الخطوة التالية هي التحقق من هذه الفكرة من خلال البحث مباشرة عن الكلمة الرئيسية "balance" في الكود المصدري لعقد رمز MUMI المميز.

ونتيجة لذلك، وجدنا أن هناك نوعًا خاصًا من الوظيفة “swapTokensForEth” في العقد، والمعلمة الإدخالية هي tokenAmount من نوع uint256. في السطر الخامس من الوظيفة، تقوم الطرفية المشروع بتعديل _taxWallet مباشرة، وهو رصيد MUMI لعقد الضرائب (0x7ffb) بمقدار tokenAmount 10*_القراءة العشرية، وهي 1،000،000،000 (تقريبًا 1 مليار) مرة قيمة tokenAmount، ثم تحويل كمية tokenAmount من MUMI إلى ETH من بركة السيولة وتخزينها في عقد الرمز (0x4894). ثم البحث عن الكلمة المفتاحية "swapTokenForEth".

يتم استدعاء وظيفة "swapTokenForEth" داخل وظيفة "_transfer". عند فحص أقرب لظروف الاستدعاء، يُلاحَظ ما يلي: 1. عندما يكون عنوان المستلم (عنوان الوجهة) للتحويل هو بركة سيولة MUMI-WETH. 2. يتم استدعاء وظيفة "swapTokenForEth" فقط عندما تتجاوز كمية رموز MUMI التي تم شراؤها بواسطة عناوين أخرى في بركة السيولة "_preventSwapBefore" (5 مرات). 3. المعلمة "tokenAmount" التي تم تمريرها إلى الوظيفة هي القيمة الدنيا بين رصيد رموز MUMI المملوكة من قبل عنوان الرمز و"_maxTaxSwap".



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

  • كيف تحقق ربحاً

بعد تنفيذ وظيفة "swapTokenForEth"، ستنفذ أيضًا وظيفة "_transfer" لإرسال ETH المحصلة من جمع الضرائب في عنوان الرمز إلى عقد الضرائب (0x77fb).

يمكن سحب ETH في عقد الضريبة (0x77fb) باستخدام وظيفة "الإنقاذ" المنفذة في عقده.

الآن انظر إلى سجل الاسترداد لآخر عملية ربحية في عملية الخروج الاحتيالية بأكملها.

تم إجراء مجموع قدره عمق صفقتين في الصفقة الرابحة. الوقت الأول كان 4،164،831 (حوالي 4.16 مليون) رموز MUMI مقابل 0.349 ETH، والوقت الثاني كان 416،483،100،000،000 (حوالي 416 تريليون) رموز MUMI مقابل 9.368 ETH. الصفقة الثانية هي الصفقة التي بدأت داخل وظيفة "swapExactETHForTokens" في عقد الضريبة (0x7ffb). السبب في عدم تطابق العدد مع 420،690،000،000،000 (حوالي 420 تريليون) رمزًا يمثلها معلمات الإدخال هو أن بعض الرموز تُستخدم كضريبة ترسل إلى عقد الرمز (0x4894)، كما هو موضح في الشكل أدناه:

يتوافق التبادل الأول مع عملية التبادل الثانية. عندما يتم إرسال الرمز من عقد الضريبة (0x7ffb) إلى عقد الموجه، يتم تلبية شرط تنشيط وظيفة الباب الخلفي في عقد الرمز، مما يؤدي إلى تنشيط "swapTokensForEth". التبادل الذي بدأته الوظيفة ليس عملية حرجة.

  • الحصاد وراء الاحتيال

كما هو موضح من المحتوى السابق، فإن الدورة الكاملة لرمز MUMI، من النشر إلى إنشاء بركة السيولة، ثم إلى Rug Pull، استغرقت حوالي 3 ساعات فقط. ومع ذلك، تمكنت من تحقيق أكثر من 50٪ من الربح بتكلفة أقل من حوالي 6.5 ETH (3 ETH لإضافة السيولة، 3 ETH لتبديل MUMI من بركة السيولة كطعم، وأقل من 0.5 ETH لنشر العقد وبدء المعاملات)، مما أسفر عن 9.7 ETH. قام الهاجم بخمس معاملات لتبادل ETH مقابل MUMI، التي لم يتم ذكرها مسبقًا. تفاصيل المعاملات كما يلي:

عند تحليل حسابات الأشخاص الذين يملكونها (EOAs) العاملة داخل السيولة، تبين أن جزءًا كبيرًا من العناوين كانت تنتمي إلى عمليات "البوت" على السلسلة. نظرًا للطبيعة السريعة لعملية الاحتيال بأكملها، فمن المعقول أن نفترض أن هدف هذا الاحتيال كان العديد من "البوتات" والنصوص النشطة على السلسلة. لذلك، سواء كان التصميم اللامنطقي ولكن المعقد للعقد، أو عملية نشر العقد، أو عملية قفل السيولة، أو السلوك المشبوه للمهاجمين الذين يقومون بتبادل ETH بنشاط مقابل رموز MUMI في منتصف الطريق، يمكن فهم كل ذلك كمحاولات من قبل المهاجمين لخداع آليات مكافحة الاحتيال المختلفة للبوتات على السلسلة. من خلال تتبع تدفق الأموال، تبين أن جميع الأرباح التي تم الحصول عليها من الهجوم تم إرسالها في النهاية من قبل العنوان المهاجم ② (0x9dF4) إلى العنوان 0xDF1a.

في الواقع ، أشارت كل من مصادر التمويل الأولية والوجهات النهائية للعديد من عمليات الاحتيال الأخيرة إلى هذا العنوان. لذلك ، تم إجراء تحليل تقريبي وإحصاءات لمعاملات هذا العنوان. وقد وجد أن العنوان أصبح نشطا منذ حوالي شهرين وبدأ أكثر من 7000 معاملة حتى الآن ، وتفاعل مع أكثر من 200 رمز. من بين ما يقرب من 40 سجلا لمعاملات الرمز المميز التي تم تحليلها ، وجد أن جميع الرموز المميزة تقريبا ، عند عرضها في مجمعات السيولة المقابلة لها ، سيكون لها معاملة صرف كبيرة واحدة تستنفد كل ETH في مجمع السيولة ، ودورة احتيال الخروج بأكملها قصيرة. فيما يلي معاملات نشر بعض الرموز المميزة (مثل السيجارة الصينية):

https://etherscan.io/tx/0x324d7c133f079a2318c892ee49a2bcf1cbe9b20a2f5a1f36948641a902a83e17

https://etherscan.io/tx/0x0ca861513dc68eaef3017e7118e7538d999f9b4a53e1b477f1f1ce07d982dc3f

لذلك، يمكن الاستنتاج من ذلك أن هذا العنوان، في الواقع، عبارة عن جهاز جمع ضخم مؤتمت 'احتيال الخروج'، يستهدف عمليات البوت على السلسلة. هذا العنوان ما زال نشطاً.

في الختام ، إذا كانت عملية سك الرمز المميز لا تتوافق مع تعديل totalSupply أو تشغيل أحداث النقل ، فمن الصعب علينا إدراك ما إذا كان فريق المشروع يقوم بسك الرموز المميزة سرا. يؤدي هذا إلى تفاقم الوضع الحالي حيث يعتمد أمان الرموز المميزة كليا على وعي فريق المشروع. لذلك ، قد يكون من الضروري النظر في تحسين آليات الرمز المميز الحالية أو إدخال مخطط فعال لمراقبة العرض الكلي للرمز المميز لضمان الشفافية في تغييرات كمية الرمز المميز. الاعتماد فقط على الأحداث لالتقاط تغييرات حالة الرمز المميز لا يكفي. علاوة على ذلك ، نحتاج إلى إدراك أنه على الرغم من أن وعي الناس بمنع الاحتيال آخذ في الازدياد ، إلا أن أساليب المهاجمين في مكافحة الاحتيال تتقدم أيضا. هذه لعبة لا نهاية لها ، ونحن بحاجة إلى مواصلة التعلم والتفكير من أجل حماية أنفسنا.

  • الأدوات المستخدمة في هذه المقالة

عرض معلومات العملية الأساسية: https://etherscan.io/

فك تشفير العقد: app.dedaub.com/decompilejson-rpc: https://www.quicknode.com/docs/ethereum/eth_getStorageAt

إخلاء المسؤولية:

  1. تمت إعادة طبع هذه المقالة من [سيرتيك], Forward the Original Title‘技术详解 | 链上打新局中局,大规模Rug Pull手法解密’.All copyrights belong to the original author [CertiK]. إذا كانت هناك اعتراضات على إعادة النشر هذه، يرجى الاتصال بـبوابة تعلمالفريق، وسوف يتولى التعامل معها على الفور.
  2. إخلاء المسؤولية عن المسؤولية: الآراء والآراء الواردة في هذه المقالة هي فقط تلك التي يعبر عنها الكاتب ولا تشكل أي نصيحة استثمارية.
  3. يتولى فريق Gate Learn ترجمة المقال إلى لغات أخرى. ما لم يذكر، يُحظر نسخ أو توزيع أو انتحال المقالات المترجمة.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!