Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
miasm — पायथन में रिवर्स इंजीनियरिंग फ्रेमवर्क | Kitploit
उपकरण/GitHubGitHub/cea-sec/miasm
स्थैतिक विश्लेषणगतिशील विश्लेषण (सैंडबॉक्सिंग)रिवर्स इंजीनियरिंगडीबगर्सफज़िंगबाइनरी विश्लेषण
GitHubcea-sec/miasm

miasm

पायथन में रिवर्स इंजीनियरिंग फ्रेमवर्क

रिपॉजिटरी देखें
3.9k489228 दिन पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
वेबसाइट
साझा करें

Build Status Build status Miasm tests Code Climate Join the chat at https://gitter.im/cea-sec/miasm

Miasm क्या है?

Miasm एक मुफ्त और ओपन सोर्स (GPLv2) रिवर्स इंजीनियरिंग फ्रेमवर्क है। Miasm का उद्देश्य बाइनरी प्रोग्रामों का विश्लेषण / संशोधन / निर्माण करना है। यहाँ विशेषताओं की एक गैर-विस्तृत सूची दी गई है:

  • PE / ELF 32 / 64 LE / BE खोलना / संशोधित करना / उत्पन्न करना
  • X86 / ARM / MIPS / SH4 / MSP430 को असेंबल / डिसअसेंबल करना
  • इंटरमीडिएट भाषा का उपयोग करके असेंबली सिमैंटिक का प्रतिनिधित्व करना
  • JIT का उपयोग करके एमुलेट करना (डायनामिक कोड विश्लेषण, अनपैकिंग, ...)
  • स्वचालित डी-ऑब्सफस्केशन के लिए अभिव्यक्ति सरलीकरण
  • ...

अधिक उदाहरणों और डेमो के लिए आधिकारिक ब्लॉग देखें।

विषय सूची

  • Miasm क्या है?
  • मूल उदाहरण
    • असेंबल / डिसअसेंबल
    • इंटरमीडिएट प्रतिनिधित्व
    • एमुलेशन
    • प्रतीकात्मक निष्पादन
  • यह कैसे काम करता है?
  • दस्तावेज़ीकरण
  • Miasm प्राप्त करना
    • सॉफ़्टवेयर आवश्यकताएँ
    • कॉन्फ़िगरेशन
    • Windows और IDA
  • परीक्षण
  • वे पहले से ही Miasm का उपयोग करते हैं
  • विविध

मूल उदाहरण

असेंबल / डिसअसेंबल

Miasm x86 आर्किटेक्चर आयात करें:```pycon

from miasm.arch.x86.arch import mn_x86 from miasm.core.locationdb import LocationDB

एक स्थान db प्राप्त करें:```pycon
>>> loc_db = LocationDB()

एक पंक्ति इकट्ठा करें:```pycon

l = mn_x86.fromstring('XOR ECX, ECX', loc_db, 32) print(l) XOR ECX, ECX mn_x86.asm(l) ['1\xc9', '3\xc9', 'g1\xc9', 'g3\xc9']

एक ऑपरेंड संशोधित करें:```pycon
>>> l.args[0] = mn_x86.regs.EAX
>>> print(l)
XOR        EAX, ECX
>>> a = mn_x86.asm(l)
>>> print(a)
['1\xc8', '3\xc1', 'g1\xc8', 'g3\xc1']

परिणाम को अलग करें:```pycon

print(mn_x86.dis(a[0], 32)) XOR EAX, ECX

`Machine` एब्स्ट्रैक्शन का उपयोग करना:```pycon
>>> from miasm.analysis.machine import Machine
>>> mn = Machine('x86_32').mn
>>> print(mn.dis('\x33\x30', 32))
XOR        ESI, DWORD PTR [EAX]

MIPS के लिए:```pycon

mn = Machine('mips32b').mn print(mn.dis(b'\x97\xa3\x00 ', "b")) LHU V1, 0x20(SP)

मध्यवर्ती प्रतिनिधित्व
---------------------------

एक निर्देश बनाएँ:```pycon
>>> machine = Machine('arml')
>>> instr = machine.mn.dis('\x00 \x88\xe0', 'l')
>>> print(instr)
ADD        R2, R8, R0

एक मध्यवर्ती प्रतिनिधित्व ऑब्जेक्ट बनाएँ:```pycon

lifter = machine.lifter_model_call(loc_db)

एक खाली ircfg बनाएँ:```pycon
>>> ircfg = lifter.new_ircfg()

पूल में निर्देश जोड़ें:```pycon

lifter.add_instr_to_ircfg(instr, ircfg)

वर्तमान पूल प्रिंट करें:```pycon
>>> for lbl, irblock in ircfg.blocks.items():
...     print(irblock)
loc_0:
R2 = R8 + R0

IRDst = loc_4

