blog

9 romper 2017

Desenvolvemento de software: que é un gancho?

/
publicado por

Desenvolvemento de software: que é un gancho?

Deberiamos saber uns poucos tipos de gancho.

¿Que é un gancho?No desenvolvemento de software, Hooking é unha idea que permite cambiar a conduta dun programa. O código de posibilidade ofrécelle a modificación da primeira conduta de algo sen cambiar o código da clase de comparación. Isto acaba por sobrescribir as estratexias de gancho.

Este tipo de uso é sumamente útil grazas a engadir novas funcionalidades ás aplicacións, ademais de fomentar a correspondencia entre os procedementos alternativos e as mensaxes do sistema. Os ganchos tenden a reducir a execución do sistema ampliando a carga de preparación que o sistema necesita para cada mensaxe. Debe ser introducido cando sexa necesario e evacuado na primeira oportunidade.

Considera que está a utilizar un Sistema de xestión de clientes (CMS) dun estranxeiro e pode querer que un super executivo sexa advertido por correo electrónico cada vez que se distribúa outra publicación e que esta conduta non sexa o predeterminado do dispositivo. Habería un par de rutas para adiante:

Cambiar o código fonte do CMS non é un pensamento intelixente; despois de todo, na seguinte actualización do dispositivo enfrontarase á dificultade de perder o cambio ou non terá a capacidade de continuar todo actualizado;

  • Faga o seu propio CMS en particular, é outro pensamento terrible, considerado todo, que non ten enerxía suficiente nin activos suficientes para facer cousas novas nin sequera manter o que fabricar;
  • Explora a probabilidade de usar un gancho, é dicir, comproba se o CMS mira módulos ou módulos externos para que os elementos dun nome ofrecido sexan executados no minuto craved, para esta situación, a distribución de novas publicacións.
  • A parte baixa da terra de usar ganchos varía generalmente de dispositivo a instrumento. A posición favorable principal dos ganchos non é cambiar o primeiro código. En todos os manuais de gran práctica de todos os dispositivos de código aberto que teñan actualizacións intermitentes o mantra que se trate non cambia o centro. Non obstante facer que as actualizacións sexan inimaxinables, calquera individuo que vén despois para facer o mantemento non pensará no cambio, ea persoa que apenas discute é vostede, non o aparello.

A extensibilidade é outro punto de vista preferido de utilizar estratexias de gancho que permiten que a aplicación aumente as súas interfaces estables. As estratexias do gancho desacoplan interfaces estables e realizan un espazo variado que pode xurdir da instanciación dunha aplicación para unha configuración específica.

Solucións tecnolóxicas innovadoras Ofrece Software Developement Training en Gurgaon, Delhi NCR na India.

Enganches como patróns de deseño

É intrigante notar que numerosos (todos) deseños de contornos exemplifican semántica para enganches. Falan sobre como executar sub-sistemas de áreas problemáticas. Algúns dependen da regra do desenvolvemento de destacamentos: Abstract, Factory, Builder, Command, Intérprete, Observer, Prototype, State e Strategy.

Outros nos dous exemplos de unificación e desenvolvemento de particións: Método de modelo e Ponte.

Semántica normalmente se comunica no nome da técnica de gancho (por exemplo, no comando, a estratexia chámase execute ()).

 

Táboa de métodos virtuais

Desenvolvemento de software - Que é un Hook - Point 1Virtual técnicas son traídos nunha ruta indistinguível a partir de estratexias estáticas, pero como as técnicas virtuais poden ser modificadas, o compilador non sabe o enderezo dunha capacidade virtual específica ao chamar no seu código. O compilador, polo tanto, monta unha táboa de métodos virtuais (VMT), que dá un xeito de consultar os enderezos de capacidade en tempo de execución. Toda estratexia virtual está activada no tempo de execución a través do VMT. O VMT dunha pregunta contén todas as estratexias virtuais para os seus precursores, e ademais as que proclama. Polo tanto, as técnicas virtuais utilizan máis memoria que as estratexias de elementos, a pesar de que corren máis rápido.

Dado que VMT é unha táboa que contén os indicadores con enderezos de memoria para as capacidades da interface, o que se debe facer é suplantar o primeiro enderezo de memoria cunha dirección de traballo de gancho lexítimo. Nesta liña, a técnica chamada será substituída e executarase a nova conduta cobizada da capacidade.

 

Hooking API

Desenvolvemento de software - Que é un Hook - Point 2O procedemento de Hooking API realmente permítelle reinventar os elementos do sistema de traballo. Coa capacidade de capturar tales cargas, pode cambiar os seus parámetros modificando a actividade que se realizaría inicialmente.

