Skip to content

Commit

Permalink
0.2
Browse files Browse the repository at this point in the history
White_list && Ignore_list Location
Added -fd param
  • Loading branch information
raifpy committed May 16, 2020
1 parent 9f5509f commit 086831f
Show file tree
Hide file tree
Showing 5 changed files with 144 additions and 41 deletions.
69 changes: 69 additions & 0 deletions READ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Python AntiBetik Projesi

<h1>Kullanım</h1>

Doğrudan çalıştır

python3 main.py

Parametre ile çalıştır

python3 main.py -f (filelocation/file.py)

python3 main.py -d (dirlocation/)

python3 main.py -w (dirlocation/) 3


Betik Taraması ;

python3 main.py -f (filelocation/file.py)
AntiBetik'i sadece 1 Betik için çalıştır , işi bitince kapat

Klasör Taraması;

python3 main.py -d (dirlocation/)
AntiBetik'i sadece bir konum içinde çalıştır . Konumdaki tüm betikleri tarasın . Işı bitince kapansın

Sürekli Tarama ;

python3 main.py -w (dirlocation/) 3 # 3 saniyeyi ifade ediyor
AntiBetik'i belirtilen konum içinde çalıştır . {} kadar saniye bekle , tekrar çalıştır . (İndirilenler klasöründe çalışmasına izin verebilirsiniz)

Otomatik Başlatma;

python3 main.py

Main.py Ayarı:

src/__init__.py'ı düzenle .


Terminalden Başlat

cd AntiBetik
mv main.py AntiBetik
nano AntiBetik.py (ilk satıra): #! /usr/bin/python3 (kayıt)
sudo chmod +x AntiBetik
sudo chmod +x src
sudo cp AntiBetik /usr/bin/
sudo cp -r src /usr/bin/
<Terminal Aç Kapat>

Yada :

EXEC AntiBetik

<a href="https://github.com/BetikSonu/AntiBetik/releases/tag/elf01" target="_blank">ELF</a>

sudo chmod +x AntiBetik
sudo cp Antibetik /usr/bin # Paramtereli ile terminalden başlatabilirsiniz.



Hala qt hatalarını veriyor :D





8 changes: 1 addition & 7 deletions src/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# PWDBY @raifpy
# PWDBY @raifpy | @BetikSonu

import src.sysargv,sys
import src.source as source # Kaynak kodları dahil edildi
Expand All @@ -9,12 +9,6 @@


def run(str=None):


if len(sys.argv) > 1: # Bash ile betik taraması yapmak için .
sysargv() # Yönlendirme



sleep = 3 # Döngü içerisinde tarama yapacak . Arada 3 saniye beklesin . 1 Saniye yapabilirsiniz

Expand Down
Binary file added src/antibetik.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
80 changes: 55 additions & 25 deletions src/source.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ def __init__(self,debug=False):
#self.ignore_list.append("/benim/taranmasını/istemediğim/konumum") # <2 alt klasör içerisinde bu girdi var ise doğrudan atlacaktır

self.ignore_list_app = []
self.white_add() # white.list 'i oluşturuyor | içerik varsa ignore_list_app 'e ekler .
self.ignore_add()

self.ignore_list.append(os.path.join(os.getcwd(),"src"))

#self.ignore_list.append(os.path.join(os.getcwd()))
Expand All @@ -47,6 +46,8 @@ def __init__(self,debug=False):
self.os = modules.check().os
self.print("Isletim sistemi {}".format(self.os))

self.white_add()
self.ignore_add()
self.gui_check() # PyQt5 Test

def run(self,location=None,sleep=2):
Expand All @@ -59,8 +60,7 @@ def run(self,location=None,sleep=2):
self.scan(location)
self.print("Uyuyor")
time.sleep(sleep)



def download(self,sleep=1):
print("{} klasörü taranıyor : src/__init__.py'dan ayarları değişterebilirsiniz .".format(self.download_location))
while 1:
Expand All @@ -74,18 +74,26 @@ def desktop(self,sleep=1):
self.print("Uyuyor")
time.sleep(sleep)



def white_add(self):
with open("white.list","a+") as oku:
if self.os == "Unix":
self.white_list = os.path.join(self.home_location,".antibetik_white.list")
else:
self.white_list = "C:\\Users\\{}\\AppData\\AntiBetik_white.list".format(os.getlogin())

with open(self.white_list,"a+") as oku:
oku.seek(0)
oku=oku.read()
if oku:
for knm in oku.splitlines():
self.ignore_list_app.append(knm)

