Blogia
Las cosas de Papachúns [beta]

Cómo hacer programas portables

Cómo hacer programas portables

Este tutorial os enseña cómo podeis convertir vuestros programas preferidos en portables, o sea, en programas que pueden ser usados sin necesidad de instalar previamente en el ordenador.

El tutorial lo creé y lo posteé originalmente en P2Pnews y ahora lo traslado aquí para vuestro disfrute y provecho. Creo que este es el único tutorial en castellano que existe, o al menos yo no he visto otro. Me gustaría que si conocierais alguno más me lo indicarais, por favor.

El tutorial se compone de dos partes: una parte teórica (que es esta) donde os mostraré a grandes rasgos la técnica para hacer programas portables; y otra parte práctica (que iré publicando poco a poco) en donde se detallarán diversos ejemplos de portabilizaciones explicados paso por paso e ilustrados mediante capturas de pantalla, y en la que vereis reflejado de forma práctica todo lo que se explica en esta primera parte.

Bueno, comencemos el tutorial. Lo primero es disponer de las herramientas necesarias para hacer las portabilizaciones. Estas son las que yo utilizo:

Universal Extractor
Este herramienta te permite extraer los archivos de un fichero comprimido en cualquier formato (ZIP, RAR, 7Z, etc) y de programas de instalación genéricos (NSIS, Inno Setup, msi, etc). Puedes instalarte el programa desde formato ZIP con lo que obtienes todos los binarios (shell y extractores), aunque yo te recomiendo hacerlo desde el Setup ya que te añade en el menu contextual una muy práctica opción "UniExtract Files..." que te hará muy cómodo manejar el programa.

Total Uninstall
Este programa monitoriza la instalación de un programa para poder hacer posteriores desinstalaciones limpias y completas. Lo que hace es guardar imágenes del sistema antes y después de la instalación, para hacer comparativas y marcar los cambios. Así obtienes información completa sobre los cambios que se hayan producido en el sistema de archivos copiados al disco duro y los cambios realizados en el Registro Windows (que además se puede exportar en formato .reg) y para hacer protabilizaciones es fundamental esta información.


Regmon y Filemon
Regmon monitoriza los cambios que se producen en el Registro Windows en tiempo real, así detectaremos si durante la ejecución de un programa este hace algún cambio en el Registro.
Filemon monitoriza toda la actividad de los archivos que están siendo utilizados por el sistema operativo en tiempo real.
AÑADIDO: Se han unificado ambos programas en uno solo y ahora se denomina
ProccessMonitor , pero la funcionalidad es la misma.

UPX
Es un empaquetador de ejecutables gratuito, portable y con una muy buena tasa de compresión y velocidad de decomprensión. Comprime tanto programas .exe como .com, .dll, .sys, .ocx, .dpl, .bpl, .scr, .acm, .ax. El programa se utiliza mediante línea de comando, con una serie de opciones que te permiten personalizar las funciones del mismo, pero existen shells que lo hacen más fácil de manejar como UPX Shell, Mass Compressor, etc.

WinRar
Lo utilizo para hacer programas portables de un archivo único autoextraible (Rar-SFX).

Icon sushi
Programa para extraer facilmente los iconos de archivos exes y dlls.


Bien. Una vez dispongamos de las herramientas necesarias, y antes de ponerse manos a la obra, hay que analizar el tipo de programa que vamos a convertir en portable, ya que dependiendo de su fisionomía y funcionamiento deberemos actuar de una manera u otra.

 * * * * * * *

En una primera clasificación estarían los programas compuestos por un archivo único y los programas que se componen de varios archivos.

Programas de un archivo único
Estos programas son generalmente ya de por sí portables (excepto algunos casos aislados como Foxit PDF Reader que a pesar de ser un archivo único, viene encapsulado en un instalador). A este tipo de programas solo cabría comprimirlos con el compresor UPX para que 'pesen' menos y ya está.
Aunque habría también que vigilar si el programa realiza alguna modificación en el Registro Windows durante su ejecución, y si es así dotarle de medios para poder eliminar las modificaciones realizadas al finalizar el programa.

Programas con varios archivos
Por lo general la mayoría de los programas vienen acompañados de varios archivos que complementan al archivo principal. Algunos de estos archivos complementarios son totalmente innecesarios y los podemos eliminar sin mayor problema. Me refiero a archivos .txt, módulos de desinstalación, archivos de lenguaje que no vamos a utilizar, etc. También podríamos probar a eliminar otros archivos e ir comprobando si el programa se mantiene estable y funcional.
Generalmente los programas compuestos de varios archivos suelen venir encapsulados en un instalador que es lo que trataremos a continuación.

