Compiler regrouper fichier html / javascript
Samuel13750 -
J'ai une petite appli dans un repertoire en local.
dans ce repertoire, il y a donc mon fichier HTML que je lance qui fait appel a des fichiers du type JS / CSS / html des images.
J'aimerai savoir si il est possible de compiler tous cela en un seul fichier (crypté) en .html ou .exe pour que les utilisateurs ne puissent pas voir les sources de mes fichiers JS.
Ou autrement de faire un fichier qui extrait certain fichiers en auto dans un rep que je précise et le fichier principale sur le bureau mais sans que l'utilisateur vois la destination. (un peu lorsqu'une appli s'install)
Merci de votre aide
Bonne journée
28 réponses
- 1
- 2
La discussion porte sur la possibilité d'emballer une application locale en un seul fichier exécutable ou HTML crypté afin d'empêcher les utilisateurs de voir les sources JavaScript. Plusieurs réponses évoquent NSIS et les installateurs qui décompressent les fichiers sur le poste et offrent options de composants, tout en indiquant qu’un code JavaScript compilé reste décryptable. Des échanges mentionnent des tutoriels NSIS et des questions sur le fait de mettre un composant par défaut non décochable, tandis que d'autres rappellent les risques et limites de protection. En cas de besoin, la solution pratique consiste à déployer les fichiers via un installateur gérant les composants et les chemins d’installation, plutôt que de tenter de dissimuler le code.
-
pour javascript: https://www.javascriptobfuscator.com/Default.aspx
pour php/html: https://sourceforge.net/projects/iddin/ -
pour faire des installations: https://nsis.sourceforge.io/Main_Page
-
Merci je vais aller voir cela en rentrant chez moi car au travail, je n'ai pas un acces ouvert a tous les sites.
-
ce site https://www.javascriptobfuscator.com/Default.aspx
Est parfait maintenant il faut que je teste avec mes sources :) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ca fonctionne bien mais est ce qu'il y a un moyen de crypter plus fortement la source du fichier html ?
-
Tant que cela est pour une utilisation locale et en supposant qu'il s'agisse de Windows :
1 - Obfusquer le code javascript (http://dean.edwards.name/packer/
2 - Renommer le HTML en HTA, supprimer les références à l'ancien script et inclure le script obfusqué en totalité (pas de référence mais une inclusion totale),
3 - Travailler le HTA selon ses caractéristiques spécifiques (https://docs.microsoft.com/en-us/previous-versions//ms536496(v=vs.85)?redirectedfrom=MSDN
4 - Ensuite googler un peu pour trouver des convertisseurs HTA EXE
Pour une install auto, il existe un programme natif windows depuis IE4 que peu connaissent et qui a été pourtant utilisé à outrance : iexpress
Démarrer / Exécuter : IExpress.exe and follow the wizard :)
Enjoy, -
Merci pour ce nouveau detail :)
Je vais tester cela dès cette aprem et indique si ca fonctionne :) -
alors avec l'utilitaire pour faire le .exe, ca passe par contre j'aimerai faire en sorte qu'il decompresse le tout dans un rep que je choisis par defaut et aussi copier le .html sur le bureau.
Merci encore pour vos réponses.-
télécharges ça: http://hmne.sourceforge.net/
c'est un frontend à nsis, il y a un assistant qui te guideras...notamment sur la création des dossiers et des racourcis html- hm nis edit est une interface qu'on supperpose à nsis, c'est un editeur de code nsis, il a un assistant qui facilite la compilation du code nsis...
vérifie que nsis est bien installé, ensuite ouvre hm nsi edit et vérifie que la liaison est bien faite:
outils > configuration >compilateur > c:\le_repertoire_d'installation_de_nsis/makensis.exe
ok
je viens de télécharger les dernières versions nsis et hm nsi edit et tout fonctionne...
-
-
Ok, merci beaucoup pour l'aide que tu apportes JC
Je teste cela cette aprem si j'ai le temps.
Encore merci -
Alors j'arrive bien a compiler les fichiers pour en faire un exe par contre dans l'assistant, je précise bien un raccourcie sur destop mais ca ne le créé pas...
Voici la ligne de commande :
CreateShortCut "$DESKTOP.lnk" "C:\WINDOWS\Temp\monfichier.html" -
EDIT en fait c'est bon j'ai reussi a créer le raccourcie en regardant comment il était créé pour le menu demarré :)
Merci beaucoup !!-
no problemo
tu peux regarder là il y a plein de tut pour t'amuser à compiler des installations avec diverses options etc.
https://nsis.sourceforge.io/Category:Tutorials
-
-
J'ai cette fois une derniere question lol
Je n'ai pas trouvé le moyen d'enlever a la fin la case lancer le programme ou a defaut spécifier quel fichier il doit lancer :( -
Petite ajout, j'ai testé avec fileopen mais a priori je dois mal coder la ligne pour lancer l'ouverture du fichier pourtant, il ne me marque pas d'erreur lors du compilage de l'appli :(
-
-
-
Oui et non lol là je suis au travail donc je me suis envoyé le .exe, il lance l'install la fait sans pb par contre aucun fichier installé :( Par contre ne me demande plus de lancer l'appli a la fin :)
Je suis proche du but lol-
Tu lui as donné des fichiers à installer au moins ? c'est le comble si t'as oublié de faire ça !
Tu lances l'assistant arriver au moment des sections, tu supprimes les deux fichiers exe dans la partie droite, ce sont des exemples, hein ! :)
ça doit se présenter comme ça dans le code:
Section "Mon Programme"
SetOutPath $INSTDIR
File "c:\le_chemin_vers_mon_programme\Mon Programme.exe"
File "Readme.txt"
File "c:\un_autre_dossier_avec_mes_super_applis\SuperAppli.exe
File "c:\un_gros_zip_velu"
SectionEnd
Tu mets les tiens,etc. et tu finis l'assistant... n'hésites pas à lire la doc...et les tutoriaux...je crois que t'en as besoin là !
tiens de la doc en français: http://www.todae.fr/nsis/i2k/?nsis_rub=example
-
-
C'est bon j'ai recompiler l'appli et ca passe, a mon avis c'est en transerer le .exe sur un neufgiga que ca a foiré...
Je vais lire le lien que tu m'as donné cette aprem ou demain quand je serais dispo.
Bonne journée / Bon week end -
Bon résultat final ca fonctionne nikel :)
Un grand merci JC pour avoir suivis la conversation.
Bonne journée / Fêtes -
Bon en fait j'ai d'autres idée qui me viennent en tete pour optimiser mon programme.
Mais par contre sur les tuto, je ai trouvé avec l'assistant comment permettre de selectionner les composants mais est ce qu'il est possible de mettre un composant par defaut et non decochable ?-
-
-
si tu as plusieurs sections dont une requise et les autres optionnelles voici un script trouver dans les tutorials ;)
La partie du script qui t'intérèsse se trouve à SectionIn RO
;--- Add/Remove system macros: --- ; (You may place them to include file) Var AR_SecFlags Var AR_RegFlags !macro InitSection SecName ; This macro reads component installed flag from the registry and ;changes checked state of the section on the components page. ;Input: section index constant name specified in Section command. ClearErrors ;Reading component status from registry ReadRegDWORD $AR_RegFlags HKLM \ "${REG_UNINSTALL}\Components\${SecName}" "Installed" IfErrors "default_${SecName}" ;Status will stay default if registry value not found ;(component was never installed) IntOp $AR_RegFlags $AR_RegFlags & 0x0001 ;Turn off all other bits SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading default section flags IntOp $AR_SecFlags $AR_SecFlags & 0xFFFE ;Turn lowest (enabled) bit off IntOp $AR_SecFlags $AR_RegFlags | $AR_SecFlags ;Change lowest bit ;Writing modified flags SectionSetFlags ${${SecName}} $AR_SecFlags "default_${SecName}:" !macroend !macro FinishSection SecName ; This macro reads section flag set by user and removes the section ;if it is not selected. ;Then it writes component installed flag to registry ;Input: section index constant name specified in Section command. SectionGetFlags ${${SecName}} $AR_SecFlags ;Reading section flags ;Checking lowest bit: IntOp $AR_SecFlags $AR_SecFlags & 0x0001 IntCmp $AR_SecFlags 1 "leave_${SecName}" ;Section is not selected: ;Calling Section uninstall macro and writing zero installed flag !insertmacro "Remove_${${SecName}}" WriteRegDWORD HKLM "${REG_UNINSTALL}\Components\${SecName}" \ "Installed" 0 Goto "exit_${SecName}" "leave_${SecName}:" ;Section is selected: WriteRegDWORD HKLM "${REG_UNINSTALL}\Components\${SecName}" \ "Installed" 1 "exit_${SecName}:" !macroend !macro RemoveSection SecName ; This macro is used to call section's Remove_... macro ;from the uninstaller. ;Input: section index constant name specified in Section command. !insertmacro "Remove_${${SecName}}" !macroend ;--- End of Add/Remove macros --- ; This constant specifies the installer file name. !define InstFile "AddRemove.exe" OutFile "${InstFile}" ; This constant specifies Windows uninstall key for your application. !define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\ \AddRemoveExample" InstallDir "$DESKTOP\AddRemove Example" Name "Add/Remove Example 1.0" ComponentText "Check the components you want to add and uncheck \ the components you want to remove:" ShowInstDetails show ShowUnInstDetails show Section "Required Section" SectionIn RO ;This section is required. It can't be removed. CreateDirectory $INSTDIR WriteUninstaller "$INSTDIR\Uninstall.exe" ;Writing uninstall info to registry: WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayName" "Add/Remove Example" WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayIcon" "$INSTDIR\Uninstall.exe" WriteRegStr HKLM "${REG_UNINSTALL}" "DisplayVersion" "1.0" WriteRegStr HKLM "${REG_UNINSTALL}" "Publisher" "THRaSH" WriteRegStr HKLM "${REG_UNINSTALL}" "InstallSource" "$EXEDIR\" ;Under WinXP this creates two separate buttons: "Modify" and "Remove". ;"Modify" will run installer and "Remove" will run uninstaller. WriteRegDWord HKLM "${REG_UNINSTALL}" "NoModify" 0 WriteRegDWord HKLM "${REG_UNINSTALL}" "NoRepair" 0 WriteRegStr HKLM "${REG_UNINSTALL}" "UninstallString" \ '"$INSTDIR\Uninstall.exe"' WriteRegStr HKLM "${REG_UNINSTALL}" "ModifyPath" '"$EXEDIR\${InstFile}"' SectionEnd Section "Component One (selected by default)" sec_One ;Installs component one ;By default this section is selected DetailPrint "*** Adding Component One..." CreateDirectory "$INSTDIR\Component One" SectionEnd !macro Remove_${sec_One} ;Removes component one DetailPrint "*** Removing Component One..." RMDir /r "$INSTDIR\Component One" !macroend Section /o "Component Two (unselected by default)" sec_Two ;Installs component two ;By default this section is not selected DetailPrint "*** Adding Component Two..." CreateDirectory "$INSTDIR\Component Two" SectionEnd !macro Remove_${sec_Two} ;Removes component two DetailPrint "*** Removing Component Two..." RMDir /r "$INSTDIR\Component Two" !macroend Section /o "Component Three (unselected by default)" sec_Three ;Installs component three ;By default this section is not selected DetailPrint "*** Adding Component Three..." CreateDirectory "$INSTDIR\Component Three" SectionEnd !macro Remove_${sec_Three} ;Removes component three DetailPrint "*** Removing Component Three..." RMDir /r "$INSTDIR\Component Three" !macroend ;--- Add/Remove callback functions: --- !macro SectionList MacroName ;This macro used to perform operation on multiple sections. ;List all of your components in following manner here. !insertmacro "${MacroName}" "sec_One" !insertmacro "${MacroName}" "sec_Two" !insertmacro "${MacroName}" "sec_Three" !macroend Function .onInit ;Reads components status for registry !insertmacro SectionList "InitSection" FunctionEnd Section -FinishComponents ;Removes unselected components and writes component status to registry !insertmacro SectionList "FinishSection" SectionEnd Section -Post ;Showing the results ExecShell "open" "$INSTDIR" SectionEnd ;--- End of Add/Remove callback functions --- Section Uninstall ;First removes all optional components !insertmacro SectionList "RemoveSection" ;Removes directory and registry key: RMDIR /r $INSTDIR DeleteRegKey HKLM "${REG_UNINSTALL}" SectionEnd
-
-
Oui c'est bien ca a un moment dans l'assistant il demade si on peut laisser le choix a l'utilisateur d'installer tel ou tel composant et dans le code ceux sont bien des sections.
- 1
- 2