Yazılım | Programlama Python Açılan Herhangi Bir Programda İstenilmeyen Text Bulunduğunda Kapatma

Alih78

Katılımcı Üye
26 May 2022
266
1
243
Programın kaynak kodlarının arasında belirli bir değerin bulunup bulunmadığıını tespit edip programı ona göre mı çalıştırmak istiyorsun?
Eğer dediğim gibiyse
Python:
import os

with open(filename,"rb") as file:
    file_bytes = file.read()

if b"deger" not in file_bytes:
    os.system(filename)
 

Helmsys

Ar-Ge Ekibi Kıdemli
16 Mar 2022
1,492
25
1,653
Programın kaynak kodlarının arasında belirli bir değerin bulunup bulunmadığıını tespit edip programı ona göre mı çalıştırmak istiyorsun?
Eğer dediğim gibiyse
Python:
import os

with open(filename,"rb") as file:
    file_bytes = file.read()

if b"deger" not in file_bytes:
    os.system(filename)
Ben açık bir uygulama penceresinde "şu ifade" yazarsa kapatsın gibi bir anlam çıkardım.

bunda da görüntü işleme ayrıyeten windowsta olduğu varsayılıp windows apileri kullanılması gerektiğini düşünüyorum.
Çünkü bir pencere tespiti yapılacak o pencerenin ss'i alınacak alınan ss'te görüntü işlenerek "şu" yazıyorsa ilgili ss'e ait pencere kapatılacak.

Fazla mesai gerektiren bir işe benziyor. Yapacak arkadaşa kolay gelsin.
 

alexandre20

Katılımcı Üye
13 Tem 2022
908
11
716
THT üyeleri yine fikir sahibi olmadan taktik vermeye çalışmışlar yok image processing, yok readfile falan. geçiniz bunları.

Winapi üzerinden 'ReadProcessMemory' fonksiyonu ile programın çalışma sırasında ram'e yüklediği datayı çekip içerisinde string aratabiliriz.

Pythoncu değilim ama muhtemelen bunun gibi bir şey işinizi görecektir.

Python:
import ctypes, struct

pid = 1234  # process id'si.
processHandle = ctypes.windll.kernel32.OpenProcess(0x10, False, pid)

addr = 0x0000000080000000  # okunacak modülün base address'i
buffer = (ctypes.c_byte * 8)()
bytesRead = ctypes.c_ulonglong(0)
result = ctypes.windll.kernel32.ReadProcessMemory(processHandle, ctypes.c_void_p(addr), buffer, len(buffer), ctypes.byref(bytesRead))
x = ctypes.windll.kernel32.GetLastError()
ctypes.windll.kernel32.CloseHandle(processHandle)

# 'buffer' içerisinde istediğiniz stringi aratabilirsiniz.
 

Alih78

Katılımcı Üye
26 May 2022
266
1
243
THT üyeleri yine fikir sahibi olmadan taktik vermeye çalışmışlar yok image processing, yok readfile falan. geçiniz bunları.

Winapi üzerinden 'ReadProcessMemory' fonksiyonu ile programın çalışma sırasında ram'e yüklediği datayı çekip içerisinde string aratabiliriz.

Pythoncu değilim ama muhtemelen bunun gibi bir şey işinizi görecektir.

Python:
import ctypes, struct

pid = 1234  # process id'si.
processHandle = ctypes.windll.kernel32.OpenProcess(0x10, False, pid)

addr = 0x0000000080000000  # okunacak modülün base address'i
buffer = (ctypes.c_byte * 8)()
bytesRead = ctypes.c_ulonglong(0)
result = ctypes.windll.kernel32.ReadProcessMemory(processHandle, ctypes.c_void_p(addr), buffer, len(buffer), ctypes.byref(bytesRead))
x = ctypes.windll.kernel32.GetLastError()
ctypes.windll.kernel32.CloseHandle(processHandle)

# 'buffer' içerisinde istediğiniz stringi aratabilirsiniz.
Arkadaşın ne dediği belli değil, okunan bir dosya içerisinde mi, pencere içerisinde mi tam olarak kastetmemiş. Hayır anlamadım niye bunu kadar "trigger"lanıyorsunuz?
 

SecurityFaTHeR

Uzman üye
4 Şub 2022
1,318
6
359
THT üyeleri yine fikir sahibi olmadan taktik vermeye çalışmışlar yok image processing, yok readfile falan. geçiniz bunları.

Winapi üzerinden 'ReadProcessMemory' fonksiyonu ile programın çalışma sırasında ram'e yüklediği datayı çekip içerisinde string aratabiliriz.

Pythoncu değilim ama muhtemelen bunun gibi bir şey işinizi görecektir.

Python:
import ctypes, struct

pid = 1234  # process id'si.
processHandle = ctypes.windll.kernel32.OpenProcess(0x10, False, pid)

addr = 0x0000000080000000  # okunacak modülün base address'i
buffer = (ctypes.c_byte * 8)()
bytesRead = ctypes.c_ulonglong(0)
result = ctypes.windll.kernel32.ReadProcessMemory(processHandle, ctypes.c_void_p(addr), buffer, len(buffer), ctypes.byref(bytesRead))
x = ctypes.windll.kernel32.GetLastError()
ctypes.windll.kernel32.CloseHandle(processHandle)

# 'buffer' içerisinde istediğiniz stringi aratabilirsiniz.
hocam kaç yılda öğrendiniz pythonu bu kadar iyi kaç yılda öğrenilir ondan sordum
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.