You are on page 1of 6

LECCION 7: Algunas cositas sobre los breakpoints en programas con vencimiento de tiempo y un poco de ampliacin de conocimiento (LECCI N !

"A#E $E!%"E! $E LA AN&E'IO' ("E )"E $"'*!I+A, Existen muchos BREAKPOINTS para cada caso y el hecho de acertar con el breakpoint usto puede ahorrarnos dar !ueltas y !ueltas por el c"di#o$ por lo tanto es bueno conocer los breakpoints mas usuales para utili%ar en el SO&TI'E( Por e emplo sabemos ya )ue los pro#ramas )ue tienen !encimiento de tiempo *+, d-as o cual)uier periodo de tiempo.$ utili%an #eneralmente la /unci"n BP0 1ETS2STE3TI3E o tambi4n a !eces BP0 1ET5O'A5TI3E$ el problema #eneralmente con estos BREAKPOINTS es )ue son utili%ados por muchos pro#ramas y muy /recuentemente por lo )ue cuando los colocamos a cada rato el so/tice rompe en esta /unci"n por cual)uiera de los pro#ramas )ue la utili%a *6ASTA E5 E0P5ORER 5A 7SA &RE'7ENTE3ENTE.( 5o )ue hay )ue hacer en casos en )ue la /unci"n es tan utili%ada es lo si#uiente$ como primera opci"n entrar con 'TR58A5T89E5 y &INA5I:AR todos los pro#ramas )ue est;n en /uncionamiento menos el E0P5ORER$ cuando este )uede solo en la !entana de procesos$ entonces ah- entrar al so/tice y poner el BP0 1ETS2STE3TI3E o 1ET5O'A5TI3E y entrar en el pro#rama( 5a se#unda /orma es con el <9AS3 si el archi!o no esta comprimido$ entonces !amos al icono de I3P &N o sea /unciones importadas$ y all- buscamos la /unci"n )ue )ueremos encontrar en este caso BP0 1ETS2STE3TI3E o BP0 1ET5O'A5TI3E y hacemos clic encima del nombre de la /unci"n y !amos anotando las posiciones de memoria en )ue el <9AS3 nos dice )ue es utili%ada esa /unci"n *'O3O 6A'IA3OS 'ON 5AS STRIN1 RE&EREN'ES. y nos ase#uramos de hacer clic !arias !eces encima del nombre de la /unci"n para ase#urarnos si aparece mas de una !e%$ y despu4s en el so/tice ponemos BP0 num4ricos en esos !alores )ue anotamos y entonces el so/tice !a a parar en las /unciones buscadas sin )ue nos molesten las llamadas a la misma /unci"n de otros pro#ramas( 1eneralmente despu4s de )ue la /unci"n concluye y !uel!e al e ecutable hay una comparaci"n donde testea la /echa con la /echa de !encimiento del pro#rama$ tambi4n puede #uardarse en al#una posici"n de memoria para comprobarse mas adelante( 9entro de la /unci"n 1ETS2STE3TI3E podemos !er lo si#uiente si la !amos recorriendo con &=, En B&&A,&=B +O# EC-. /E!%01C2

SI 3E SIT7O A55I EN E'0 ESTA E5 A>O A'T7A5 3 EC? ,@9, EN 6E0A?A,,, *el aBo EN 9E'I3A5. EN B&&CEDEC SI 6A1O 3 A?,@9,?A,,, +O# A-./E!I2

*el aBo.

57E1O EN SI 6A1O 3 C?,A EN 6E0A?=, 2 EN SI 6A1O I 90 ?=, EN 6E0A?=G

+O# C-./E!I0142 *o sea el mes actual. 3OE 90$FESI?,GH *o sea el 9IA actual.

9espu4s )ue obtiene estos !alores los #uarda mas adelante en 3OE FEBPJ=,H$A0 3OE FEBPJ,EH$'0 3OE FEBPJ,'H$90 2 9ESP7ES 5OS 17AR9A 9E N7EEO A 'ONTIN7A'ION '7AN9O SA5I3OS 9E 5A &7N'ION 2 EO5EE3OS A5 EKE'7TAB5E E5 RE1ISTRO ESP8,L AP7NTA A 9ON9E ESTA E5 EA5OR 9E 5A &E'6A SI EA3OS A5 SA5IR E0A'TA3ENTE A 5EA E'0$ FESP8,LH O A517NA SENTEN'IA ASI M7E TEN1A E5 EKE'7TAB5E EE3OS M7E PASA E5 EA5OR M7E ESTA EN esp015 M7E ES 5A &E'6A A E'0 AM7N ES 9ON9E 6A2 M7E A'T7AR 2 REE3P5A:AR ESTA SENTEN'IA POR 7NA M7E 37EEA A E'0 7NA &E'6A &IKA M7E 6ABI5ITE SIE3PRE E5 PRO1RA3A$ O TA3BIEN PO9E3OS SE17IR 6A'IEN9O &=, A EER SI EN'ONTRA3OS 5A 'O3PARA'ION 9E 5A &E'6A 'ON 5A &E'6A 9E EEN'I3IENTO 9E5 PRO1RA3A$ 5O '7A5 P7E9E ESTAR A6N NO3AS O BASTANTE 3AS A9E5ANTE( SI 6A'E3OS A55I 9 ESP8,L 9, ,@ ,A ,, =, ,, 5OS 9OS PRI3EROS SON O@9, E5 A>O EN 6E0A 5OS 9OS SE17N9OS SON ,, ,A E5 3ES EN 6E0A 2 5OS 75TI3OS 9OS SON ,,=, O SEA E5 9IA EN 6E0A *siempre se escriben al re!4s. SI M7ERE3OS REA5I:AR E5 3IS3O TRABAKO EN 7N PRO1RA3A 9E 9OS 9EBERE3OS 'A3BIAR E5 BP0( Nos damos cuenta )ue un pro#rama es de 9OS o =G bits por)ue en el SO&TI'E la direcci"n de memoria aparece en este /ormatoP POR EKE3P5OP

,,@GP6767 o sea )ue es de cuatro ci/ras en !e% de ocho ci/ras )ue es lo )ue !emos siempre en los pro#ramas de +A bits *PEKP ,=@Q:118179:4. En pro#ramas de =G bits el Breakpoint para los pro#ramas con !encimiento de tiempo es ;%IN&48 i< a=>>4a (?A@ ("E E!C'I;I'LO A!I !IN ;%-,