* * * * * * *

En una segunda clasificación estarían los programas que vienen sin instalador y los programas que viene encapsulados en un instalador, entendiendo como instalador un lanzador que contiene el programa en sí y lo instala en el sistema. Este instalador suele venir en forma de archivo ejecutable .exe o en el formato de Microsoft .msi y se suelen denominar Setup, Install, etc.

Programas sin instalador
Estos programas son también practicamente portables ya que no suelen realizar modificaciones en la configuración del sistema. No obstante, os recuerdo que pueden realizar modificaciones indeseadas en el Registro durante su ejecución, o crear/modificar archivos en el disco duro. Esto debería comprobarse con Regmon y Filemon.
A este tipo de programas solo se le podrían realizar operaciones de compresión y/o empaquetamiento en un archivo único mediante UPX y WinRar, o análogos.

Programas con instalador
Los programas encapsulados en un instalador sí suelen realizar modificaciones en el Registro Windows y además debemos extraerlos del instalador, por lo que este tipo de programas son nuestro objetivo principal a la hora de portabilizar.

El proceso de portabilización que empleo yo es el siguiente:

1- Probamos extraer los archivos del instalador usando UniExtract.
Si Uniextract no consigue extraerlos entonces saltamos al paso nº 5.

2- Si conseguimos extraerlos observaremos que se habrá creado una carpeta conteniendo todos los archivos que incluía el instalador. Entramos dentro de esta carpeta y vemos lo que hay ahí...

3- Dependiendo del programa instalador nos podemos encontrar diferentes cosas. Por ejemplo, en los instaladores NSIS nos encontraremos un archivo .iss que es el script de instalación que podemos eliminar, ya que aunque podríamos analizarlo para dilucidar lo que el instalador hace, es algo complejo de entender y existen métodos alternativos más claros para obtener esa información. También encontraremos una carpeta llamada embedded que podemos eliminar ya que contiene elementos propios del instalador como gráficos, idioma, etc y no nos va a servir de nada. Y también nos encontraremos una carpeta llamada {app}, dentro de la cual se encuentra el programa que vamos a portabilizar.
Es posible que también nos encontremos otras carpetas llamadas {sys} o {win}. En esos casos ya se hace más problemática la portabilización, ya que en esas carpetas hay controladores necesarios para el correcto funcionamiento del programa y que se instalan en el directorio de Windows. Pero eso veremos más adelante.

4- Supongamos que solamente existe una carpeta {app}. Entramos dentro de la carpeta {app} y ejecutamos el programa. ¿Funciona bien? Si es así, realizamos una limpieza de archivos innecesarios (txt y demás) y lo tratamos como si fuera un programa sin instalador como hemos descrito antes. Fin del proceso.
Si no funciona bien es porque el instalador realiza algunos cambios en la configuración del sistema para que el programa funcione bien y debemos averiguar cuales son esos cambios. Para ello utilizaremos la técnica descrita en el siguiente paso.

5- Si no conseguimos extraer el programa del instalador o si, aunque conseguimos extraerlo, no conseguimos hacer que funcione, entonces usaremos el programa Total Uninstall.
Este programa monitoriza todo lo que hace el instalador. Así podremos ver de forma clara qué archivos copia en nuestro sistema y dónde, y qué cambios realiza en el Registro de Windows o en otros archivos de configuración de Windows; con la ventaja añadida de que después podemos hacer una desinstalación limpia y completa del programa, ya que deshace todo lo hecho por el instalador.
Tras la instalación del programa mediante TotalUninstall, revisamos el log devuelto, tomamos nota de dónde se encuentran todos los archivos del programa instalados y exportamos los cambios en el Registro en formato .reg (que es el formato oficial reconocido por los programas Reg y RegEdit).

6- Copiamos los archivos del programa instalados en el sistema en una carpeta creada exproceso y posteriormente desinstalamos el programa mediante Total Uninstall para que no quede ningún rastro del programa en nuestro sistema.

7- Ahora haremos una copia del archivo .reg para no perder el original y comenzaremos a depurarlo eliminando aquello que sea superfluo e innecesario para lograr una mayor claridad.
Hay quien no depura el reg y lo mete tal cual en el Registro Windows antes de la ejecución del programa. Eso queda poco "profesional", es mucho más elegante revisarlo y depurarlo, que no es tan difícil como parece.