def ignore_add(self):
with open("ignore.list","a+") as oku:
if self.os == "Unix":
self.ignore_list_loc = os.path.join(self.home_location,".antibetik_ignore.list")
else:
self.ignore_list_loc = "C:\\Users\\{}\\AppData\\AntiBetik_ignore.list".format(os.getlogin())

with open(self.ignore_list_loc,"a+") as oku:
oku.seek(0)
oku=oku.read()
for ekle in oku.splitlines():
Expand Down Expand Up @@ -203,15 +211,13 @@ def liste_uyari_detay(self):

dio_detay.exec_()


def liste_uyari_ignore(self):
konum = self.liste[0]["konum"]
self.ignore_list_app.append(konum)
self.dio.close()


def liste_uyari_white(self):
with open("white.list","a") as yaz:
with open(self.white_list,"a") as yaz:
yaz.write(self.liste[0]["konum"]+"\n")
self.ignore_list_app.append(self.liste[0]["konum"])
self.dio.close()
Expand All @@ -222,7 +228,6 @@ def liste_uyari_sil(self):
os.remove(self.liste[0]["konum"])
self.dio.close()


def liste_uyari_cli(self,liste):
while 1:
os.system("clear")
Expand Down Expand Up @@ -255,18 +260,16 @@ def liste_uyari_cli(self,liste):
break

elif soralim == "w":
with open("white.list","a") as yaz:
with open(self.white_list,"a") as yaz:
yaz.write(konum+"\n")
self.ignore_list_app.append(konum)
print("\033[34mBeyaz listeye alındı .\033[0m")
break



def scan(self,location):
if location == self.home_location:
print("\033[31mPython3 paketlerinde potansiyel zararlı yazılım bulma ihtimali var . Dikkatli kullanın ve paketleri silmeyin .\033[0m")
time.sleep(2)
#time.sleep(2)
for konum,klasor,dosyalar in os.walk(location):
if dosyalar:
for fil in dosyalar:
Expand All @@ -277,7 +280,7 @@ def scan(self,location):
tam_konum = os.path.join(konum,fil)

if konum in self.ignore_list or tam_konum in self.ignore_list_app:
print("IGNORE LIST | {} ".format(tam_konum))
self.print("IGNORE LIST | {} ".format(tam_konum))

elif "/".join(konum.split("/")[:-1]) in self.ignore_list or "/".join(konum.split("/")[:-2]) in self.ignore_list:
self.print("\033[31mignore_list üst dalları : {}\033[0m".format(tam_konum))
Expand All @@ -286,8 +289,6 @@ def scan(self,location):
self.print("Taranan konum : {}".format(tam_konum))
self.oku_yonlendir(tam_konum,fil)



def oku_yonlendir(self,konum,dosya):
try:
with open(konum) as veri:
Expand All @@ -300,8 +301,6 @@ def oku_yonlendir(self,konum,dosya):
else:
self.table(veri,dosya,konum)



def table(self,icerik,dosya,konum):
self.print("{} gözden geçiriliyor ".format(dosya))
liste= []
Expand Down Expand Up @@ -329,9 +328,43 @@ def table(self,icerik,dosya,konum):
else:
self.ignore_list_app.append(konum) # Bu zaten tarandı . Tekrar taranmasına gerek yok ..

def oku_yonlendir_f(self,konum,dosya): # _f farklı çalışıyor . | -fd parametersi ile doğrudan betiği taramak istiyoruz . Betikde zararlı kod olsun olmasın menünün açılmasını sağlamak istiyorum . | -filedetail | -fd

try:
with open(konum) as veri:
veri=veri.read()
except KeyboardInterrupt:
sys.exit()
except UnicodeError:
print("\033[31mUnicode Error {} \033[0m".format(konum))
except Exception as hata:
print("\033[31mBilinmeyen hata : {}\033[0m".format(hata))

else:
self.table_f(veri,dosya,konum)

def table_f(self,icerik,dosya,konum): # _f farklı çalışıyor . | -fd parametersi ile doğrudan betiği taramak istiyoruz . Betikde zararlı kod olsun olmasın menünün açılmasını sağlamak istiyorum . | -filedetail | -fd
self.print("{} gözden geçiriliyor ".format(dosya))
liste= []
eklenesi = False
for olasi in filters.filters:
abc = re.search(olasi[0],icerik.strip())
if abc:
veri = "\nDosya : "+dosya+"\nKonum : "+konum+"\n\nAçıklama : "+olasi[1]+"\nRISK : "+str(olasi[2])
json_veri = {"dosya":dosya,"konum":konum,"aciklama":olasi[1],"risk":olasi[2],"tehtit":olasi[0]}

liste.append(json_veri)
self.print(veri)

if not liste:
json_veri = {"dosya":dosya,"konum":konum,"aciklama":"Herhangi birşey bulunamadı .","risk":0,"tehtit":"AntiBetik"}
liste.append(json_veri)

