Ideando

febrero 13, 2007

Archivos JSE, codificar y decodificar archivos con javascript

Filed under: JavaScript, programacion — mrodriguez @ 4:42 pm

Ayer un compañero de trabajo me preguntaba que era un archivo con extensión JSE y como decodificarlo, después de buscar un poco en internet, me encontré un script vb, con el que se puede codificar y descodificar un archivo js o jse, dependiendo el caso.

Dejo aquí la referencia a la página para futuras ocasiones: http://gogogadgetscott.info/computers/scripts/scriptdencoder

También anexo el código que en esta página ponen, para evitar perderlo.

‘==============================================
‘NAME: ScriptDEcoder.vbs

‘AUTHOR: Scott Greenberg
‘COMPANY: SG Technology
‘WEBSITE: http://gogogadgetscott.info
‘Date : 4/23/2004
‘VERSION: 1.0

‘COMMENT:
‘Recognized file extensions:
‘vbs vbe js jse htm html asa asp cdx
‘Decode procces derived from VBE decoder
‘by: Jean-Luc Antoine
http://www.interclasse.com/scripts/decovbe.php

‘Copyright� 2004. SG Technology. All rights reserved.
‘==============================================
Const TagInit = “#@~^”
Const TagFin = “==^#~@”
‘Get And check command arguments
Set oArgs = WScript.Arguments
If oArgs.Count = 0 Then
DisplayHelp “”
WScript.Quit
End If
‘Check If user requests help
For Each Arg In oArgs
If InStr (Arg, “?”) > 0 Then
DisplayHelp “”
WScript.Quit
End If
Next
Set oFSO = CreateObject (“Scripting.FileSystemObject”)
‘Create encoder object
Set oEncoder = CreateObject (“Scripting.Encoder”)
For Each Arg In oArgs
‘Check If argument contains path To a valid file
If oFSO.FileExists(Arg) Then
sFileExt = oFSO.GetExtensionName(Arg)
ValidExts = Array (“vbs”, “js”, “jse”, “vbe”, “htm”, “html”, “asa”, “asp”, “cdx”)
For Each Ext In ValidExts
If Ext = sFileExt Then
DisplayHelp Process(Arg)
Exit For
End If
Next
Else
DisplayHelp “Argument Is Not a valid file.”
End If
Next
DisplayHelp “Process Is complete”
‘Clean up
Set oEncoder = Nothing
Set oFSO = Nothing
Set oArgs = Nothing
‘Process file
Function Process(sFileIn)
‘Get In file extension
sSourceExt = “.” & oFSO.GetExtensionName(sFileIn)
sSourceFile = oFSO.GetBaseName(sFileIn)
‘Read file into buffer
Set fIn = oFSO.OpenTextFile(sFileIn)
sSource = fIn.ReadAll
fIn.Close : Set fIn = Nothing
‘Run process
If InStr (sSource, TagInit) = 0 Then
Decoded = True
End If
If Decoded = True Then
sOut = Encode(sSource, sSourceExt)
Select Case sSourceExt
Case “.vbs”
sOutExt = “.vbe”
Case “.js”
sOutExt = “.jse”
Case Else
sOutExt = sSourceExt
End Select
Process = “File “&sSourceFile&sSourceExt&” encoded And saved As “&sSourceFile&sOutExt&”.”
Else
sOut = Decode(sSource, sSourceExt)
Select Case sSourceExt
Case “.vbe”
sOutExt = “.vbs”
Case “.jse”
sOutExt = “.js”
Case Else
sOutExt = sSourceExt
End Select
Process = “File “&sSourceFile&sSourceExt&” decoded And saved As “&sSourceFile&sOutExt&”.”
End If
‘Write New file
sFileOut = oFSO.GetParentFolderName(sFileIn) & “\” & _
sSourceFile & sOutExt
‘* Fix To overwrite file
Set fOut = oFSO.OpenTextFile(sFileOut, 2, True )
fOut.Write sOut
fOut.close : Set fOut = Nothing
End Function
‘Encode buffer
Function Encode(sSource, sSourceExt)
‘Encode source
Encode = oEncoder.EncodeScriptFile(sSourceExt, sSource, 0, 0)
Set oEncoder = Nothing
End Function
‘Decode helper
Function Decode(sSource, sSourceExt)
Do
FinCode = 0
‘Find the start positon of encoded data
StartCode = InStr (sSource, TagInit)
If StartCode > 0 Then
‘If “==” the marker follows
If (InStr (StartCode, sSource, “==”) – StartCode) = 10 Then
‘Find the End positon of encoded data
FinCode = InStr (StartCode, sSource, TagFin)
If FinCode > 0 Then
‘Decode encoded data
sSource = Left (sSource, StartCode – 1) & _
DecodeH(Mid (sSource, StartCode + 12, FinCode – StartCode – 12 – 6)) & _
Mid (sSource, FinCode + 6)
End If
End If
End If
Loop Until FinCode = 0
If Asc (Right (sSource, 1)) = 0 Then sSource = Left (sSource, Len (sSource) – 1)
sSource = Replace (sSource,”.Encode”,””)
Decode = sSource
End Function
‘Decode buffer
Function DecodeH(Chain)
Dim tDecode(127)
Const Combination = “1231232332321323132311233213233211323231311231321323112331123132”
For i = 9 To 127
tDecode(i) = “JLA”
Next
For i = 9 To 127
ChainsTemp = Mid (oEncoder.EncodeScriptFile(“.vbs”, String (3, i), 0, “”), 13, 3)
For j = 1 To 3
c = Asc (Mid (ChainsTemp, j, 1))
If Not ((c = 42) And (i = 62)) Then
tDecode(c) = Left (tDecode(c), j – 1) & Chr (i) & Mid (tDecode(c), j + 1)
End If
Next
Next
Chain = Replace (Replace (Chain, “@&”, Chr (10)), “@#”, Chr (13))
Chain = Replace (Replace (Chain,”@*”,”>”), “@!”, “<“)
Chain = Replace (Chain,”@$”,”@”)
index = -1
For i = 1 To Len (Chain)
c = Asc (Mid (Chain, i, 1))
If c < 128 Then index = index + 1
If (c = 9) Or ((c > 31) And (c < 128)) Then
If (c <> 60) And (c <> 62) And (c <> 64) Then
Chain = Left (Chain,i – 1) & _
Mid (tDecode(c), Mid (Combination, (index Mod 64) + 1, 1), 1) & _
Mid (Chain,i + 1)
End If
End If
Next
DecodeH = Chain
End Function
‘Sub To display help message And any exceptions
Sub DisplayHelp(msg)
CRLF = Chr (13) + Chr (10)
If msg = “” Then msg = msg & ” — About this script —” & CRLF & _
“Recognized file extensions: ” & CRLF & _
” vbs vbe js jse htm html asa asp cdx” & CRLF & CRLF & _
“<file(s) To encode/decode>” & CRLF & _
“? <help>”
MsgBox msg, vbInformation , “ScriptDEcoder”
End Sub

Mas información útil en: http://www.insesys.com.mx

Anuncios

febrero 7, 2007

Identificando si el navegador acepta cookies

Filed under: JavaScript, programacion — mrodriguez @ 2:49 am

Otra función que para mi es muy útil es detectar si el navegador donde se presenta la página acepta cookies, para esto tengo una función mas simple que la anterior:

function DefineAceptaCookies(){
var aceptaCookies;
aceptaCookies = navigator.cookieEnabled;
return(aceptaCookies)
}

Esta función me retorna un true si el navegador acepta cookies o false si el navegador no tiene está opción habilitada.

Como identificar el navegador (browser) en el que se presenta la página, usando javascript

Filed under: JavaScript, programacion — mrodriguez @ 2:22 am

Este es un código que a mi me sirve mucho cuando se trata de identificar el tipo de browser que está presentando mi página:

function DetectaBrowser(){
var tipoBrowser;
if (navigator.userAgent.indexOf(“MSIE”)<0){
if (navigator.userAgent.indexOf(“Opera”)<0){
tipoBrowser = “Mozilla”;
}
else{
tipoBrowser = “Opera”;
}
}
else {
tipoBrowser = “Ms”;
}
return tipoBrowser
}
Utilizar está función es bastante sencillo, pues no requiere de ningún parámetro y solo retorna un string con el tipo de navegador que está usando el usuario que accesó a está página.
Tengo que hacer una aclaración, la función, como la mayoría de las cosas que hay en este blog, cumple mi necesidad de identificar que navegador usa, sin importarme la versión de este; Seguramente habrá momentos en los que se requiera mas información del cliente, si este fuera el caso el objeto navigator (de javascript) puede darte mas información.

Acerca del objeto navigator, puedes encontrar más información en: http://www.devguru.com/Technologies/ecmaScript/quickref/window.html

Mas información útil en: http://www.insesys.com.mx

febrero 2, 2007

Función para determinar el nombre del día de la semana o el nombre del mes del año

Filed under: JavaScript, programacion — mrodriguez @ 11:55 pm

Estas funciones son bastante sencillas, pero en algún momento podrían serle útil a alguien:

Function NombreDiaDelaSemana(ByVal DiaDeLaSemana As Integer) As String
Dim ARR_DIA() As String = {“Domingo”, “Lunes”, “Martes”, _
“Miércoles”, “Jueves”, “Viernes”, “Sábado”}
Return (ARR_DIA(DiaDeLaSemana))
End Function

Function NombreMesDelAnio(ByVal MesDelAnio As Integer) As String
Dim ARR_MESES() As String = {“Enero”, “Febrero”, “Marzo”, _
“Abril”, “Mayo”, “Junio”, _
“Julio”, “Agosto”, “Septiembre”, _
“Octubre”, “Noviembre”, “Diciembre”}
Return (ARR_MESES(MesDelAnio))
End Function

En la primera función se le envia un entero que indicaría el número del día del que queremos obtener el nombre; para obtener el mes sería usando la segunda función pero enviandole el número del mes.

Aunque están hechas para VB, el concepto sería el mismo para casí cualquier lenguaje.

Mas información útil en: http://www.insesys.com.mx

enero 25, 2007

Como almacenar una variable en el viewstate

Filed under: asp.net — mrodriguez @ 4:15 pm

El agregar una variable al viewstate debe hacerse con responsabilidad, pues el costo en el ancho de banda utilizado puede hacerse crítico para la aplicación.La forma de hacerlo es

viewstate(“Clave”) = Objeto

De esta forma pueden agregarse objetos al viewstate y para volver a obtenerlos se haría de la siguiente manera:

ObjetoRecibe = viewstate(“Clave”)

Mas información en estos enlaces:

http://msdn2.microsoft.com/en-us/library/ms972976.aspx

http://www.dotnetjohn.com/articles.aspx?articleid=71

enero 24, 2007

Detectar cuando se este cerrando una ventana usando Javascript

Filed under: JavaScript, programacion — mrodriguez @ 5:15 pm

Esto puede lograrse mediante el uso del evento onbeforeunload, como se puede ver en este ejemplo:

<HTML>
<HEAD>
<SCRIPT>
function Cerrar() {
alert(‘Mensaje’)
event.returnValue = “Te estás saliendo del sitio…”;
}
</SCRIPT>
</HEAD>
<BODY onbeforeunload=”Cerrar()”>
<a href=”http://www.google.com/&#8221; mce_href=”http://www.google.com/”>Google</a&gt;
</BODY>
</HTML>

Mas información útil en: http://www.insesys.com.mx

enero 16, 2007

Como cargar un dataset desde un archivo XML

Filed under: .net, asp.net, programacion — mrodriguez @ 8:30 pm

El día de ayer encontré la forma en la que puedo llenar un dataset a partir de un archivo xml. El código para hacerlo va de la siguiente forma:

Dim ArchivoXML As XmlDataDocument = New XmlDataDocument
ArchivoXML.DataSet.ReadXml(archivo) ‘<—- Aquí se carga el archivo a una variable tipo documento XML

Dim Ds As DataSet = ArchivoXML.DataSet ‘ <— Aqui se convierte la variable anterior a un dataset

Bastante simple.

Mas información útil en: http://www.insesys.com.mx

enero 14, 2007

Como agregar código js a una página desde asp.net

Filed under: asp.net — mrodriguez @ 11:48 am

Hay dos formas en las que puede ser necesario hacer esto:

1. Agregar código a la página para que se ejecute en línea.  
Aquí estamos hablando de agregar instrucciones javascript en el cliente que se estará ejecutando al momento de construir la página, desde que se descarga.  La forma de hacerlo usando el framework 1 es simple:

Page.RegisterClientScriptBlock(“clientscript”, “<script language=javascript>alert(‘Texto’)</script>”)

Aunque este método ya no debe ser usado para el framework 2 y 3, según las especificaciones de microsoft.

2. Agregar código a un elemento de la página para que se dispare con algún evento.
Bastante sencillo tomando en cuenta que solo hay que agregarle un atributo a un componente ya definido (en este caso un textbox).   

Me.txtCaptura.Attributes.Add(“onChange”, alert(‘Texto’))

Usando estas dos opciones combinadas pueden generarse funciones que sean llamadas al momento de generar un evento, por ejemplo; o quizá complementar algún otro campo en nuestra página mientras se van llenando campos dentro de la misma página sin tener que ir al servidor a hacer la operación.

enero 13, 2007

Creando eventos en el event viewer de windows desde un store procedure

Filed under: T-SQL — mrodriguez @ 6:34 am

El día de hoy investigando un poco acerca de como registrar algunos resultados desde un Store Procedure en Ms SQL Server, me encontré con la opción para enviar las notificaciones directamente al event viewer de windows, esto se me hizo muy interesante y quiero compartirlo

 El código para hacerlo es simple:

master..xp_logevent 50001, ‘Mensaje de error’, ERROR

master..xp_logevent 50001, ‘Mensaje informativo’, INFORMATIONAL

master..xp_logevent 50001, ‘Mensaje de advertencia’, WARNING

 Concentremonos en las líneas que inician con master…  en la primera línea estamos enviando un evento de error y el mensaje es el que está entre comillas.  El segundo es un mensaje informativo y esta determinado por el segundo por el tercer parámetro.   La tercera línea nos envía un warning con su correspondiente mensaje de advertencia.

 El primer parámetro es un número de error y lo que la página de microsoft nos dice al respecto, es que este valor puede ir desde 50000 hasta 1073741823, así que es casí ilimitado.

El segundo parámetro es el mensaje que se enviará al event viewer.

El tercer parámetro es opcional y puede tener cualquiera de los valores de los ejemplos anteriores, siendo el default el informativo.

Aquí está el ejemplo de lo que comento: 

Event viewer detalle

enero 5, 2007

Introducción

Filed under: Comentarios — mrodriguez @ 9:07 pm

Aquí estaré describiendo los pequeños tropiezos que al momento de estar programando me hacen desear haberle hecho caso a mi madre cuando me decía que estudiara medicina.   Esos pequeños momentos en los que mi código le dice a la computadora que haga cierta cosa y ella simplemente decide no hacerlo y hacer cualquier otra cosa.

La mayoría de las cosas que aquí comentare, dependerán del proyecto en el que esté involucrado, así que en ocasiones estaré hablando de tecnologías microsoft, adobe o sun, que son en las que más estoy involucrado ultimamente.

El titulo del blog se refiere al acto de ir generando ideas para lograr que la máquina se decida a hacernos caso.

Esto inicia …

« Newer Posts

Blog de WordPress.com.