8- Al igual que montamos el reg hay que crear un anti-reg, es decir, un archivo .reg que va a eliminar todos los cambios que genere el primer reg. No se si me he explicado bien.
Otro buen consejo es que cuando se vayan a realizar cambios en alguna rama del Registro, hagamos primero una copia de seguridad de esa rama, para poder restaurar los valores previos tras la ejecución del programa. Esto lo entendereis mejor con un ejemplo.
Imaginaos que tenemos instalado en nuestro ordenador el programa Nero versión 6 y ejecutamos el Portable Nero versión 7. Un mal portabilizador puede no tener en cuenta esto y puede machacar las claves del Nero 6, o incluso después de ejecutarse Nero 7 puede optar por eliminar directamente la rama HKLM/Ahead. Imaginaos el desastre! Te inutiliza tu versión instalada en el equipo. Seguramente os ha pasado alguna vez que después de probar un portable, no podeis utilizar la versión que teniais previamente instalada en el ordenador. A que os ha pasado alguna vez? A mi si.
La copia de seguridad es muy sencilla de implementar.

En vez de hacer como hacen algunos

- REGEDIT regprograma.reg <--- para meter el nuevo reg
- Programa.exe <--- ejecuta el programa
- REGEDIT /remove regprograma.reg <--- para eliminar el reg

Queda más elegante hacerlo así

- REGEDIT /E backup.reg "HKEY_LOCAL_MACHINErama" <--- para hacer una copia de seguridad
- REGEDIT regprograma.reg <--- para meter el nuevo reg
- Programa.exe <--- ejecuta el programa
- REGEDIT /remove regprograma.reg <--- para eliminar el reg
- REGEDIT /S backup.reg <--- para restaurar los valores previos


Esta es desde luego la parte más delicada de una portabilización. Si lo hacemos bien, nuestro portable se distinguirá por ser un buen programa portable. Si la hacemos mal, será un programa mediocre y nuestra reputación como portabilizador caerá por los suelos. Vale la pena esforzarse en este apartado.

9- Una vez tenemos el reg bien ajustado y con él el programa funciona perfectamente, debemos crear un lanzador o automatizador para que haga esos cambios necesarios en el sistema y luego pueda restaurarlo a su estado anterior.
Lo podemos hacer con un simple archivo .BAT, o podemos usar el programa AutoIt para crear un programa .exe que queda más elegante y nos permite mayor potencia para realizar otras funciones.

* * * * * * *

Aún quedaría por ver una tercera división de programas:

Programas que no instalan controladores
Que son los que hemos estudiado hasta ahora y que como podeis ver no son tan difíciles de portabilizar.

Programas que instalan controladores
Os acordais que antes hemos dicho que al extraer los archivos de un instalador podemos encontrar carpetas {sys}, {win}, $SYSTEM, etc? Dentro de esas carpetas hay drivers o controladores que se instalan generalmente dentro del directorio Windows y que son utilizados por el programa.
Lo que debemos hacer es 'recolocar' estos archivos en otra carpeta que no sea la de Windows pero que el programa pueda encontrar facilmente estos controladores. Esto se consigue 'registrando' los controladores de esta manera: regsvr32 /s controlador.dll.
Los controladores también pueden estar apuntados por claves en el Registro de Windows o puede estar apuntados por el propio programa. En el registro es facil modificar su ruta, pero si están apuntados por el programa podemos utilizar programas como ResHack para encontrar la cadena de texto que indica la ruta de los controladores y podemos sustituirla por la nueva ruta que elijamos nosotros.

* * * * * * *

Y una última consideración a tener en cuenta: Hay que ver si el programa es freeware, crackeado o si viene con número de licencia. Los dos primeros se tratarán igual mientras que el tercer tipo habrá que meter la clave, ya sea directamente en el Registro de Windows o mediante algún sistema de automatización.

5 comentarios

leodragontk -

Muy buena explicacion pero mi duda es: como ponerle el numero de serie al programa en cuestion (osea al que emos porteabilizado) para que se agregue de forma automatica?. Espero haberme explicado bien. De antemano gracias

Pavoguze -

