Jump to content

MrGrj

Active Members
  • Content count

    1321
  • Joined

  • Last visited

  • Days Won

    27

MrGrj last won the day on May 2

MrGrj had the most liked content!

Community Reputation

807 Excellent

About MrGrj

  • Rank
    Smartass developer
  • Birthday 01/01/90

Profile Information

  • Gender
    Not Telling

Converted

  • Biography
    ┌П┐(◉_◉)┌П┐
  • Location
    ┌П┐(◉_◉)┌П┐
  • Interests
    ┌П┐(◉_◉)┌П┐
  • Occupation
    ┌П┐(◉_◉)┌П┐

Recent Profile Visitors

3732 profile views
  1. DefCamp 2017

    Ia d-aici Silvache: https://def.camp/venue/ -> http://goo.gl/maps/Z8I34 -> Calea Rahovei 198A, București
  2. [RST] Pwnthecode [Beta]

    Datorita eforturilor depuse de @SilenTx0 @sleed @QuoVadis , pwnthecode (varianta beta) este aproape gata. Ca orice platforma care se afla in beta, avem nevoie de cateva persoane care sa testeze aplicatia. Eventualele buguri, greseli, etc pe care le gasiti, o sa va rog sa mi le trimiteti mie, sau unuia din cei trei useri mentionati mai sus, prin PM (daca iese treaba si exista un numar rezonabil de testeri, probabil ca se va creea un canal pe Slack in care vom discuta tot ceea ce se gaseste in neregula pe platforma). NU postati problemele gasite aici pentru ca vor fi sterse! De asemenea, cei interesati de testare, va rog sa cereti link-ul catre aplicatie tot prin PM. Pwp & Multumim anticipat!
  3. Custom Windows

    Nu exista Windows custom bun si eficient. Exista laptop bun (cu resurse decente) sau prost. E simplu, dai un ban in plus si rulezi orice.
  4. Hello, In Python, it's really easy to work with API calls using the requests module. To install it, just do: pip install requests Unfortunately, depending on your version, the API is largely SOAP based. The simplest way to consume VMWare's API is via one of the existing SDKs. Now, moving further and looking at a newer version of VMWare docs, we can see that there's an already developed module to interfere with it named pyvmomi. You can follow the instructions from the github to set everything up. If you follow carefully those steps you will find this https://github.com/vmware/pyvmomi-community-samples/blob/master/samples/ which contains tons of examples. Now, literally speaking, if you specifically need to play a bit with requests, you can do the following: 1. Import the needed modules 2. Make GET requests 3. Process the data 4. POST processed data 1. Import the needed modules import requests 2. Make GET requests GET_URL = 'https://httpbin.org/get' POST_URL = 'https://httpbin.org/post' data = requests.get(GET_URL).json() # this will be a json data structure containing the data you need The output of the above is: {'args': {}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Connection': 'close', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.18.1'}, 'origin': '86.120.146.226', 'url': 'https://httpbin.org/get'} 3. Process the data Let's suppose you want to modify the origin value into something else: data['origin'] = 'something else' 4. POST processed data r = requests.post(POST_URL, data=data) print(r.text) Now, the output of the above will be: { "args": {}, "data": "", "files": {}, "form": { "headers": [ "Accept", "Accept-Encoding", "Connection", "Host", "User-Agent" ], "origin": "something else", "url": "https://httpbin.org/get" }, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Connection": "close", "Content-Length": "147", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.1" }, "json": null, "origin": "86.120.146.226", "url": "https://httpbin.org/post" } Now, regarding your unicode issue, the error was raised because the data is a unicode/str variable, which means that you first have to make it a JSON object (which is basically a dict). In my example, you can see that I already called .json() which makes sure the data is a JSON object. But, if the returned data is a string, you won't be able to do that. To do that, you can use the json module: import json data = json.loads(data)
  5. PyPI Python Package Hack

    In principiu: - tu, ca developer care descarca un package, trebuie sa faci audit (sau sa pui pe altcineva sa faca asta daca folosesti modulul in ceva critical environment / production). - toate package-urile PyPi au semnaturi md5 atasate (unele au chiar si PGP). Cu md5 se verifica integritatea, iar cu PGP integritatea + originea. (asa ca e recomandat sa se descarce package-urile care au md5 + PGP). Acum intrebarea fireasca: pot sa fie PyPi signatures trusted ? Pai, pot fi trusted la fel de mult ca oricare alta semnatura Am vazut ca se practiva mentinerea unui repo PyPi intern. Avantaje: - verificare mai buna - fiabilitate mai buna + viteza (daca serverul oficial PyPi pica, te doare la banana) - eviti problemele cu updateurile / package-urile inlocuite bla bla
  6. The Eye of ...

    Nice challenge si mersi de urari @Silviu Frumoasa postare (si fain challenge @Usr6)
  7. [RST] Pwnthecode [Beta]

    Da, momentan pwn este aproape finalizat si testat de noi ( @SilenTx0 inca lucreaza la ceva tutoriale). Peste putin timp o sa puteti sa accesati versiunea beta.
  8. Generate BTC addresses from private keys

    Da, si wallet-urile alea iti vin si cu masina, o pizda de 18 ani si o casa.
  9. Pana la urma am ajuns la urmatorul model care pare sa isi indeplineasca scopu': { "endpoint": "rfc", "filter_by": ["change_ref", "change_i"], "limit_results_to": "2", "expression": { "item1": { "field": "first_name", "operator": "EQ", "value": "O'Neil" }, "operator": "AND", "item2": { "item1": { "field": "last_name", "operator": "NEQ", "value": "Smith" }, "operator": "AND", "item2": { "item1": { "field": "middle_name", "operator": "EQ", "value": "Sam" }, "operator": "OR", "item2": { "field": "middle_name", "operator": "EQ", "value": "Sam" } (...) } } } } Mersi all pentru recomandari
  10. Well, in principiu userul ar trebui sa poata sa aleaga intre cele doua variante. Asta e si problema mea, daca stai si iei fiecare edge case... o iei razna.
  11. Nu, utilizatorul va avea o lista de operatori disponibili. Probabil ca cei de mai jos: LOGICAL_OPERATORS = { 'AND': 'AND', 'OR': 'OR' } COMPARISON_OPERATORS = { 'LT': '<', 'GT': '>', 'LTE': '<=', 'GTE': '>=', 'EQ': '=', 'NEQ': '!=', 'CONTAINS': 'LIKE %{}%', 'STARTSWITH': 'LIKE {}%', 'ENDSWITH': 'LIKE %{}', 'NCONTAINS': 'NOT LIKE %{}%', 'NSTARTSWITH': 'NOT LIKE {}%', 'NENDSWITH': 'NOT LIKE %{}' } Nu vor exista JOIN-uri etc, pentru ca fiecare endpoint corespunde unui singur view din DB, deci toate datele is deja acolo.
  12. Bun, de cateva zile ma chinui sa construiesc o schema JSON decenta, pentru ca mai tarziu sa o pot manipula cat mai usor posibil. Scenario: User-ul va face un POST request cu un JSON care va arata de cele ai multe ori, asa: { "endpoint": "ep", "expression": { "field": "first_name", "operator": "EQUALS", "value": "Jack" }, "query_limit": "2" } Acum, in principiu, `endpoint` si `query_limit` vor fi mereu stringuri. Partea unde am eu probleme este `expression`. Exemplul de expresie de mai jos este minimal dar de ajuns pentru a explica ceea ce vreau sa fac. Acea expresie va face parte din clauza WHERE dintr-un query MSSQL. Spre exemplu, cea de mai sus va deveni: SELECT * FROM table WHERE first_name='Jack'; E de la sine inteles ca va exista o mapare intre operatorii din JSON si cei din MSSQL. In python, maparea aia se va face prin doua dictionare simple: LOGICAL_OPERATORS = { 'AND': 'AND', 'OR': 'OR' } COMPARISON_OPERATORS = { 'LT': '<', 'GT': '>', 'LTE': '<=', 'GTE': '>=', 'EQ': '=', 'NEQ': '!=' } The problem: Acum, partea la care intampin probleme este aceea de a dezvolta mai departe acel expression din JSON, astfel incat va putea suporta query-uri mult mai complexe. Vreau sa incerc sa acopar cat mai multe scenarii, asa ca am nevoie de o schema cat mai bine pusa la punct. Un exemplu: 1. Userul doreste ca `first_name` sa fie 'Jack' SI `last_name` sa fie 'Lola'. In cazul acela, JSON-ul ar putea sa arate asa: { "endpoint": "rfc", "expression": { "AND": [ { "field": "first_name", "operator": "EQUALS", "value": "Jack" }, { "field": "last_name", "operator": "EQUALS", "value": "Lola" } ] }, "limit": "2" } Exemplul de mai sus, va fi transformat intr-un SQL care va fi de forma: SELECT * FROM table WHERE first_name='Jack' AND last_name='Lola'; User-ul doreste ca `age` sa fie mai mic decat 17 SAU `age` mai mare decat 10 SI `first_name` sa fie 'Dick'. SQL-ul pentru descrierea de mai sus va fi de forma: SELECT * FROM table WHERE age > 10 OR age < 17 AND first_name='Jack'; Ceva idei pentru cum ar trebui sa arate JSON-ul in acest caz? Ceva care sa fie usor de adaptat pentru cazuri si mai complexe (va trebui sa generalizez toata treaba pentru ca asa cum stim toti care lucram in industria IT, userul e foarte inventiv cand vine vorba de edge cases). Thanks!
  13. Iti recomand https://codereview.stackexchange.com/ daca nu primesti nici-o parere p-aici
  14. Tu ai prea mult timp liber pentru ca , comentezi aiurea. Programarea nu se limiteaza la: "ce face ala si nu face alalalt?". O fi parerea ta, da' e proasta (IMHO, desigur). Taci acolo si vezi de treaba ta si joaca-te cu `aircrack-ng` daca nu poti sa accepti faptul ca unii oameni vor continua sa programeze ce vrea pula lor chiar daca 20 inaintea lor au facut fix acelasi lucru. Nu-mi bat capu' la ora asta mai mult. Meh, depinde de nivelul la care esti M-am uitat acum ceva ani pe sursa aia si...era cam haos asa cred ca ala o fost momentu' in care am zis: "bag pula-n el C, ma duc sa invat si altceva". Pentru cei interesati, sursa e aici
  15. Salut Radu, Desigur, te ajutam cu placere daca ne raspunzi la urmatoarele intrebari: - ce e aia flood? - ce e aia domeniu DDoS? - care este diferenta dintre cei doi termeni de mai sus? - ce vrei sa faci mai exact? - de ce vrei sa faci asta? - esti metinar? - crezi ca rezolvi ceva facand asta? Uite, din partea celor care inteleg divinitatea absoluta si astralul concurential: .-. .-. |U| | | | | | | | | | | _| |_ _| |_ | | | |-. | |_| |-. /| ` | / )| |_|_| | | | | |-' `-^-' | | | || | \ / \ ' / | | | | | | | | Cu stima, eu
×