escribi4ndolo as- el so/tice parara cuando el pro#rama )uiera leer la /echa y como a)u- no hay /unci"n sino )ue parara directamente en el e ecutable$ en C- estar; el aBo $? estar; el mes $L estar; el d-a si hacemos I '0 o I 90 I 95 podremos !erlos lue#o el e ecutable #uardara estos !alores con al#una sentencia como mo! FebpJ,QH$ cx etc con lo cual podr; ser modi/icado en el lu#ar )ue lo #uarda( Estos son #eneralidades sobre pro#ramas con !encimiento de tiempo )ue !eremos mas adelante con e emplos concretos$ cuando ten#amos un pro#rama de este tipo$ aun)ue si es un pro#rama con !encimiento de tiempo y tiene un N73ERO 9E SERIE para re#istrar habria )ue tratar primero de crackear el numero de serie y si esto esta muy di/-cil entonces si$ crackear el tiempo( A)u- hay una lista de los breakpoints mas usuales )ue explicaremos bre!emente a continuaci"nP bpx MessageBox bpx MessageBoxExA bpx MessageBeep bpx SendMessage Estos son breakpoints para los famosos cartelitos que aparecen y son fcilmente identificables por ser muy simples y tienen un texto que generalmente se encuentra en las STRI ! RE"ERE #ES$ Messagebox solo sin la A al final es para %& bits y con la A o MESSA!EB'(E(A es para )* bits

bpx !et+lgItemText bpx !et+lgItemInt bpx !et,indo-Text bpx !et,indo-,ord bpx !et,indo-Int Son funciones para que el e.ecutable lea texto/ palabras o n0meros que uno tipea/ o sea que si ponemos un B1( de estos 2amos a caer A1E AS el e.ecutable se entera de que es lo que tipeamos$ Tambien se usa muc3o para esto directamente el B1( 4MEM#15 $

bpx +ialogBox1aramA bpx #reate,indobpx #reate,indo-Ex bpx S3o-,indobpx 6pdate,indo-

Estos tambien son funciones para dibu.ar 2entanas pero ya mas comple.as$

+E TIEM1'
bpint *% if a377*A 8+'S9 bpx !et:ocalTime bpx !et"ileTime bpx !etSystemtime

#omo 2imos en esta lecci;n

#+<R'M

bpint %) if a377* 8+'S9 bpint %) if a377) 8+'S9 bpint %) if a377= 8+'S9 bpx !et"ileAttributesA bpx !et"ileSi>e bpx !et+ri2eType bpx !et:astError bpx Read"ile bpio <3 85our #+<R'M 1ort Address9 R

Estos son para el que el e.ecutable pare cuando accede al #+R'M los tres primeros son para +'S los otros para )* bits

E TRA+A +E TE#:A+'
bpint %& if a377? 8+'S9 bpint *% if a377?xA 8+'S9

Estos son para +'S y para cuando tecleamos algo

+E "I:AS
bpint *% if a377)d3 8+'S9 bpint )% if a377)f3 8+'S9 bpint *% if a377)d3 8+'S9 bpx Read"ile bpx ,rite"ile bpx #reate"ile bpx Set"ile1ointer bpx !etSystem+irectory

Estos son para cuando el programa accede a una fila$

"ilas I I
bpx !et1ri2ate1rofileString bpx !et1ri2ate1rofileInt bpx ,rite1ri2ate1rofileString bpx ,rite1ri2ate1rofileInt Estos son para cuando accede a "I:AS I I

Registro
bpx Reg#reate@ey bpx Reg+elete@ey bpx RegAueryBalue bpx Reg#lose@ey bpx Reg'pen@ey

Estos bpx son para cuando el programa accede al registro$ si abre una lla2e usa el '1E @E5/ si la cierra #:'SE@E5/ cuando lee un 2alor A6ER5 BA:6E y cuando crea o borra una lla2e #REATE@E5 ' +E:ETE@E5

3ay toda2Ca mas como los B1I' que son los BREA@1'I TS para los puertos/ los B1M que son breakpoints que paran cuando se lee alg0n 2alor de la memoria aunque no se e.ecute/ etc etc/ en las sucesi2as lecciones 2eremos casos y e.emplos de los mismos$

Bueno con la practica los iremos utili>ando y explicando mas en profundidad asC como tambiDn los breakpoints condicionales 8#'M' E: A6E BIM'S E :A :E##IE A TERI'R9 Espero que esta lecci;n 3aya sido un oasis con respecto a la anterior ya 2ol2eremos con todas las pilas a partir de la pr;xima$

RI#AR+'

ARBAFA

You might also like