Új hozzászólás Aktív témák
-
tmslevi
tag
Sziasztok!
Egy pyarmor-ral védett .py forráskódot szeretnék valamilyen módon visszaállítani olvasható formátumba. A kérdésem az lenne, hogy lehetséges-e egyeltalán? Az interneten nem igazán találtam róla infót. Előre is köszönöm a segítséget! -
sztanozs
veterán
válasz tmslevi #2953 üzenetére
Ez a legközelebbi, amit találtam. Nem hiszem, hogy van hozzá kulcsrakész eszköz.
https://reverseengineering.stackexchange.com/questions/25075/reversing-pyarmor-discussion[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Siriusb
veterán
Kicsit foglalkoztam a log készítésével, próbálom modernizálni magam (addig csak a csupasz minimum szintjén használtam), no meg készíteni egy modult, amit csak be kell rántanom, ha esetleg szükségem van log-ra. Vegyük figyelembe, hogy kispályás vagyok, tehát semmi komoly munkáról nincs szó.
Első kérdés:
Ti yaml-t vagy dictConfig-ot használtok? A yaml-nak nem látom értelmét esetemben, mert úgyis csak egyszer kell összeraknom a konfigurációt, szóval az hogy esetleg átláthatóbb, nem lényeges számomra.Második kérdés:
Mi a jó megoldás akkor, ha nem akarom a különböző szintű üzeneteket (info, warn stb) látni a konzolban alapesetben, de néha mégis szükségem lenne rá? Olyankor hozzáadom a logger-hez a handler-t, majd törlöm?Harmadik kérdés:
Várjátok már a Jézuskát? -
-
sztanozs
veterán
válasz Mr Dini #2956 üzenetére
Nem rossz, bár sok kézimunkát igényel, és lehet, hogy az új változatok ellen már nem annyira hatásos - bár szerintem csak azért nem osztotta meg a kódot, nehogy a kínaiak a körmére nézzenek
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Siriusb
veterán
válasz Siriusb #2955 üzenetére
És a ráadás kérdés:
Hogy egyedivé tegyem a log fájlok neveit, a dictConfig meghívása előtt lefut az alábbi kódrészlet:frame = inspect.stack()[-1]
caller_base_filename = os.path.splitext(os.path.basename(frame.filename))[0]
for k in LOGGING_CONFIG['handlers'].keys():
for key, value in LOGGING_CONFIG['handlers'][k].items():
if key == 'filename':
LOGGING_CONFIG['handlers'][k][key] = f'{caller_base_filename}_{value}'
Van valami egyszerűbb megoldás erre a célra?
[ Szerkesztve ]
-
-
tmslevi
tag
válasz Mr Dini #2956 üzenetére
Köszönöm a választ mindkettőtöknek!
Ránéztem az utóbbi linkre, de nem minden világos. Letöltöttem a tag tesztfájlját, szétkaptam az .exe-t, megkaptam a compiled python fájlt. Eddig jutottam el az én fájlom esetében is.
Ha jól értettem, innentől már akár le is lehetne futtatni a compiled py fájlt, de nem sikerül pyarmor-ral védett fájlok esetén, mert "No module named 'pytransform'" hibát kapok. Ezt pip segítségével telepíteném is, de ekkor ezt kapom: "SyntaxError: Missing parentheses in call to 'print'. Did you mean print("MDAnalysis requires Python 2.6 or better. Python %d.%d detected" % \)?"
[screenshot a hibáról]
[screen a decompiled forráskódról]
Valamit én rontottam el / félreértelmeztem? -
axioma
veterán
válasz tmslevi #2960 üzenetére
A print elteroen mukodik a 2-es es 3-as python-oknal - ezek kozott tobb kisebb-nagyobb elteres van (pl. egesz osztas kornyeken is, meg map az nem list csak iterable stb). Ha zarojel nelkuli print van a kodban, akkor 2-es python kell ahhoz, hogy futtasd, azt toltsd le es azzal inditsd. A pip-et is!
Ja a screen shot-okat nem is neztem, lehet hogy igy hogy gyanus a python verzio problema, lehet hogy a kicsomagolashoz is megfelelo verzio kell, de ez mar csak egy tipp ha igy se jo.[ Szerkesztve ]
-
válasz tmslevi #2960 üzenetére
Egyrészt megírták a printes hibát, hogy miért történik. Másrészt ez így nem fog menni. Az addig jó, hogy megkaptad a lefordított py fájlt. Viszont a pytransform.so/.dll (a kiterjesztés attól függ, hogy win/linux a futtató) mindenképp kelleni fog, az a deobfuscator runtime kvázi. Aztán leszeded a python forráskódot és azon belül a direktívát, amit a fórum említ, átírod, hogy printelje ki a frameket egy fájlba, majd lefordítod és berakod PATH-ba ezt a módosított pythont.
Majd futtatod vele az eredeti obfuszkált anyagot. Ha lefut, akkor a kód base64-ben elvileg benne lesz majd a fájlban. Kicsit spammy lesz, de benne lesz a lényeg.
Viszont! 1) nem teszteltem; 2) ezt mindenképp csak akkor csináld, ha saját kódról van szó és elveszett a forráskód, vagy a készítő engedélyezte a műveletet. Ha ezek egyike sem applikálható az esetedre, akkor bizonyára joggal volt levédve a szkript és maradjon is úgy. + Ez a megoldás csak akkor működhet, ha van licenced is, tehát az eredeti obfuszkált kód lefut és nem fut hibára, hogy nincs licenced.
Hogy hívják az éhes horgászt? Gyere Pista, kész a kaja!
-
concret_hp
addikt
google cloudból futtatott már valaki pythont?
azt meg lehet nézni valahogy hogy mindenestől mennyi ramot eszik egy script? (importált libekkel együtt)
vagy fullba vagy sehogy :D
-
tmslevi
tag
válasz Mr Dini #2962 üzenetére
Most sikerült csak idejutnom, hogy ránézzek. Sokat segítettél, most már értem, hogy mit kellene csinálni.
Már csak egyedül a legutolsó lépés nem megy. Hogyan használjam a PyMarshal_WriteObjectToFile-t a _PyEval_EvalFrameDefault függvényben?Egyébként egy halott HDD-n ragadt néhány forráskódom. Túlélem, ha nem lehet visszaállítani, mert meg tudom írni megint, de mindenképp jobb lenne visszaszerezni (jelentős időt spórolnék). Ha ezt a lépést nem sikerül megoldani, akkor hagyom.
[ Szerkesztve ]
-
sonar
addikt
Sziasztok,
A pip search nálatok megy?
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
justmemory
senior tag
Most hirtelen csak Androidon tudtam Termux alatt kipróbálni, ott hibát dob:
<Fault -32500: "RuntimeError: PyPI's XMLRPC API has been temporarily disabled due to unmanageable load and will be deprecated in the near future. See https://status.python.org/ for more information.">
--- Imprisoned, inside this mind... --- Joined at the soul with a pair of headphones ---
-
sonar
addikt
válasz justmemory #2966 üzenetére
Dettó. Ma hulla vagyok, de elsőre nem találtam konkrét infót, hogy mi van és miért nem megy.
A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
sonar
addikt
Sziasztok,
A következő problémán agyalok, hogy ha megadok egy egyszerű range-t akarmi[1-5] akkor generálja le nekem belőle
akarmi1
akarmi2
...
akarmi5
Létezik erre valami modul? Vagy dolgozzam fel, mint string és ha van szögletes zárójel akkor a benne lévőt kezeljem range-ként?A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
sonar
addikt
válasz sztanozs #2970 üzenetére
Ez stimm csak mi van ha nem szám van benne és nem csak szögletes hanem kapcsos zárójel?
akarmi[bB]{3}
Kvázi, mintha regurális kifejezésnél nem mintát illesztek,keresek hanem a megadott minta alapján generálni kellene egy listát (és most nem az adat típusra gondoltam)A tudást mástól kapjuk, a siker a mi tehetségünk - Remember: Your life – Your choices!
-
sztanozs
veterán
akarmi[bB]{3}
mi akar a fenti lenni, ez?akarmibbb
akarmibbB
akarmibBb
akarmibBB
akarmiBbb
akarmiBbB
akarmiBBb
akarmiBBBSzerintem erre nincs általános megoldás, de egy fenti ilyenre használható a product függvény az itertools modulban:
import itertools
[f'akarmi{"".join(c)}' for c in itertools.product('bB', repeat=3)][ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
-
barnam_
nagyúr
Sziasztok,
Python + levelezéssel kapcsolatos problémám/kérdésem van.
smtiplib-el küld egy program levelet, beállítottam a debuglevel szintjét 2-re (smtp.set_debuglevel(2)).Ennek a kiírásait akarom elrakni egy txt-be úgy, hogy mindig hozzáfűzze az új bejegyzéseket:
import sys
sys.stderr = open('teszt.txt', 'a+')Ez is működik. Viszont amikor crontab-al fut a program, nem ír be semmit a fájlba.
Arra tudok gondolni, hogy esetleg ütemezve más jogosultságokkal fut a program, és ezért nem fér hozzá? Vagy crontab alól nincs stderr? -
Fecogame
veterán
Ezt a python scriptet próbáltam lefuttatni, de az alábbi hibára fut:
Traceback (most recent call last):
File "ncore.py", line 53, in <module>
mech['name'] = USERNAME
File "build/bdist.linux-armv7l/egg/mechanize/_form.py", line 2780, in __setitem__
File "build/bdist.linux-armv7l/egg/mechanize/_form.py", line 3101, in find_control
File "build/bdist.linux-armv7l/egg/mechanize/_form.py", line 3185, in _find_control
mechanize._form.ControlNotFoundError: no control matching name 'name'
Mi lehet a gond?
A settings.py fájl tartalma:
USERNAME = 'Fecogame'
PASSWORD = 'AjELSZ6VAM'
Lassú a mobilinterneted? 4G/LTE antennák, közvetlenül raktárról ---> http://bit.ly/LTE_Antennak
-
Fecogame
veterán
válasz kovisoft #2981 üzenetére
Köszi, tényleg ez volt a gond
Most már továbbment, most ez jött elő:
Didn't find welcome message in response.
Something might be wrong. Log in manually.
Fogalmam sincs ehhez mit kellene módosítani, hogy elfogadja, illetve hogy lehet kiíratni, hogy jelenleg mit kap eredménynek a mech
Lassú a mobilinterneted? 4G/LTE antennák, közvetlenül raktárról ---> http://bit.ly/LTE_Antennak
-
Silεncε
őstag
válasz Fecogame #2982 üzenetére
Utóljára 2014-ben lett frissítve a szkript, azóta az említett oldal már egyszer biztosan át lett designolva, ezért nem működik valszeg. (még a shebang is python2). De este ránézek, kíváncsi vagyok (valszeg az span, amiben keresi a felhnevet, már nem létezik).
Mondjuk a belépés ettől még működik, csak éppen a szkript hal meg a végén
[ Szerkesztve ]
-
kovisoft
őstag
válasz Fecogame #2982 üzenetére
Ha be tudsz lépni böngészőben, akkor nézd meg a belépés utáni oldal forráskódját is, és hogy abban hogyan szerepel a felhasználóneved. A kód ilyen formában keresi: <b>username</b></span>, de valószínűleg már változott az oldal és most másként jeleníti meg, tehát ennek megfelelően kellene módosítani a SEARCH_STR változót is.
Viszont ha az egésszel nem akarsz foglalkozni, akkor kommentezd ki az elif SEARCH_STR blokkot, és akkor kihagyja ezt az ellenőrzést. Ettől függetlenül már beléptetett, ha jó a jelszó. Ez utóbbi megoldásnak annyi a hátránya, hogy nem fogsz róla tudni, ha mégis valami hiba lépett fel login közben, és nem sikerült a belépés.
-
sztanozs
veterán
Igazából csak meg kellene nézni hogy hívja meg a logon-t és nem vacakolni az oldal parszolgatásával :/
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
garga01
senior tag
Hozzáértőktől kérnék segítséget, leginkább futtatásban:
Ezt a scriptet szeretném futtatni a gépemen, de csak részben működik. Különböző ZTE router config fájlokat tud kicsomagolni bin-ből XML-be. A problémám az, hogy az AES kódolású fájlokat nem akarja kinyitni, a resources mappában vannak minta fájlok, azok se sikerülnek.
A szükséges pycryptodomex kiegészítőt is felraktam, a teszt parancs sikeresen le is fut. Valakinek esetleg van tippje mit csinálok rosszul? A decode.py prancsot admin cmd-ből hívom meg. (Ja és az egész dolog Win10x64, Python 3.9 64bit-ről megy)Az áram alatt lévő alkatrész ugyan úgy néz ki, mint amelyik nincs áram alatt..... csak más a fogása!
-
sztanozs
veterán
válasz garga01 #2988 üzenetére
3.9 még lehet túl friss neki, de amúgy passz.
az is lehet hogy ezt a formátumot már nem támogatja a szkript.[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
garga01
senior tag
válasz kovisoft #2990 üzenetére
Igen, ezzel az üzenettel elszáll:
Traceback (most recent call last):
File "C:\speedport\decode.py", line 41, in <module>
main()
File "C:\speedport\decode.py", line 36, in main
payload_type = zcu.zte.read_payload_type(infile)
File "C:\Program Files\Python39\lib\site-packages\zcu-0.1.0-py3.9.egg\zcu\zte.py", line 51, in read_payload_type
File "C:\Program Files\Python39\lib\site-packages\zcu-0.1.0-py3.9.egg\zcu\zte.py", line 45, in read_payload
AssertionError
De nem csak a saját config fájlommal, a minták között lévővel is, amit tudnia kellene dekódolnia. Olyan, mintha az OS-el vagy Python verzióval lenne gond. Mondjuk már kínomban kipróbáltam egy rakás python verziót, minddel ugyanez a hibajelenség.Az áram alatt lévő alkatrész ugyan úgy néz ki, mint amelyik nincs áram alatt..... csak más a fogása!
-
kovisoft
őstag
válasz garga01 #2991 üzenetére
Maga a hiba arról szól, hogy amikor a payload-ot be akarná tölteni, akkor megnézi, hogy amit beolvas, az 0x01020304-gyel kezdődik-e (big endian módban, azaz a payload a 0x04, 0x03, 0x02, 0x01 byte-okkal kezdődik-e). És nem ezt találja. Belenézve egy ilyen bin file-ba, ez a payload a 0x80-as offsetnél kezdődik, tehát jó lenne tudni, hogy mit csinál előtte a decode.py programod a file első 128 byte-jával. Tippre először be kellene olvasnia a read_header()-ben egy 16 byte-os header magic-et és egy 112 byte-os headert, és akkor el is jutna a 0x80-as offsethez, onnan jöhetne a payload.
-
Van valakinek ötlete, hogyan kell leszerelni a Windows-ra fordított python program ImportError-t? Nem jutok vele dűlőre.
https://www.coreinfinity.tech
-
-
-
-
kovisoft
őstag
Nézd meg ezt, hátha nálad is valami ilyen probléma van.
-
-
Új hozzászólás Aktív témák
- Építő/felújító topik
- Dark Souls sorozat
- LEGO klub
- Kormányok / autós szimulátorok topicja
- Autós kamerák
- Telekom mobilszolgáltatások
- Samsung Galaxy A70 - áram, erősség
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Apple Watch Sport - ez is csak egy okosóra
- EA Sports WRC '23
- További aktív témák...
- Amazfit GTS 2 új! (nem a mini)
- -62% HP EliteBook 845 G7 (840 G7):Ryzen 5 4650U,16GB,512GB SSD,vilI.MAGYAR bill.,Bang&Ol.,Win11ProHU
- Több db HP Thunderbolt dock 230W G2 230W -os töltővel MONITORCENTER
- Philips Evnia 42M2N8900 Gamer Oled Monitor!42"/4k/138hz/0,1ms/Freesync-Gsync/HDMI 2.1/TypeC/Ambiglow
- -56% HP EliteBook 840 G8:i7 1165G7,16GB RAM,512GB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.