Guía para la aplicación de ingeniería inversa de software.
Guía diseñada con fines educativos de cómo analizar un programa por medio de la depuración y para ser utilizada como método de aprendizaje sobre cómo aplicar la ingeniería inversa a un pequeño programa hecho en C++ con la herramienta x64dbg, analizando su funcionamiento interno por medio de la práct...
- Autores:
-
Alba Fortich, Miguel Eduardo
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2022
- Institución:
- Universidad Cooperativa de Colombia
- Repositorio:
- Repositorio UCC
- Idioma:
- OAI Identifier:
- oai:repository.ucc.edu.co:20.500.12494/47396
- Acceso en línea:
- https://hdl.handle.net/20.500.12494/47396
- Palabra clave:
- Ingeniería
Ingeniería inversa
Vulnerabilidad
X64dbg
Depurador
Programación
Programa maligno
Engineering
Reverse engineering
Vulnerability
X64dbg
Debugger
Programming
Malware
- Rights
- openAccess
- License
- Atribución
id |
COOPER2_1c823df01adff475d3e11fbec5040f60 |
---|---|
oai_identifier_str |
oai:repository.ucc.edu.co:20.500.12494/47396 |
network_acronym_str |
COOPER2 |
network_name_str |
Repositorio UCC |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Guía para la aplicación de ingeniería inversa de software. |
title |
Guía para la aplicación de ingeniería inversa de software. |
spellingShingle |
Guía para la aplicación de ingeniería inversa de software. Ingeniería Ingeniería inversa Vulnerabilidad X64dbg Depurador Programación Programa maligno Engineering Reverse engineering Vulnerability X64dbg Debugger Programming Malware |
title_short |
Guía para la aplicación de ingeniería inversa de software. |
title_full |
Guía para la aplicación de ingeniería inversa de software. |
title_fullStr |
Guía para la aplicación de ingeniería inversa de software. |
title_full_unstemmed |
Guía para la aplicación de ingeniería inversa de software. |
title_sort |
Guía para la aplicación de ingeniería inversa de software. |
dc.creator.fl_str_mv |
Alba Fortich, Miguel Eduardo |
dc.contributor.advisor.none.fl_str_mv |
Rivera Sánchez, Gustavo Armando |
dc.contributor.author.none.fl_str_mv |
Alba Fortich, Miguel Eduardo |
dc.subject.spa.fl_str_mv |
Ingeniería Ingeniería inversa Vulnerabilidad X64dbg Depurador Programación Programa maligno |
topic |
Ingeniería Ingeniería inversa Vulnerabilidad X64dbg Depurador Programación Programa maligno Engineering Reverse engineering Vulnerability X64dbg Debugger Programming Malware |
dc.subject.other.spa.fl_str_mv |
Engineering Reverse engineering Vulnerability X64dbg Debugger Programming Malware |
description |
Guía diseñada con fines educativos de cómo analizar un programa por medio de la depuración y para ser utilizada como método de aprendizaje sobre cómo aplicar la ingeniería inversa a un pequeño programa hecho en C++ con la herramienta x64dbg, analizando su funcionamiento interno por medio de la práctica de la depuración y comparando el código maquina producto de la compilación del código fuente de un ejemplo propuesto. |
publishDate |
2022 |
dc.date.accessioned.none.fl_str_mv |
2022-12-07T12:59:42Z |
dc.date.available.none.fl_str_mv |
2022-12-07T12:59:42Z |
dc.date.issued.none.fl_str_mv |
2022-11 |
dc.type.none.fl_str_mv |
Trabajo de grado - Pregrado |
dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.version.none.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
format |
http://purl.org/coar/resource_type/c_7a1f |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
https://hdl.handle.net/20.500.12494/47396 |
dc.identifier.bibliographicCitation.spa.fl_str_mv |
Alba Fortich, M. E. (2022). Guía para la aplicación de ingeniería inversa de software [Proyecto de pregrado, Universidad Cooperativa de Colombia]. Repositorio Institucional Universidad Cooperativa de Colombia. https://repository.ucc.edu.co/handle/20.500.12494/47396 |
url |
https://hdl.handle.net/20.500.12494/47396 |
identifier_str_mv |
Alba Fortich, M. E. (2022). Guía para la aplicación de ingeniería inversa de software [Proyecto de pregrado, Universidad Cooperativa de Colombia]. Repositorio Institucional Universidad Cooperativa de Colombia. https://repository.ucc.edu.co/handle/20.500.12494/47396 |
dc.relation.references.spa.fl_str_mv |
Campus Internacional Ciberseguridad. ¿Qué es el reversing de malware? [en línea]. 20 de mayo de 2021. Disponible en: https://www.campusciberseguridad.com/blog/item/140-que-es-el-reversing El Hacker. Foro de El Hacker [en línea]. Disponible en: https://foro.elhacker.net/ingenieria_inversa-b26.0/ Heller, M. The Ghidra Book interview with co-author Kara Nance [en línea]. Octubre de 2020. Disponible en: https://searchsecurity.techtarget.com/feature/The-Ghidra-Book-interview-with-co-author-Kara-Nance Narvaja, R. Página de Ricardo Navaja [en línea]. Disponible en: https://sites.google.com/site/ricardonarvaja/home Prepodobniy, S. 9 Best Reverse Engineering Tools for 2021 [Updated] [en línea]. 24 de junio de 2021. Disponible en: https://www.apriorit.com/dev-blog/366-software-reverse-engineering-tools acentocoop. (2 de Septiembre de 2020). Obtenido de acentocoop: https://acentocoop.es/blog/ingenieria-inversa/ Asana, T. (7 de 10 de 2021). asana. Obtenido de asana: https://asana.com/es/resources/what-is-a-flowchart Baray, K. G. (2 de 2 de 2020). eleconomista. Obtenido de eleconomista: https://www.eleconomista.com.mx/tecnologia/que-es-un-bug-20200131-0079.html byspel. (7 de 1 de 2022). byspel. Obtenido de byspel: https://byspel.com/que-es-codigo-fuente-en-programacion-diccionario/ el-brujo. (31 de 5 de 2021). blog.elhacker. Obtenido de blog.elhacker: https://blog.elhacker.net/2021/05/herramientas-ingenieria-inversa.html FERNÁNDEZ, Y. (10 de 3 de 2021). xataka. Obtenido de xataka: https://www.xataka.com/basics/memoria-ram-que-sirve-como-mirar-cuanta-tiene-tu ordenador-movi FERNÁNDEZ, Y. (20 de 4 de 2021). xataka. Obtenido de xataka: https://www.xataka.com/basics/que-significa-que-aplicacion-programa-sea-32-64-bits-cual-debes-instalar Github. (2021). Obtenido de https://docs.github.com/es/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-repositories GONZÁLEZ, G. (06 de 03 de 2019). genbeta. Obtenido de https://www.genbeta.com/herramientas/ghidra-poderosa-herramienta-ingenieria-inversa-nsa-ahora-open-source-esta-disponible-para-windows-linux-macos ionos. (18 de Marzo de 2020). Obtenido de ionos: https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/ingenieria-inversa-de-software/ locurainformaticadigital. (6 de Marzo de 2019). Obtenido de locurainformaticadigital: https://www.locurainformaticadigital.com/2019/03/06/ghidra-9-0-herramienta-ingenieria-inversa-nsa/ Marín, R. (28 de enero de 2019). revistadigital. Obtenido de revistadigital: https://revistadigital.inesem.es/informatica-y-tics/ingenieria-inversa/ Mendoza, M. L. (16 de 07 de 2020). openwebinars. Obtenido de https://openwebinars.net/blog/que-es-un-lenguaje-de-programacion/ Mikejo5000, o. (19 de 8 de 2021). microsoft. Obtenido de microsoft: https://docs.microsoft.com/es-es/visualstudio/debugger/what-is-debugging?view=vs-2022#:~:text=Un%20depurador%20es%20una%20herramienta,hablamos%20cuando%20decimos%20%22depuraci%C3%B3n%22. narvaja, R. (3 de Enero de 2019). foro el hacker. Obtenido de foro el hacker: www.foro.com Ortiz, A. E. (22 de 7 de 2020). hostdime. Obtenido de hostdime: https://www.hostdime.com.pe/blog/que-es-una-vulnerabilidad-en-seguridad-informatica-ejemplos/#:~:text=En%20seguridad%20cibern%C3%A9tica%2C%20una%20vulnerabilidad,autorizadas%20en%20un%20sistema%20inform%C3%A1tico. Romero, M. S. (30 de Marzo de 2019). computerhoy. Obtenido de computerhoy: https://computerhoy.com/reportajes/tecnologia/consiste-ingenieria-inversa-396691 |
dc.rights.license.none.fl_str_mv |
Atribución |
dc.rights.accessrights.none.fl_str_mv |
info:eu-repo/semantics/openAccess |
dc.rights.coar.none.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
rights_invalid_str_mv |
Atribución http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.spa.fl_str_mv |
46 p. |
dc.publisher.spa.fl_str_mv |
Universidad Cooperativa de Colombia, Facultad de Ingeniería, Ingeniería de Sistemas, Bogotá |
dc.publisher.program.spa.fl_str_mv |
Ingeniería de Sistemas |
dc.publisher.place.spa.fl_str_mv |
Bogotá |
institution |
Universidad Cooperativa de Colombia |
bitstream.url.fl_str_mv |
https://repository.ucc.edu.co/bitstreams/0eab4fe9-75c6-471e-8149-f2812590155f/download https://repository.ucc.edu.co/bitstreams/88b913be-2f7e-4c60-92b0-bbd63efb3989/download https://repository.ucc.edu.co/bitstreams/75433656-beec-4521-801c-097b2e9b13da/download https://repository.ucc.edu.co/bitstreams/8f615d76-a34b-4b8a-847b-c5f5c97c31e3/download https://repository.ucc.edu.co/bitstreams/9a882ed2-d662-4cc0-8dcf-798e898b3b6f/download https://repository.ucc.edu.co/bitstreams/81d0b48c-85f1-4ce1-aac8-ad2554b7fd52/download https://repository.ucc.edu.co/bitstreams/b9ae25ab-9550-4677-bd7a-8794e90ea6ec/download https://repository.ucc.edu.co/bitstreams/2ad09d4c-3806-4e2e-93c1-e076a0f7ee78/download https://repository.ucc.edu.co/bitstreams/b37108d6-eed7-482a-a495-c4cac91b2e94/download https://repository.ucc.edu.co/bitstreams/7737ef39-1d30-408c-b1a7-af2f92127048/download |
bitstream.checksum.fl_str_mv |
8a4605be74aa9ea9d79846c1fba20a33 f016f9390017d03177888c3eef2469b0 f0dd8a8f9703273dc0d7b0ede77252b5 862ce0d69ad335b79f429966f71870cf 0f44168126ba704f94539d00b3927984 5bd3ac6eaeaa7ab72846064e0aca4cd0 4971102bc898a1e7beb7101049460f3f d3fde25511ce0b38bbb6ed8c6c88e503 8784d6fcd7f0a8a4a99ae7f9f08dc390 8d88ac0cfcece29f2e2c3fa6175985fc |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad Cooperativa de Colombia |
repository.mail.fl_str_mv |
bdigital@metabiblioteca.com |
_version_ |
1814247134599315456 |
spelling |
Rivera Sánchez, Gustavo ArmandoAlba Fortich, Miguel Eduardo2022-12-07T12:59:42Z2022-12-07T12:59:42Z2022-11https://hdl.handle.net/20.500.12494/47396Alba Fortich, M. E. (2022). Guía para la aplicación de ingeniería inversa de software [Proyecto de pregrado, Universidad Cooperativa de Colombia]. Repositorio Institucional Universidad Cooperativa de Colombia. https://repository.ucc.edu.co/handle/20.500.12494/47396Guía diseñada con fines educativos de cómo analizar un programa por medio de la depuración y para ser utilizada como método de aprendizaje sobre cómo aplicar la ingeniería inversa a un pequeño programa hecho en C++ con la herramienta x64dbg, analizando su funcionamiento interno por medio de la práctica de la depuración y comparando el código maquina producto de la compilación del código fuente de un ejemplo propuesto.Guide designed for educational purposes on how to analyze a program through debugging and to be used as a learning method on how to reverse engineer a small program made in C++ with the x64dbg tool, analyzing its inner workings through the practice of debugging and comparing the machine code product of the compilation of the source code of a proposed example.1. Objetivos. -- 1.1. Objetivo general. -- 1.2. Objetivos específicos. -- 2. Planteamiento del problema. -- 3. Justificación Práctica. -- 4. Alcance y limitaciones. -- 5. Cronograma. -- 6. Marco teórico. -- 7. Inicio de la guía. -- 7.1. Software necesario. -- 7.2. Ejecución. -- 7.3. Selección del archivo a analizar. -- 7.3.1. Código y descripción del programa usado. -- 7.3.2. Selección del programa. -- 7.3.3. El programa seleccionado y el manejo de la memoria. -- 7.3.4. Analizando analize_me.exe. -- 7.3.5. Pruebas de usabilidad. -- 8. Recomendaciones. -- 9. Conclusiones. -- 10. Fuentes. -- 11. Referencias.miguel.albaf@campusucc.edu.co46 p.Universidad Cooperativa de Colombia, Facultad de Ingeniería, Ingeniería de Sistemas, BogotáIngeniería de SistemasBogotáIngenieríaIngeniería inversaVulnerabilidadX64dbgDepuradorProgramaciónPrograma malignoEngineeringReverse engineeringVulnerabilityX64dbgDebuggerProgrammingMalwareGuía para la aplicación de ingeniería inversa de software.Trabajo de grado - Pregradohttp://purl.org/coar/resource_type/c_7a1finfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionAtribucióninfo:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Campus Internacional Ciberseguridad. ¿Qué es el reversing de malware? [en línea]. 20 de mayo de 2021. Disponible en: https://www.campusciberseguridad.com/blog/item/140-que-es-el-reversingEl Hacker. Foro de El Hacker [en línea]. Disponible en: https://foro.elhacker.net/ingenieria_inversa-b26.0/Heller, M. The Ghidra Book interview with co-author Kara Nance [en línea]. Octubre de 2020. Disponible en: https://searchsecurity.techtarget.com/feature/The-Ghidra-Book-interview-with-co-author-Kara-NanceNarvaja, R. Página de Ricardo Navaja [en línea]. Disponible en: https://sites.google.com/site/ricardonarvaja/homePrepodobniy, S. 9 Best Reverse Engineering Tools for 2021 [Updated] [en línea]. 24 de junio de 2021. Disponible en: https://www.apriorit.com/dev-blog/366-software-reverse-engineering-toolsacentocoop. (2 de Septiembre de 2020). Obtenido de acentocoop: https://acentocoop.es/blog/ingenieria-inversa/Asana, T. (7 de 10 de 2021). asana. Obtenido de asana: https://asana.com/es/resources/what-is-a-flowchartBaray, K. G. (2 de 2 de 2020). eleconomista. Obtenido de eleconomista: https://www.eleconomista.com.mx/tecnologia/que-es-un-bug-20200131-0079.htmlbyspel. (7 de 1 de 2022). byspel. Obtenido de byspel: https://byspel.com/que-es-codigo-fuente-en-programacion-diccionario/el-brujo. (31 de 5 de 2021). blog.elhacker. Obtenido de blog.elhacker: https://blog.elhacker.net/2021/05/herramientas-ingenieria-inversa.htmlFERNÁNDEZ, Y. (10 de 3 de 2021). xataka. Obtenido de xataka: https://www.xataka.com/basics/memoria-ram-que-sirve-como-mirar-cuanta-tiene-tu ordenador-moviFERNÁNDEZ, Y. (20 de 4 de 2021). xataka. Obtenido de xataka: https://www.xataka.com/basics/que-significa-que-aplicacion-programa-sea-32-64-bits-cual-debes-instalarGithub. (2021). Obtenido de https://docs.github.com/es/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-repositoriesGONZÁLEZ, G. (06 de 03 de 2019). genbeta. Obtenido de https://www.genbeta.com/herramientas/ghidra-poderosa-herramienta-ingenieria-inversa-nsa-ahora-open-source-esta-disponible-para-windows-linux-macosionos. (18 de Marzo de 2020). Obtenido de ionos: https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/ingenieria-inversa-de-software/locurainformaticadigital. (6 de Marzo de 2019). Obtenido de locurainformaticadigital: https://www.locurainformaticadigital.com/2019/03/06/ghidra-9-0-herramienta-ingenieria-inversa-nsa/Marín, R. (28 de enero de 2019). revistadigital. Obtenido de revistadigital: https://revistadigital.inesem.es/informatica-y-tics/ingenieria-inversa/Mendoza, M. L. (16 de 07 de 2020). openwebinars. Obtenido de https://openwebinars.net/blog/que-es-un-lenguaje-de-programacion/Mikejo5000, o. (19 de 8 de 2021). microsoft. Obtenido de microsoft: https://docs.microsoft.com/es-es/visualstudio/debugger/what-is-debugging?view=vs-2022#:~:text=Un%20depurador%20es%20una%20herramienta,hablamos%20cuando%20decimos%20%22depuraci%C3%B3n%22.narvaja, R. (3 de Enero de 2019). foro el hacker. Obtenido de foro el hacker: www.foro.com Ortiz, A. E. (22 de 7 de 2020). hostdime. Obtenido de hostdime: https://www.hostdime.com.pe/blog/que-es-una-vulnerabilidad-en-seguridad-informatica-ejemplos/#:~:text=En%20seguridad%20cibern%C3%A9tica%2C%20una%20vulnerabilidad,autorizadas%20en%20un%20sistema%20inform%C3%A1tico.Romero, M. S. (30 de Marzo de 2019). computerhoy. Obtenido de computerhoy: https://computerhoy.com/reportajes/tecnologia/consiste-ingenieria-inversa-396691PublicationLICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://repository.ucc.edu.co/bitstreams/0eab4fe9-75c6-471e-8149-f2812590155f/download8a4605be74aa9ea9d79846c1fba20a33MD54ORIGINAL2022_guia_aplicacion_ingenieria.pdf2022_guia_aplicacion_ingenieria.pdfTrabajo de gradoapplication/pdf2671447https://repository.ucc.edu.co/bitstreams/88b913be-2f7e-4c60-92b0-bbd63efb3989/downloadf016f9390017d03177888c3eef2469b0MD512022_guia_aplicacion_ingenieria-licencia.pdf2022_guia_aplicacion_ingenieria-licencia.pdfLicencia de usoapplication/pdf189765https://repository.ucc.edu.co/bitstreams/75433656-beec-4521-801c-097b2e9b13da/downloadf0dd8a8f9703273dc0d7b0ede77252b5MD532022_guia_aplicacion_ingenieria-aval.pdf2022_guia_aplicacion_ingenieria-aval.pdfAval asesorapplication/pdf168900https://repository.ucc.edu.co/bitstreams/8f615d76-a34b-4b8a-847b-c5f5c97c31e3/download862ce0d69ad335b79f429966f71870cfMD52THUMBNAIL2022_guia_aplicacion_ingenieria.pdf.jpg2022_guia_aplicacion_ingenieria.pdf.jpgGenerated Thumbnailimage/jpeg2555https://repository.ucc.edu.co/bitstreams/9a882ed2-d662-4cc0-8dcf-798e898b3b6f/download0f44168126ba704f94539d00b3927984MD552022_guia_aplicacion_ingenieria-licencia.pdf.jpg2022_guia_aplicacion_ingenieria-licencia.pdf.jpgGenerated Thumbnailimage/jpeg5099https://repository.ucc.edu.co/bitstreams/81d0b48c-85f1-4ce1-aac8-ad2554b7fd52/download5bd3ac6eaeaa7ab72846064e0aca4cd0MD562022_guia_aplicacion_ingenieria-aval.pdf.jpg2022_guia_aplicacion_ingenieria-aval.pdf.jpgGenerated Thumbnailimage/jpeg4926https://repository.ucc.edu.co/bitstreams/b9ae25ab-9550-4677-bd7a-8794e90ea6ec/download4971102bc898a1e7beb7101049460f3fMD57TEXT2022_guia_aplicacion_ingenieria.pdf.txt2022_guia_aplicacion_ingenieria.pdf.txtExtracted texttext/plain47074https://repository.ucc.edu.co/bitstreams/2ad09d4c-3806-4e2e-93c1-e076a0f7ee78/downloadd3fde25511ce0b38bbb6ed8c6c88e503MD582022_guia_aplicacion_ingenieria-licencia.pdf.txt2022_guia_aplicacion_ingenieria-licencia.pdf.txtExtracted texttext/plain5831https://repository.ucc.edu.co/bitstreams/b37108d6-eed7-482a-a495-c4cac91b2e94/download8784d6fcd7f0a8a4a99ae7f9f08dc390MD592022_guia_aplicacion_ingenieria-aval.pdf.txt2022_guia_aplicacion_ingenieria-aval.pdf.txtExtracted texttext/plain1393https://repository.ucc.edu.co/bitstreams/7737ef39-1d30-408c-b1a7-af2f92127048/download8d88ac0cfcece29f2e2c3fa6175985fcMD51020.500.12494/47396oai:repository.ucc.edu.co:20.500.12494/473962024-08-10 22:36:22.125open.accesshttps://repository.ucc.edu.coRepositorio Institucional Universidad Cooperativa de Colombiabdigital@metabiblioteca.comTk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo= |