IR के साथ काम करना, उदाहरण के लिए दुष्प्रभाव प्राप्त करना:```pycon

for lbl, irblock in ircfg.blocks.items(): ... for assignblk in irblock: ... rw = assignblk.get_rw() ... for dst, reads in rw.items(): ... print('read: ', [str(x) for x in reads]) ... print('written:', dst) ... print() ... read: ['R8', 'R0'] written: R2

read: [] written: IRDst

अधिक जानकारी Miasm IR पर [संबंधित Jupyter Notebook](https://github.com/cea-sec/miasm/blob/master/doc/expression/expression.ipynb) में है।

अनुकरण
---------

एक शेलकोड दिया गया:```pycon
00000000 8d4904      lea    ecx, [ecx+0x4]
00000003 8d5b01      lea    ebx, [ebx+0x1]
00000006 80f901      cmp    cl, 0x1
00000009 7405        jz     0x10
0000000b 8d5bff      lea    ebx, [ebx-1]
0000000e eb03        jmp    0x13
00000010 8d5b01      lea    ebx, [ebx+0x1]
00000013 89d8        mov    eax, ebx
00000015 c3          ret
>>> s = b'\x8dI\x04\x8d[\x01\x80\xf9\x01t\x05\x8d[\xff\xeb\x03\x8d[\x01\x89\xd8\xc3'

शेलकोड को Container एब्स्ट्रैक्शन के माध्यम से आयात करें:```pycon

from miasm.analysis.binary import Container c = Container.from_string(s, loc_db) c <miasm.analysis.binary.ContainerUnknown object at 0x7f34cefe6090>

पते `0` पर शेलकोड को डिसअसेंबल करना:```pycon
>>> from miasm.analysis.machine import Machine
>>> machine = Machine('x86_32')
>>> mdis = machine.dis_engine(c.bin_stream, loc_db=loc_db)
>>> asmcfg = mdis.dis_multiblock(0)
>>> for block in asmcfg.blocks:
...  print(block)
...
loc_0
LEA        ECX, DWORD PTR [ECX + 0x4]
LEA        EBX, DWORD PTR [EBX + 0x1]
CMP        CL, 0x1
JZ         loc_10
->      c_next:loc_b    c_to:loc_10
loc_10
LEA        EBX, DWORD PTR [EBX + 0x1]
->      c_next:loc_13
loc_b
LEA        EBX, DWORD PTR [EBX + 0xFFFFFFFF]
JMP        loc_13
->      c_to:loc_13
loc_13
MOV        EAX, EBX
RET

JIT इंजन को एक स्टैक के साथ आरंभ करना:```pycon

jitter = machine.jitter(loc_db, jit_type='python') jitter.init_stack()

शेलकोड को एक मनमाना मेमोरी स्थान पर जोड़ें:```pycon
>>> run_addr = 0x40000000
>>> from miasm.jitter.csts import PAGE_READ, PAGE_WRITE
>>> jitter.vm.add_memory_page(run_addr, PAGE_READ | PAGE_WRITE, s)

शेलकोड की वापसी को पकड़ने के लिए एक sentinelle बनाएँ:```Python def code_sentinelle(jitter): jitter.running = False jitter.pc = 0 return True

jitter.add_breakpoint(0x1337beef, code_sentinelle) jitter.push_uint32_t(0x1337beef)

सक्रिय लॉग:```pycon
>>> jitter.set_trace_log()

किसी भी पते पर चलाएँ:```pycon

jitter.init_run(run_addr) jitter.continue_run() RAX 0000000000000000 RBX 0000000000000000 RCX 0000000000000000 RDX 0000000000000000 RSI 0000000000000000 RDI 0000000000000000 RSP 000000000123FFF8 RBP 0000000000000000 zf 0000000000000000 nf 0000000000000000 of 0000000000000000 cf 0000000000000000 RIP 0000000040000000 40000000 LEA ECX, DWORD PTR [ECX+0x4] RAX 0000000000000000 RBX 0000000000000000 RCX 0000000000000004 RDX 0000000000000000 RSI 0000000000000000 RDI 0000000000000000 RSP 000000000123FFF8 RBP 0000000000000000 zf 0000000000000000 nf 0000000000000000 of 0000000000000000 cf 0000000000000000 .... 4000000e JMP loc_0000000040000013:0x40000013 RAX 0000000000000000 RBX 0000000000000000 RCX 0000000000000004 RDX 0000000000000000 RSI 0000000000000000 RDI 0000000000000000 RSP 000000000123FFF8 RBP 0000000000000000 zf 0000000000000000 nf 0000000000000000 of 0000000000000000 cf 0000000000000000 RIP 0000000040000013 40000013 MOV EAX, EBX RAX 0000000000000000 RBX 0000000000000000 RCX 0000000000000004 RDX 0000000000000000 RSI 0000000000000000 RDI 0000000000000000 RSP 000000000123FFF8 RBP 0000000000000000 zf 0000000000000000 nf 0000000000000000 of 0000000000000000 cf 0000000000000000 RIP 0000000040000013 40000015 RET

जिटर के साथ बातचीत:```pycon
>>> jitter.vm
ad 1230000 size 10000 RW_ hpad 0x2854b40
ad 40000000 size 16 RW_ hpad 0x25e0ed0
टूल डाउनलोड करें