É concebible, por exemplo, cancelar unha peza dun rexistro específico, manter unha aplicación en execución e esixir unha afirmación do cliente para aforrar un arquivo ao círculo, etc.

De feito, o maior corte de decisión está na rexión de seguridade, por exemplo, antivirus e antispyware. Sexa como sexa, hai circunstancias no noso desenvolvemento normal onde a API de Hooking pode ser a saída principal.

Interfaz de programación Conexión, na nosa circunstancia específica, implica obter unha API desde o sistema operativo, ou desde calquera DLL, e cambiar a súa execución típica a outra parte, máis exactamente, a outra capacidade. Hai fundamentalmente dous enfoques:

EAT e IAT: todos os EXE / DLL conteñen API para importar e cargar táboas. Estas táboas conteñen apuntamentos que mostran o punto de entrada API. Ao cambiar estes punteiros, facéndoos indicar a nosa devolución de chamada, temos un gancho. Sexa como for, se este EXE / DLL non importa API's, esta estratexia non funcionará;

Sobreescritura de código directo: como se dixo anteriormente, no caso de que fose concebible engadir unha chamada á devolución de chamada cara ao inicio do código API, poderiamos "conectar", facendo que a nosa capacidade funcionase en calquera punto que se chamase a API. Sexa como for, hai un problema: se despois de que se tratase o noso código, necesitabamos chamar a primeira API, volveríamos a recuperar a devolución de chamada e crearíase unha inundación de pila. Un arranxo é fixar o gancho para ter a capacidade de chamar á API, volvéndoa a probar unha vez que se executa. Sexa como sexa posible, no medio deste centro, pódense facer algunhas chamadas de API e non executaremos a devolución de chamadas;

Inline Hook é o punto no que obtemos as principais directrices dunha capacidade e negociamos un Jump, Push ou Call para a nosa capacidade.

Lectura prescrita: o sistema de traballo de Windows tamén soporta a API. Deberiamos saber como funcionan as funcións de API de Windows?

 

Vestimenta ocasional

Desenvolvemento de software - Que é un gancho - As técnicas de gancho de punto 3As desacoplan interfaces estables e un espazo de variedade que pode xurdir da instanciación dunha aplicación para unha determinada configuración que ocorre unha reversión do control. Os manipuladores das ocasións dos obxectos modifican os pasos de preparación. Ao final do día, cando ocorre unha ocasión, o manipulador responde conxurando as estratexias de gancho nos obxectos pre-inscritos que executan determinadas ocasións preparando actividades. Casos de ocasións: mensaxes de fiestras, paquetes que aterran desde portos de correspondencia.

 

Dentro de IAT Hooking

Desenvolvemento de software - Que é un Hook - Point 4O proceso en Windows ten unha táboa chamada Import Address Table (IAT), que almacena consellos para as capacidades enviadas polas DLL de cada procedemento. Esta táboa é poboada de xeito progresivo coa dirección dos elementos das DLL en tempo de execución.

Usando capacidades particulares, podemos facer que a táboa IAT sexa escribible, sendo concebible cambiar o enderezo por un enderezo dunha capacidade personalizada, reafirmando a táboa como lida, simplemente despois deste cambio. No momento en que o procedemento intenta chamar a capacidade, o seu enderezo obtense na táboa IAT e devolve un punteiro. A medida que se cambiou a táboa IAT, a capacidade personalizada consiste en configurar a primeira capacidade e obtense o código infundido no procedemento.

 

Netfilter Hook

Desenvolvemento de software - Que é un gancho - Punto 5Netfilter é un subsistema de peza Linux máis notable que 2.4. Está a cargo do separador de paquetes, NAT, firewall, redirección, entre outros. Netfilter é excepcionalmente extensible e a súa documentación está rematada. Deixou a probabilidade de utilizar Hooks no código Kernel, o que fai que a súa utilización sexa extremadamente flexible e, en xeral, o grupo. Estes ganchos deixan uns resultados concebibles e poden encher como disparadores para ocasións específicas.

 

Conclusión:

Desenvolvemento de software - Que é un gancho - Conclusión Os procedementos de programación de enganchar son efectivos e abren un alcance de resultados concebibles para os enxeñeiros de software, pero debería utilizarse con alerta xa que inclúen unha complejidad máis destacada no fluxo de procedementos e cambian o primeiro condución do sistema operativo, aplicacións ou outros segmentos de software, o que fai difícil comprender a razón fundamental do software. Ademais diso, como se especificou anteriormente neste artigo, a utilización destes sistemas sen paradigma pode debilitar a execución das aplicacións.

Deixe unha resposta

 
GTranslate Please upgrade your plan for SSL support!
GTranslate Your license is inactive or expired, please subscribe again!