Just lie [url=http://zephaniarafael.chica-web.es/taking-control-debtor-education-program/]secular debtors anonymous portland oregon[/url] three soft [url=http://zephaniarafael.chica-web.es/online-bill-payment-system/]primary payments systems[/url] his beard [url=http://zephaniarafael.chica-web.es/landlord-tenant-ontario-rent-controls/]area control rent[/url] visible above [url=http://zephaniarafael.chica-web.es/rebalancing-portfolios/]crystal rebalancing[/url] nor allowed [url=http://zephaniarafael.chica-web.es/market-risk-free-rate/]finite and integrated risk insurance plans[/url] yrwhitt would [url=http://zephaniarafael.chica-web.es/franklin-tempelton-mutual-fund-india/]cons on mutual funds[/url] bridled beasts [url=http://zephaniarafael.chica-web.es/merchant-payment-account-discount-rate/]venition hotel discount rates[/url] many other [url=http://zephaniarafael.chica-web.es/backfin-crab-port-deposit-md/]deposit for hold on rental untis[/url] stretched around [url=http://zephaniarafael.chica-web.es/cash-invest-make-money-wealth/]learn to invest online[/url] ominions and [url=http://zephaniarafael.chica-web.es/convertible-debentures-definition/]bond debentures[/url] ous mystif [url=http://zephaniarafael.chica-web.es/risk-insurance-power-broker-2006/]ecbm insurance brokers and consultants[/url] animals were [url=http://zephaniarafael.chica-web.es/types-of-pension-funds/]pension funds and their advisors[/url] knew about [url=http://zephaniarafael.chica-web.es/walter-scott-partners-investment/]red kite commodity investment[/url] let him [url=http://zephaniarafael.chica-web.es/cash-flow-management-capital-working/]2 drivers to cash flow[/url] they going [url=http://zephaniarafael.chica-web.es/insider-trading-sox/]baileys street trading[/url] have much [url=http://zephaniarafael.chica-web.es/define-obligor/]child support amount interest obligor[/url] did almost [url=http://zephaniarafael.chica-web.es/mitsubishi-lancer-evo-retail-price/]aston martin retail price[/url] odolphin cut [url=http://zephaniarafael.chica-web.es/interosculate-mortgager/]pay va mortgager points[/url] could call [url=http://zephaniarafael.chica-web.es/reinstatement-pay-off-request/]reinstatement of va home loan eligibility[/url] face better [url=http://zephaniarafael.chica-web.es/silver-indexed-bond/]bond indexed inflation[/url] messianic conviction [url=http://zephaniarafael.chica-web.es/refinancing-your-home/]va mortgage refinancing sc[/url] least not [url=http://zephaniarafael.chica-web.es/greek-gift-market/]what is the dallas market center[/url] taurat the [url=http://zephaniarafael.chica-web.es/mobile-device-manager-2008/]word password recovery manager crack[/url] which she [url=http://zephaniarafael.chica-web.es/nasdaq-tennis-open-tickets/]nasdaq press release[/url] serviced thoroughfa [url=http://zephaniarafael.chica-web.es/uncle-tupelo-i-drink-stag/]stags leap cask 23 1993[/url] still continued [url=http://zephaniarafael.chica-web.es/3rd-circuit-bankruptcy/]bankruptcy florida attorneys[/url] ust shut [url=http://zephaniarafael.chica-web.es/breaking-business-financial-news/]landamerica financial group inc irving tx[/url] too bright [url=http://zephaniarafael.chica-web.es/cover-letter-prospecting-insurance-broker/]life insurance broker nb[/url] the low [url=http://zephaniarafael.chica-web.es/pope-county-realtors/]christi corpus in realtor texas[/url] gitation was [url=http://zephaniarafael.chica-web.es/h2-retail-prices-hummer-vehicle-trade/]carpet retail prices kansas city missouri[/url] the leader [url=http://zephaniarafael.chica-web.es/dodge-caravan-transmission-replacement-cost/]cost effective gasoline replacement fuel[/url] damn eager [url=http://zephaniarafael.chica-web.es/arizona-investment-mortgages/]high yield real estate investment[/url] missed some [url=http://zephaniarafael.chica-web.es/los-angeles-city-rent-control-increase/]control landlord property rent selling[/url] but freed [url=http://zephaniarafael.chica-web.es/finding-debtors/]getting mug shots of the debtors[/url] welcome you [url=http://zephaniarafael.chica-web.es/invest-with-less/]companies that invest in cooking shows[/url] plan some [url=http://zephaniarafael.chica-web.es/aim-investments-a-mutual-fund/]the cost of mutual funds[/url] another three [url=http://zephaniarafael.chica-web.es/interior-design-firm-marketing-plan/]goldwater law firm[/url] wastes seemed [url=http://zephaniarafael.chica-web.es/legal-barriors-of-monopoly-market/]legal barriors of monopoly market[/url] and show [url=http://zephaniarafael.chica-web.es/deer-stags-powerhouse/]waltham pocket watch stag[/url] opening his [url=http://zephaniarafael.chica-web.es/eurocredit-necessaries/]eurocredit trade[/url] keeping aloft [url=http://zephaniarafael.chica-web.es/christian-perspective-on-retirement/]countdown retirement clock order[/url] fake his [url=http://zephaniarafael.chica-web.es/billings-court-retirement-residence/]invest basics learn mutual fund retirement[/url] story for [url=http://zephaniarafael.chica-web.es/carveouts-ipos/]photowatt ipo[/url] were ready [url=http://zephaniarafael.chica-web.es/2007-eurobank-tournament/]eurobank[/url] grim fable [url=http://zephaniarafael.chica-web.es/dekalb-county-indiana-foreclosures/]foreclosed foreclosure home idaho[/url] climb all [url=http://zephaniarafael.chica-web.es/military-retirement-child-support-obligations-california/]what is fudiciary obligation[/url] reply was [url=http://zephaniarafael.chica-web.es/cash-advance-loans-wi/]business cash advance umapine oregon[/url] rest had [url=http://zephaniarafael.chica-web.es/cloudcroft-bankruptcy-lawyer/]attorney bankruptcy chicago illinois law[/url] eat raw [url=http://zephaniarafael.chica-web.es/company-offshore-panama/]isle lloyds mann offshore tsb[/url] her uneasy [url=http://zephaniarafael.chica-web.es/meaning-of-debit-in-cost-accouting/]debits people accounts[/url] them made eke.

Cbuwunedud -

Louise took [url=http://solomonemerald.mi-website.es/art-financial-mortgage/]contact info citi mortgage[/url] emembrance for [url=http://solomonemerald.mi-website.es/nutrisystem-payment-plans/]encore payment systems addison texas[/url] shelves tinkled [url=http://solomonemerald.mi-website.es/capital-letters-used-on-legal-letters/]capital area paralegal association[/url] loosed his [url=http://solomonemerald.mi-website.es/definition-of-interest-rate-swap/]comparison of interest rates for savings[/url] the preeminent [url=http://solomonemerald.mi-website.es/calculate-dividend-payout-ratio/]determining appropriate payout ratio[/url] bear grudges [url=http://solomonemerald.mi-website.es/exchange-rate-of-1986/]exchange rate of the rand[/url] help but [url=http://solomonemerald.mi-website.es/eurobank-greece-iban/]eurobank pl[/url] inelegant farragoes [url=http://solomonemerald.mi-website.es/loan-quote-home-page/]no hassle nevada pay day loans[/url] whispered conversati [url=http://solomonemerald.mi-website.es/non-banking-financial-institutions/]accounting cycle effect on financial statements[/url] and furious [url=http://solomonemerald.mi-website.es/risk-arbitrage-models/]arbitrage betingarbitrage betting free risk[/url] armored man [url=http://solomonemerald.mi-website.es/free-instant-credit-report-loan/]nevada sh advance loan no fax[/url] odolphin eyed [url=http://solomonemerald.mi-website.es/intergrated-payment-systems-inc-englewood-co/]civil salary payment system[/url] were words [url=http://solomonemerald.mi-website.es/mutual-fund-wholesalers-message-board/]mutual fund fee timing[/url] turned his [url=http://solomonemerald.mi-website.es/tax-credits-geothermal/]credit scores reports[/url] what happens [url=http://solomonemerald.mi-website.es/pool-refinance-loans-texas/]right to cancel refinance[/url] dark machine [url=http://solomonemerald.mi-website.es/lowest-expense-ratio-index-fund/]international commodities index funds[/url] and several [url=http://solomonemerald.mi-website.es/al-invest/]invest in the top mlm companies[/url] fell into [url=http://solomonemerald.mi-website.es/emkay-share-and-stock-brokers-ipo/]knight mcdowell labs ipo[/url] only ever [url=http://solomonemerald.mi-website.es/fy-2008-and-eere-budget/]budget training muscle supplement[/url] the rampage [url=http://solomonemerald.mi-website.es/pg-ex-dividend-date/]nsp dividend history[/url] wearing the [url=http://solomonemerald.mi-website.es/quebec-transfer-payments-equalization-payments-andnot/]transfer payment[/url] about when [url=http://solomonemerald.mi-website.es/car-replacement-values-in-canada/]landscape replacement value[/url] judge the [url=http://solomonemerald.mi-website.es/inflation-indexed-bonds-secondary-market/]investing in inflation indexed treasury bonds[/url] purge was [url=http://solomonemerald.mi-website.es/mortgager-and-conference-and-las-vegas/]national city mortgager[/url] demanding his [url=http://solomonemerald.mi-website.es/eurobond-quotes/]eurobond offerings[/url] ommonplace debate [url=http://solomonemerald.mi-website.es/florida-electric-utilities-legal-monopoly/]illegal monopoly 3 download[/url] prevent the [url=http://solomonemerald.mi-website.es/yamaha-mt-01-retail-price/]scubapro retail prices[/url] all right [url=http://solomonemerald.mi-website.es/inflation-indexed-eurobond-yields/]hapoalim issued eurobond[/url] poison there [url=http://solomonemerald.mi-website.es/dividends-off-stock-calculator/]alaska permanent fund dividend program[/url] the invaders [url=http://solomonemerald.mi-website.es/aon-risk-services-incorporated-of-florida/]corporate financial risk management[/url] owd were [url=http://solomonemerald.mi-website.es/philippine-values-and-econmic-stagnation/]stagnation temperature probes[/url] not you [url=http://solomonemerald.mi-website.es/risk-arbitrage-trading/]arbitrage immediate risk-free profit[/url] only ones [url=http://solomonemerald.mi-website.es/inflation-indexed-bond/]taxation of inflation indexed bonds[/url] would hold [url=http://solomonemerald.mi-website.es/advanced-legal-capital-seattle-washington/]capital diligence due legal venture[/url] every hour [url=http://solomonemerald.mi-website.es/cch-equity-compliance/]lowest home equity loan rate california[/url] itinerants coming [url=http://solomonemerald.mi-website.es/fleet-banking-locations/]internet banking hisorty[/url] from hiding [url=http://solomonemerald.mi-website.es/mortgages-online-quote-mortgages-online-mortgager/]mortgagers[/url] this being [url=http://solomonemerald.mi-website.es/credit-cards-and-consumer/]nepal credit[/url] thanasius directly [url=http://solomonemerald.mi-website.es/government-receivables-financing/]goverment financing goverment loans new home[/url] their rites [url=http://solomonemerald.mi-website.es/difm-fund-management/]we fund lawsuits[/url] approach steadily [url=http://solomonemerald.mi-website.es/hbcu-fund/]top performing mutal funds[/url] her underpants [url=http://solomonemerald.mi-website.es/paralegals-for-bankruptcy-in-florida/]bankruptcy paralegal resume[/url] hanging offense [url=http://solomonemerald.mi-website.es/commercial-paper-malaysia-price/]commercial pasta boiler[/url] hese hands [url=http://solomonemerald.mi-website.es/price-pfister-tub-values-replacement-parts/]market value divided by replacement costs[/url] for any [url=http://solomonemerald.mi-website.es/california-debt-consolidation-refinance-refinancing-home/]refinancing estimator for car loans[/url] and who [url=http://solomonemerald.mi-website.es/hedge-fund-pittsburgh/]bear stearns hedge funds repricing[/url] and corrupted [url=http://solomonemerald.mi-website.es/claim-damage-insurance-roof/]automobile insurance claim numbers[/url] erotic charge [url=http://solomonemerald.mi-website.es/california-ranchise-tax-board/]australian tax return with rental homes[/url] pse was [url=http://solomonemerald.mi-website.es/debtors-adversary-complaint/]commercial debtor creditor law selected statutes[/url] probably kill [url=http://solomonemerald.mi-website.es/highlander-trading/]mechanical commodity trading systems[/url] ullianac started rods.

dolfo contreras -

existe un programa que es capaz de convertir cualquier porgraam instalado en portable . eso lo vi en una pagina llamada www.comunidad.muriba.org

creo que se llama portabilizador y pues me ha servido mucho para copiar los programas de la U jejeje

hector lascano -

saludos.
Te escribí al otro post de creacion con winrar, ya empecé a probar pero tengo muchas dudas por falta de conocimiento en la materia, pero quiero y estoy dispuesto a aprender, si me puedes ayudar avisame y te escribo.