if self.gui :
self.liste_uyari(liste)

else:
self.liste_uyari_cli(liste)

def gui_check(self):
try:
Expand All @@ -353,8 +386,6 @@ def gui_check(self):
gct.start()
self.print("\033[33mQt Döngülendi (30m) !\033[0m")



def gui_check_2(self):
if not self.gui:
for i_i in range(5):
Expand All @@ -367,7 +398,6 @@ def gui_check_2(self):
except:
self.print("Qt'yi çalıştırma denemesi {}".format(i_i))


def print(self,*argv):
if self.debug:
print(*argv)
Expand All @@ -379,7 +409,7 @@ def print(self,*argv):


if __name__ == "__main__":
print("source.py | @BetikSonu | @raifpy")
print("source.py | @BetikSonu | @raifpy\n\n}¶DEV Notları : \n\n-f && -d parametresi doğrudan oku_yonlendir üzerinden çalıştığı için ignore_list & white_list onlar için önemsiz .\nYani -f ve -fd parametreleri ile tararsanız hali hazırda white_liste'e aldığın verilerde gine zararlı kod bulacaktır .\n\nAslında fena değil ha :)")


# NOT :
Expand Down
28 changes: 19 additions & 9 deletions src/sysargv.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
import sys,os


def else_():
print("Kullanım :\n\n-f location/pyt.py | <file>\n-fd location/pyt.py | <filename> <detail>\n-d /location | <dir>\n-w /location 10 (sleep int) | <while> \n\n\t {dosya} -f /home/betiksonu/files/test.py\n\n\t {dosya} -fd /home/betiksonu/files/test.py [Detail]\n\n\t {dosya} -d /home/betiksonu/file\n\n\t {dosya} -w /home/betiksonu/file 10".format(dosya=sys.argv[0]))

if len(sys.argv) > 1:
from . import source
AntiBetik = source.PyAnti(debug=False) # Debug deaktif
Expand All @@ -8,24 +12,30 @@

if argv[1] == "-f" and len(argv) > 2:
if os.path.isfile(argv[2]):
AntiBetik.oku_yonlendir(argv[2],"/".join(konum.split("/")[:-1]))
else:
print("Kullanım :\n\n-f location/pyt.py | <file>\n-d /location | <dir>\n-w /location 10 (sleep int) | <while> \n\n\t {dosya} -f /home/betiksonu/files/test.py\n\n\t {dosya} -d /home/betiksonu/file\n\n\t {dosya} -w /home/betiksonu/file 10".format(dosya=sys.argv[0]))
print("-f Parametresi Açık . Sadece tehtit algılanırsa menü açılacaktır .\n-fd parametresini kullanabilirsin .")
AntiBetik.oku_yonlendir(argv[2],argv[2].split("/")[::-1][0])
else:else_()

elif argv[1] == "-fd" and len(argv) > 2:
if os.path.isfile(argv[2]):
AntiBetik.oku_yonlendir_f(argv[2],argv[2].split("/")[::-1][0])
else:else_()





elif argv[1] == "-d" and len(argv) > 2:
if os.path.isdir(argv[2]):
AntiBetik.scan(argv[2])
else:
print("Kullanım :\n\n-f location/pyt.py | <file>\n-d /location | <dir>\n-w /location 10 (sleep int) | <while> \n\n\t {dosya} -f /home/betiksonu/files/test.py\n\n\t {dosya} -d /home/betiksonu/file\n\n\t {dosya} -w /home/betiksonu/file 10".format(dosya=sys.argv[0]))
else:else_()

elif argv[1] == "-w" and len(argv) > 3 and argv[3].isnumeric():
if os.path.isdir(argv[2]):
AntiBetik.run(location=argv[2],sleep=int(argv[3]))
else:
print("Kullanım :\n\n-f location/pyt.py | <file>\n-d /location | <dir>\n-w /location 10 (sleep int) | <while> \n\n\t {dosya} -f /home/betiksonu/files/test.py\n\n\t {dosya} -d /home/betiksonu/file\n\n\t {dosya} -w /home/betiksonu/file 10".format(dosya=sys.argv[0]))
else:else_()

else:
print("Kullanım :\n\n-f location/pyt.py | <file>\n-d /location | <dir>\n-w /location 10 (sleep int) | <while> \n\n\t {dosya} -f /home/betiksonu/files/test.py\n\n\t {dosya} -d /home/betiksonu/file\n\n\t {dosya} -w /home/betiksonu/file 10".format(dosya=sys.argv[0]))
else:else_()



Expand Down

0 comments on commit 086831f

Please sign in to comment.