Bitpim Piggies

  • Upload
    sykrayo

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

  • 7/28/2019 Bitpim Piggies

    1/85

    WEB ESPECIALIZADA EN SEGURIDAD DE REDES - SOFTWARE FORENSE Y CONTROL A DISTANCIAPROGRAMACIN EN LENGUAJES DE ALTO NIVEL - SOFTWARE POLICIAL Y BIOMETRICS

    SISTEMAS I/O AVANZADOS DE ALTO NIVEL

    [email protected]

    Traducido por Sykrayo Espaa

    https://sites.google.com/site/sykrayo/
  • 7/28/2019 Bitpim Piggies

    2/85

    bitpim.org

    BitPim

    Un aplicacin enPitn

    Roger Binns

    [email protected]

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    3/85

    bitpim.org

    Motivacin

    Newcellphone, nuevas caractersticas- Agenda- Calendario- Wallpapers- Tonos- Mensajera- Voz y texto notas ...

    Traducido por Sykrayo Espaa

    mailto:[email protected]
  • 7/28/2019 Bitpim Piggies

    4/85

    bitpim.org

    Soy un serhumano!

    Yo willnotuse un nmeroalmohadilla

    Sincronizar productslimited- Soporte del telfono Tickbox '- Agenda slo- Slo para Windows- Licencias sola mquina- Caprichos estpidos

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    5/85

    bitpim.org

    Yo lata hacer maneramejor JTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    6/85

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    7/85

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    8/85

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    9/85

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    10/85

  • 7/28/2019 Bitpim Piggies

    11/85

    bitpim.org

    Scale

    30000 lneas de Pitn 2500 lneas de descripcin

    Archivos- se convierte en 41.000 lneas de cdigogenerado

    500 lneas de C / C + + 20000 wordsof lnea ayudar

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    12/85

    bitpim.org

    Specifications

    Exponer Anduse allfeaturesde mi clulatelfono- No documentacin del protocolo a todos!

    Dejar me utilizar iton comomuchos mquinas comoYo querer

    - multiplataforma Interopere conotros datos fuentes

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    13/85

    bitpim.org

    Specifications- Sin islas de datos

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    14/85

    bitpim.org

    More specs

    Dejar otros jointhe partido- El cdigo abierto- Capaz de aadir otros telfonos

    Hacer notbe un PIM- Slo tiene UI donde ningn otro

    programa hace Ser possibleto pluginto otros

    programas- tratar slo con interfaz de telfono celular

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    15/85

    bitpim.org

    Evenmore specs

    Fcil a utilizar No instalacin obstculos

    - No hay requisitos previos- Ningn infierno DLL- No RPM dependencias infierno

    Fcil a diagnosticar qu tieneocurrido en usuario m q u i n a s

    - La falta de documentacin significaaprender desde el campo

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    16/85

  • 7/28/2019 Bitpim Piggies

    17/85

  • 7/28/2019 Bitpim Piggies

    18/85

  • 7/28/2019 Bitpim Piggies

    19/85

    bitpim.org

    Preaching to the choir

    La nica solucin es

    Python!(Y algunas bibliotecas dePython)

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    20/85

    T d id S k E

  • 7/28/2019 Bitpim Piggies

    21/85

    bitpim.org

    Guioptions

    GTK - Linuxy- Dibuja los widgets s

    wxWidgets / wxPython - Alta funcionalidad comn- Utiliza los widgets nativos siempre que seaposible

    - Comunidad muy activa- Experiencia previa Pleasant

    Traducido por Sykrayo Espaa

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    22/85

    bitpim.org

    Distribution

    Tiene a aparecer como un"normal" aplicacin

    en cada plataforma Dos pasos

    - Cdigo Python congelacin(confusamente llamado instaladores)

    - Instalador

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    23/85

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    24/85

    bitpim.org

    Freezing

    necesidadpara la instalacin

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    25/85

  • 7/28/2019 Bitpim Piggies

    26/85

    Installation PlatformTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    27/85

    bitpim.org

    Installation Platformspecific

    Ventanas - InnoSetup- Men Inicio- Desinstalar- Panel de control

    Mac - dmg- Icono

  • 7/28/2019 Bitpim Piggies

    28/85

  • 7/28/2019 Bitpim Piggies

    29/85

    S i l P tTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    30/85

    bitpim.org

    Serial Ports

    pyseriallibrary- De Windows (win32all)- Linux y Mac (POSIX)- Interface No sabe / se preocupan

    por plataforma Completofuncion

    -

    Las tarifas de datos- Control de flujo

    S i l P tTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    31/85

    bitpim.org

    Serial Ports- DSR / CTS, etc

    U f i dl i l tTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    32/85

    bitpim.org

    Userfriendly serial ports

    U f i dl i l tTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    33/85

    Userfriendly serial ports

    bitpim.org

    M th f f !Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    34/85

    Months offun!

    bitpim.org

    Ventanas - escanear registro- Diferente en Win9x, Win2k, WinXP- Buen detalle (drivers, fechas, etc)

    Linux- Nodos de dispositivo en diversos directorios- Kernel module asociado con los principales

    Mac- Nodos de dispositivo en un directorio / Dev- Ninguna otra informacin

  • 7/28/2019 Bitpim Piggies

    35/85

  • 7/28/2019 Bitpim Piggies

    36/85

    C / C + +Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    37/85

    bitpim.org

    C / C + +problemas

    destacado Quin poseememoria? Globalpointers Datos propiedad por otro datos

    - Puede necesitar C + + contador de referencia Pobre API diseo

    - Proporcionar capa Pythonic

  • 7/28/2019 Bitpim Piggies

    38/85

  • 7/28/2019 Bitpim Piggies

    39/85

    ThreadingTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    40/85

    bitpim.org

    Threading

    Simplificacin (Inicialmente) Thingscan cambiar debajo

    usted Harder a negociar withexceptions

    Andthe winner wasTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    41/85

    bitpim.org

    Andthe winnerwas ... Enhebrado Decouplethreads (Anddata) como

    tanto como posible wxPython eventloopintegrates bien Utilizar Queue.Queue a

    SendMessages wx.PostMessage a SendTo GUI cola

    de eventos

  • 7/28/2019 Bitpim Piggies

    42/85

    Cdigo de ejemplo - bucleTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    43/85

    bitpim.org

    g j pde hilo

    resultado = excepcin = Ninguno

    callfunc, args, resultfunc, resargs = queue.get ()

    Sugerencias de bsqueda:

    resultado = callfunc (* args)

    con excepcin de:

    excepcin = sys.exc_info () [1]

    wx.PostEvent (RESULT_EVENT,

    (Resultfunc, resargs, excepcin, resultado))

    Threading TRAGOTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    44/85

    bitpim.org

    Threading y TRAGO

    / / Acuerdo con los datos que se

    devuelven

    int usb_bulk_read_wrapped (usb_dev_handle * dev, ep int, char *bytesoutbuffer, int * bytesoutbuffersize, int timeout)

    {

    int res;

    Py_BEGIN_ALLOW_THREADS

    res = usb_bulk_read (dev, ep, bytesoutbuffer, * bytesoutbuffersize, tiempo

    de espera); Py_END_ALLOW_THREADS

    if (res

  • 7/28/2019 Bitpim Piggies

    45/85

    bitpim.org

    Threading de trampas

    Pitn doesn'thave hilo prioridades- Tampoco los marcos evento impulsado

    Cannotinterruptahilo- Tienen que sondear variables- Utilice setDaemon para llamadas de

    bloqueo (por ejemplo, aceptar) Discrepancia tasas inproducer /

    consumidor puede tener horribleefectos

  • 7/28/2019 Bitpim Piggies

    46/85

  • 7/28/2019 Bitpim Piggies

    47/85

    OutlookTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    48/85

    bitpim.org

    Outlook

    Siusted lata hacer iteasily de VB,

    usted latahacer iteasily de Pitn

    (Win32all)

    Dynamicmodule generacin atruntime(En cach) makepy lata generar staticmodule

    Binariodistribucin favorece ltimo

  • 7/28/2019 Bitpim Piggies

    49/85

  • 7/28/2019 Bitpim Piggies

    50/85

  • 7/28/2019 Bitpim Piggies

    51/85

  • 7/28/2019 Bitpim Piggies

    52/85

    Protocol descriptionTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    53/85

    bitpim.org

    p

    Cada fieldissome nmero debytes Cada fieldhas untipo

    - Tipo Marshalled (por ejemplo, nmero enterolsb)

    - Tipo de Python (por ejemplo, cadena) Algunos fieldsare

    conditionalon los

    valores deotros

    Protocol RequirementsTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    54/85

    bitpim.org

    q

    * RESPONSEHEADERencabezamiento

    1 UINTlsb blockcounter

    1 BOOL thereismore

    * STRING nombreSI thereismore

    4 UINTlsb tamao del archivo

    2 UINTlsb DataSize* DATOSdatos

  • 7/28/2019 Bitpim Piggies

    55/85

  • 7/28/2019 Bitpim Piggies

    56/85

    Protocol exampleTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    57/85

    bitpim.org

    p

    PAQUETE

    foobarrequest:

    "a comentario "

    * RequestHeader {'Comando': 0x04} + Header

    1 UINT {'Constante': 0} +

    BlockNumber si

    self.blocknumber == 0:

    * STRING {'Terminator': 0, 'Pascal': Verdadero}nombre dearchivo

    * LISTA{'ElementClass': marcacin rpida} + Speeddials

  • 7/28/2019 Bitpim Piggies

    58/85

    Internal representation

    d l d t

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    59/85

    bitpim.org

    Dicts- Keys-

    Identificado

    res nicos Orden

    - Las listas delos adictos

    de los datos

    - Muy duro para aadir ms adelante

  • 7/28/2019 Bitpim Piggies

    60/85

    Formatos de archivopara guardar

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    61/85

    bitpim.org

    para guardar

    los datos Humano legible es grande para

    la depuracin,

    testingandinteroperability- XML- Python "cdigo"

    Concurrentaccess Pretty impresa dicts / listsworks

    para me

    - (Excepto el acceso simultneo)Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    62/85

    bitpim.org

    Versiones de DatosTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    63/85

    bitpim.org

    Versiones Hacia atrsy forwardscompatiblesi versin == 1:

    ... convertir a 2 ...

    versin = 2 si versin == 2:

    ... convertir a3 ... version =

    3 si versin == 3: ... nosotros

    son feliz ... si version> = 4:

    ... hacer algo usuario amistoso ...

  • 7/28/2019 Bitpim Piggies

    64/85

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    65/85

  • 7/28/2019 Bitpim Piggies

    66/85

  • 7/28/2019 Bitpim Piggies

    67/85

  • 7/28/2019 Bitpim Piggies

    68/85

    TroubleshootingTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    69/85

    bitpim.org

    Capturingexceptions- sys.exc_info () -> tipo, valor, rastreo

    Marco las variables- Python Cookbook

    Latatransferencia a travs de hilos Mantener originaltraceback

    - ex.original_exception = sys.exc_info ()

  • 7/28/2019 Bitpim Piggies

    70/85

  • 7/28/2019 Bitpim Piggies

    71/85

    ChoicesTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    72/85

    Casa crecido IDL

    - Corba- XDR

    XML basado- XML-RPC- JABN

    XML-RPCTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    73/85

  • 7/28/2019 Bitpim Piggies

    74/85

    Tiene excepciones(Aka Fallos) Interopera conotros idiomas No Ninguno Wellsupported inPython

    biblioteca estndar HTTPtransportinstdlib

    - No hay seguridad (https, autenticacin)- Una peticin por conexin

  • 7/28/2019 Bitpim Piggies

    75/85

    Attempt2Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    76/85

    Paramiko (SSHlibrary) SSHhas llamadocanales Simplecertificates Autenticacin en

    establecimiento de la conexin

    Auto-remoting methods

    Traducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    77/85

    getattr a trabajar outNameutilizado

    llamar

    a invocarwithargs

    Ver xmlrpclib._Method Sercuidado!

    - Unahistoria de

  • 7/28/2019 Bitpim Piggies

    78/85

  • 7/28/2019 Bitpim Piggies

    79/85

    Publish/SubscribeTraducido por Sykrayo Espaa

  • 7/28/2019 Bitpim Piggies

    80/85

    Similarto MVC Decouplescode Enhebrado

    - Tener cuidado Weakrefs

  • 7/28/2019 Bitpim Piggies

    81/85

  • 7/28/2019 Bitpim Piggies

    82/85

  • 7/28/2019 Bitpim Piggies

    83/85

  • 7/28/2019 Bitpim Piggies

    84/85

  • 7/28/2019 Bitpim Piggies

    85/85