GithubHelp home page GithubHelp logo

Booktabz AES about pdfgrabber HOT 4 CLOSED

Miriamz1337 avatar Miriamz1337 commented on June 25, 2024
Booktabz AES

from pdfgrabber.

Comments (4)

FelixFrog avatar FelixFrog commented on June 25, 2024

Ciao! Innanzitutto mi fa piacere sapere che c'è qualcuno di interessato a pdfgrabber per quanto riguarda il lato reverse engineering. Per sviluppare pdfgrabber mi sono occupato principalmente delle applicazioni android per vari motivi:

  • Il bytecode DEX delle app android è decisamente più semplice e i decompilatori moderni sono in grado di ricostruire quasi completamente il codice sorgente Java delle app (alcuni sono in grado di creare direttamente i progetti per Android Studio).
  • Il bytecode DEX contiene, per design, il nome delle funzioni. Alcune applicazioni ovviamente offuscano tali nomi, ma siccome è un'opzione "opt-in" su Android Studio, molti sviluppatori non lo fanno (se non sbaglio Zanichelli è fra questi ultimi).
  • Android mette a disposizione delle librerie crittografiche standard di sistema. Questo semplifica di molto il lavoro degli sviluppatori e di conseguenza anche il lavoro di RE, poiché le funzioni crittografiche si riducono ad un paio di invocazioni a metodi di classi con nomi facili da riconoscere (e non offuscati, poiché appunto sono librerie di sistema).
  • Siccome Android viene assunto come ambiente di esecuzione più sicuro che una applicazione web o un programma desktop, questo spesso fa sì che gli sviluppatori siano più riluttanti ad implementare SSL pinning o altre misure per evitare che gli utenti possano sniffare il traffico internet dell'app. Fortunatamente, grazie alla natura open*** di Android queste misure sono facilmente aggirabili.

Cerco dunque di evitare per quanto possibile di analizzare codice macchina di applicativi desktop o applicazioni web. Le prime (nel raro caso in cui non siano un semplice webview o app electron e ricadendo quindi nelle seconde) perché come avrai ben scoperto richiedono uno sforzo maggiore a causa di ottimizzazioni aggressive dei compilatori, offuscamento, e maggiore complessita in generale. Le seconde perché spesso forniscono dati di qualità minore (render in formato jpg dei pdf originali) in quanto percepite appunto più "vulnerabili" da parte degli sviluppatori, e perché permettono alle case editrici di aggiornarle quando preferiscono, rendendo gli script inutili in qualche mese. Al contrario, le app android richiedono una stabilità e una coerenza con una API che non può, per motivi tecnici, evolversi rapidamente, perché non è concepibile per un utente dover aggiornare un'app ogni volta che si vuole leggere un maledettissimo libro (e gli sviluppatori delle case editrici sono ben consapevoli che una buona fetta di questi utenti installa queste app su dispositivi decisamente poco potenti).

Per rispondere finalmente alla tua domanda (forse in modo un po' deludente) tutto ciò che ho fatto è stato:

  1. Ottenere l'APK dell'app di Booktab
  2. Aprirla in un decompilatore android (tipo jadx-gui)
  3. Cercare per le stringhe "AES", "Cipher", "Crypto", "Decrypt", ec...
  4. Individuare la routine di decriptazione
  5. Trovare dove un oggetto javax.crypto.Cipher viene inizializzato (nel nostro cas con .getInstance('Blowfish/CBC/PKCS5Padding');

Se hai altre domande sarò ben felice di risponderti!

from pdfgrabber.

Miriamz1337 avatar Miriamz1337 commented on June 25, 2024

Ciao!
Grazie mille per la risposta, sono abbastanza familiare con il reverse di app mobile (anche se di solito più per vulnerabilità), e l'avevo scartata a priori perché volevo affinare le mie skill con il reverse x64!
Ti ringrazio ancora per la risposta :)

from pdfgrabber.

Miriamz1337 avatar Miriamz1337 commented on June 25, 2024

Posso contattarti in privato in qualche modo?

from pdfgrabber.

FelixFrog avatar FelixFrog commented on June 25, 2024

Posso contattarti in privato in qualche modo?

Certo! Puoi trovarmi su telegram

from pdfgrabber.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.