
मैंने अब तक सीखे गए सभी AMSI पैच का दस्तावेज़ीकरण किया है।
मैंने अपने अब तक सीखे गए सभी AMSI पैच का दस्तावेजीकरण किया है।


a. amsi!AmsiOpenSession+0x4c में प्रवेश को jne के माध्यम से छोड़ने के लिए, यदि jne के आह्वान से पहले सभी निर्देश सफल हो जाएं
=> हम सीधे amsi!AmsiCloseSession पर पहुंच जाएंगे।
amsi!AmsiOpenSession से jne उपयोग करने की तकनीक दिखाई Github। मैंने उनके AMSI पैच कोड टेम्पलेट का उपयोग किया है और अब तक जिन अन्य विधियों पर काम किया है उन्हें जोड़ा है।b. ret के माध्यम से amsi!AmsiOpenSession+0x4c (एक सत्र खोलता है जिसके भीतर कई स्कैन अनुरोधों को सहसंबद्ध किया जा सकता है) में प्रवेश को छोड़ने के लिए, amsi!AmsiOpenSession की शुरुआत में सीधे c3 चिपकाकर
=> हम सीधे amsi!AmsiCloseSession पर पहुंच जाएंगे।
a. amsi!AmsiScanBuffer के मुख्य निर्देशों के निष्पादन को ret के माध्यम से छोड़ने के लिए, amsi!AmsiScanBuffer की शुरुआत में सीधे c3 चिपकाकर
b. amsi!AmsiScanBuffer में वास्तविक स्कैनिंग करने वाली शाखा को छोड़ने और लौटने के लिए, amsi!AmsiScanBuffer की शुरुआत में सीधे \\xB8\\x57\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070057; ret') चिपकाकर
यहाँ, HRESULT का मान (बल्कि त्रुटि मान) 'E_INVALIDARG' है (स्रोत: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)
c. amsi!AmsiScanBuffer में वास्तविक स्कैनिंग करने वाली शाखा को छोड़ने और लौटने के लिए, amsi!AmsiScanBuffer की शुरुआत में सीधे \\xB8\\x05\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070005; ret') चिपकाकर
यहाँ, HRESULT का मान (बल्कि त्रुटि मान) 'E_ACCESSDENIED' है (स्रोत: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)
d. amsi!AmsiScanBuffer में वास्तविक स्कैनिंग करने वाली शाखा को छोड़ने और लौटने के लिए, amsi!AmsiScanBuffer की शुरुआत में सीधे \\xB8\\x06\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070006; ret') चिपकाकर
यहाँ, HRESULT का मान (बल्कि त्रुटि मान) 'E_HANDLE' है (स्रोत: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)
e. amsi!AmsiScanBuffer में वास्तविक स्कैनिंग करने वाली शाखा को छोड़ने और लौटने के लिए, amsi!AmsiScanBuffer की शुरुआत में सीधे \\xB8\\x0E\\x00\\x07\\x80\\xC3 ('mov eax, 0x8007000E; ret') चिपकाकर
यहाँ, HRESULT का मान (बल्कि त्रुटि मान) 'E_OUTOFMEMORY' है (स्रोत: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)
JE से JMP में बदलें ताकि यह सीधे लौट आए... : https://github.com/ZeroMemoryEx/Amsi-Killer