Jump to content

AutoIt Project General Conversation


Recommended Posts

Heres some code to look at.

#cs ----------------------------------------------------------------------------
    
    AutoIt Version: 3.3.9.4 (beta)
    Author:      Decipher
    
    Script Function:
    WinGet - Windows Program Downloader/Installer
    
#ce ----------------------------------------------------------------------------

HttpSetUserAgent("Wget/1.13.4") ;- "portableapps.com/updater/update.ini"

#include <String.au3>
#include <Array.au3>
#include <Date.au3>
#include <File.au3>
#include <IncludesWinHTTP.au3>
#include <WinAPIEx.au3>

Global $sTemp_Dir = _TempFile()
DirCreate($sTemp_Dir)

HotKeySet("{ESC}", "_Exit")

;/DESTINATION="" /AUTOCLOSE=true /HIDEINSTALLER=true /SILENT=true

_Setup_uTorrent()



;"http://downloads.sourceforge.net/portableapps"

Func _Setup_uTorrent()
    Local $uTorrent_Portable_Installer = _Download_uTorrent_Portable('http://sourceforge.net/projects/portableapps/files/uTorrent Portable')
    If $uTorrent_Portable_Installer Then
        If Not @error Then _Configure_uTorrent_Portable($uTorrent_Portable_Installer)
        If Not @error Then
            FileChangeDir(@ScriptDir)
            _Configure_uTorrent_WebUI()
            FileChangeDir($sTemp_Dir & "uTorrentPortable")
            Run("uTorrentPortable.exe /HIDE")
            ShellExecute("http://admin:test@127.0.0.1:8080/gui") ; Testing
        Else
            ConsoleWrite(@CRLF & "!> Error configuring uTorrent Portable! Code: " & @error & @CRLF)
            _Exit()
        EndIf
    EndIf
    While 1
        Sleep(1000)
    WEnd
EndFunc   ;==>_Setup_uTorrent
Func _Download_uTorrent_Portable($uTorrent_Portable_SourceForge_URL, $iIteration = False)
    Local $sPage_Data = _WinHttpGet($uTorrent_Portable_SourceForge_URL)
    If $sPage_Data = '' Or @error Then
        ConsoleWrite(@CRLF & '!> Connection Error or Invalid URL!' & @CRLF)
        Return SetError(1, 0, 0)
    EndIf
    Local $aDate, $iLatest_Index = 0, $iLast_Calc = Default, $aFileList = _StringBetween($sPage_Data, '<tr title="', '</tr>') ; 2012-08-01
    For $iFile = 0 To UBound($aFileList, 1) - 1
        $aDate = _StringBetween($aFileList[$iFile], '<abbr title="', '"')
        If Not IsArray($aDate) Then ContinueLoop
        If $aDate[0] = '' Then ContinueLoop
        $aDate = StringSplit($aDate[0], ' ', 3)
        $aDate[0] = StringReplace($aDate[0], '-', '/')
        Local $iDateCalc = _DateDiff('s', $aDate[0] & ' ' & $aDate[1], _NowCalc())
        If $iLast_Calc = Default Then $iLast_Calc = $iDateCalc
        If $iDateCalc <= $iLast_Calc Then $iLatest_Index = $iFile
        $iLast_Calc = $iDateCalc
    Next
    Local $aFile_Name = _StringBetween($aFileList[$iLatest_Index], 'class="' & 'name' & '">', '</a>')
    If $iIteration Then
        FileChangeDir($sTemp_Dir)
        Local $sFile_Name = StringStripWS($aFile_Name[0], 7)
        If _WinHttpGet($uTorrent_Portable_SourceForge_URL & '/' & $sFile_Name, True) Then
            Return $sFile_Name
        Else
            Return False
        EndIf
    Else
        Local $sFile_Name = _Download_uTorrent_Portable($uTorrent_Portable_SourceForge_URL & '/' & StringStripWS($aFile_Name[0], 7), True)
        If $sFile_Name Then
            Return $sFile_Name
        Else
            Return False
        EndIf
    EndIf
EndFunc   ;==>_Download_uTorrent_Portable
Func _Configure_uTorrent_Portable($sFile_Name)
    Run($sFile_Name)
    Local $sUTP_Title_Def = "[CLASS:#32770; TITLE:uTorrent Portable]"
    If Not WinWait($sUTP_Title_Def, "", 30) Then Return SetError(1, 0, 0)
    $hUTP = WinGetHandle($sUTP_Title_Def)
    If @error Then Return SetError(2, 0, 0)
    WinActivate($hUTP, "")
    If Not WinWaitActive($hUTP, "", 5) Then Return SetError(3, 0, 0)
    $sUTP_Text = WinGetText($hUTP, "")
    If StringInStr($sUTP_Text, "Please select a language for the installer.") Then
        If Not WinActive($hUTP) Then WinActivate($hUTP, "")
        If Not WinWaitActive($hUTP, "", 5) Then Return SetError(4, 0, 0)
        ControlCommand($hUTP, "", "[CLASS:ComboBox; INSTANCE:1]", "SelectString", "English")
        If @error Then Return SetError(5, 0, 0)
        If Not ControlClick($hUTP, "", "[CLASS:Button; INSTANCE:1]") Then Return SetError(6, 0, 0)
    EndIf
    $sUTP_Title_Def = "[CLASS:#32770; INSTANCE:1; TITLE:uTorrent Portable | PortableApps.com Installer]"
    If Not WinWait($sUTP_Title_Def, "", 10) Then Return SetError(7, 0, 0)
    $hUTP = WinGetHandle($sUTP_Title_Def)
    For $i = 1 To 100 ; 10 seconds
        If WinGetTitle($hUTP, "") <> "uTorrent Portable | PortableApps.com Installer" Then
            Sleep(500)
            If $i = 100 Then Return SetError(8, 0, 0)
            ContinueLoop
        EndIf
        ExitLoop
    Next
    WinActivate($hUTP, "")
    If Not WinWaitActive($hUTP, "", 5) Then Return SetError(9, 0, 0)
    If Not ControlClick($hUTP, "", "[CLASS:Button; INSTANCE:2]") Then Return SetError(10, 0, 0)
    For $i = 1 To 100
        $sText = ControlGetText($hUTP, "", "Button2")
        If $sText <> "I &Agree" Then
            Sleep(100)
            If $i = 100 Then Return SetError(11, 0, 0)
            ContinueLoop
        EndIf
        ExitLoop
    Next
    If Not WinActive($hUTP) Then WinActivate($hUTP, "")
    If Not WinWaitActive($hUTP, "", 5) Then Return SetError(12, 0, 0)
    If Not ControlClick($hUTP, "", "[CLASS:Button; INSTANCE:2]") Then Return SetError(13, 0, 0)
    For $i = 1 To 100
        $sText = ControlGetText($hUTP, "", "Button2")
        If $sText <> "&Install" Then
            Sleep(100)
            If $i = 100 Then Return SetError(14, 0, 0)
            ContinueLoop
        EndIf
        ExitLoop
    Next
    If Not WinActive($hUTP) Then WinActivate($hUTP, "")
    If Not WinWaitActive($hUTP, "", 5) Then Return SetError(15, 0, 0)
    If Not ControlClick($hUTP, "", "[CLASS:Button; INSTANCE:2]") Then Return SetError(16, 0, 0)
    For $i = 1 To 1200 ; 2 min
        $sText = ControlGetText($hUTP, "", "Button2")
        If $sText <> "&Finish" Then
            Sleep(100)
            If $i = 1200 Then Return SetError(17, 0, 0)
            ContinueLoop
        EndIf
        ExitLoop
    Next
    If Not WinActive($hUTP) Then WinActivate($hUTP, "")
    If Not WinWaitActive($hUTP, "", 5) Then Return SetError(18, 0, 0)
    If Not ControlClick($hUTP, "", "[CLASS:Button; INSTANCE:2]") Then Return SetError(19, 0, 0)
EndFunc   ;==>_Configure_uTorrent_Portable
Func _Configure_uTorrent_WebUI()
    FileInstall("Extsettings.dat", $sTemp_Dir & "uTorrentPortableAppuTorrentsettings.dat")
    FileInstall("ExtWebUI.zip", $sTemp_Dir & "uTorrentPortableAppuTorrentWebUI.zip")
EndFunc   ;==>_Configure_uTorrent_WebUI
Func _WinHttpGet($sDownload_URI, $iFileMode = False, $sReferer = Default, $sFile_Name = Default)
    Local $aSplit_URL = _WinHttpCrackUrl($sDownload_URI)
    Local $hOptTime = TimerInit()
    Local $hWinHttpOpen = _WinHttpOpen()
    Local $hWinHttpConnect = _WinHttpConnect($hWinHttpOpen, $aSplit_URL[2])
    Local $hWinHttpRequest = _WinHttpOpenRequest($hWinHttpConnect, "GET", $aSplit_URL[6], Default, $sReferer)
    _WinHttpSendRequest($hWinHttpRequest)
    _WinHttpReceiveResponse($hWinHttpRequest)
    Local $iSizeBytes = _WinHttpQueryHeaders($hWinHttpRequest, $WINHTTP_QUERY_CONTENT_LENGTH)
    If _WinHttpQueryDataAvailable($hWinHttpRequest) Then
        Local $vNTdll = DllOpen("ntdll.dll")
        Local $nSpeedLimit = 1024 * 5000 ; 1024 * Kilobytes per second
        Local $iBytePerStep = 8192
        Local $iBufferSize = 1024 * 1024
        Local $iSleepTime = Round($iBytePerStep / $nSpeedLimit * 1000)
        Local $tPrecSleep = DllStructCreate("int64 time;")
        Local $pPrecSleep = DllStructGetPtr($tPrecSleep)
        If $iFileMode Then
            If $sFile_Name = Default Then $sFile_Name = @WorkingDir & "" & StringTrimLeft($aSplit_URL[6], StringInStr($aSplit_URL[6], "/", 0, -1))
            Local $hFile = _WinAPI_CreateFileEx($sFile_Name, $CREATE_NEW, $GENERIC_WRITE, $FILE_SHARE_READ, $FILE_ATTRIBUTE_NORMAL)
        EndIf
        Local $tBuffer = DllStructCreate("byte[" & $iBufferSize & "]")
        Local $pBuffer = DllStructGetPtr($tBuffer)
        Local $tOverlapped = _GetStruct_Overlapped(0)
        Local $pOverlapped = DllStructGetPtr($tOverlapped)
        Local $iByteWritten = 0
        Local $iOffsetFile = 0
        If $iFileMode Then
            Local $vData = Binary("")
        Else
            Local $vData = ""
        EndIf
        Local $nT = TimerInit()
        Local $iError, $iBufferContent, $iByteWritten
        Do
            $iSleepTemp = ($iSleepTime - TimerDiff($nT))
            If $iSleepTemp > 0 Then
                DllStructSetData($tPrecSleep, "time", -10000 * $iSleepTemp)
                DllCall($vNTdll, "dword", "ZwDelayExecution", "int", 0, "ptr", $pPrecSleep)
            EndIf
            $nT = TimerInit() ; Reset Timer
            If $iFileMode Then
                $vData &= _WinHttpReadData($hWinHttpRequest, 2, $iBytePerStep) ; Get Chunk
            Else
                $vData &= _WinHttpReadData($hWinHttpRequest)
            EndIf
            $iError = @error
            If $iFileMode Then
                $iBufferContent = BinaryLen($vData)
                If $iBufferContent >= $iBufferSize - $iBytePerStep Or $iError = -1 Then
                    _WinAPI_GetOverlappedResult($hFile, $pOverlapped, $iByteWritten, True)
                    DllStructSetData($tBuffer, 1, $vData)
                    $vData = Binary("")
                    $iOffsetFile += $iByteWritten
                    $tOverlapped = _GetStruct_Overlapped($iOffsetFile)
                    $pOverlapped = DllStructGetPtr($tOverlapped)
                    _WinAPI_WriteFile($hFile, $pBuffer, $iBufferContent, $iByteWritten, $pOverlapped)
                EndIf
            EndIf
        Until $iError = -1
        If $iFileMode Then _WinAPI_CloseHandle($hFile)
        DllClose($vNTdll)
        _WinHttpCloseHandle($hWinHttpRequest)
        _WinHttpCloseHandle($hWinHttpConnect)
        _WinHttpCloseHandle($hWinHttpOpen)
        ConsoleWrite(@CRLF & "> Downloaded " & $aSplit_URL[2] & $aSplit_URL[6] & " in " & Round(TimerDiff($hOptTime) / 1000, 2) & _
                " second(s)" & " at " & _ByteSuffix($iSizeBytes / Int(TimerDiff($hOptTime)) * 1000, -1) & "/s" & @CRLF)
        If Not $iFileMode Then
            Return $vData
        Else
            If FileExists($sFile_Name) Then
                Return $sFile_Name
            Else
                Return False
            EndIf
        EndIf
    Else
        Return SetError(1, 0, 0)
    EndIf
EndFunc   ;==>_WinHttpGet
Func _GetStruct_Overlapped($iOffset, $hEvent = 0)
    Local $tOffset = DllStructCreate('int64')
    Local $tOffsetSplit = DllStructCreate('dword;dword', DllStructGetPtr($tOffset))
    DllStructSetData($tOffset, 1, $iOffset)

    $tStruct = DllStructCreate($tagOVERLAPPED)
    DllStructSetData($tStruct, "Internal", 0)
    DllStructSetData($tStruct, "InternalHigh", 0)
    DllStructSetData($tStruct, "Offset", DllStructGetData($tOffsetSplit, 1))
    DllStructSetData($tStruct, "OffsetHigh", DllStructGetData($tOffsetSplit, 2))
    DllStructSetData($tStruct, "hEvent", $hEvent)

    Return $tStruct
EndFunc   ;==>_GetStruct_Overlapped
Func _ByteSuffix($iBytes, $iRound = 2)
    ; UnKnown Author
    Local $A, $aArray[9] = [" B", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"]
    While $iBytes > 1023
        $A += 1
        $iBytes /= 1024
    WEnd
    Return Round($iBytes, $iRound) & $aArray[$A]
EndFunc   ;==>_ByteSuffix
Func _Exit()
    DirRemove($sTemp_Dir, 1)
    Exit
EndFunc   ;==>_Exit

;Opt("WinTitleMatchMode", 3)
;~ Global $7z = "7za.exe"
;~ Global $7z_Extract_Cmd = ' e ', $7z_OutputDir_Cmd = ' -o'
;~ Func _7z_Extract($sFile_Name)
;~ If Not FileExists($7z) Then FileInstall("7za.exe", $7z)
;~ Return RunWait(@ComSpec & ' /k ' & $7z & $7z_Extract_Cmd & $sFile_Name & '-o"' & $sTemp_Dir & 'uTorrentPortable_3.2.0.27636_online.paf' & '"')
;~ EndFunc

I would like to be able to install uTorrent Portable silently.

I know how I should be able to do this. See here but I can't.

I can use 7-Zip to extract the contents but not with the standalone 7za.exe

I think if enough people become interested that we can hack it anyway.

So any ideas?

Edited by Decipher
Spoiler

censored.jpg

 

Link to comment
Share on other sites

If no one else beats me to it. I'll post the solution I worked out for uTorrents (working) and 7-Zip (not working).

The portableappsDownload function isn't working quite right...hmmm :(

Have to fix it anyway as it's part of a bigger project.

If you don't see it in a day or so PM me a reminder. :)

John Morrison

Link to comment
Share on other sites

Interesting

This is the link for portable uTorrent

[color="#0000ff"]<[/color][color="#800000"]a[/color] [color="#ff0000"]title[/color][color="#0000ff"]="Download" [/color][color="#ff0000"]class[/color][color="#0000ff"]="download-link" [/color]
[color="#ff0000"]href[/color][color="#0000ff"]="http://downloads.sourceforge.net/portableapps/uTorrentPortable_3.2.0.27636_online.paf.exe?download">[/color]
[color="#0000ff"]<[/color][color="#800000"]span[/color][color="#0000ff"]>[/color][color="#0000ff"]<[/color][color="#800000"]strong[/color][color="#0000ff"]>[/color]Download 3.2.0.27636[color="#0000ff"]</[/color][color="#800000"]strong[/color][color="#0000ff"]>[/color] [color="#0000ff"]<[/color][color="#800000"]em[/color][color="#0000ff"]>[/color]for Windows, Multilingual[color="#0000ff"]<[/color][color="#800000"]br[/color][color="#0000ff"] />[/color]1MB download / 1MB installed[color="#0000ff"]</[/color][color="#800000"]em[/color][color="#0000ff"]>[/color][color="#0000ff"]</[/color][color="#800000"]span[/color][color="#0000ff"]>[/color]
[color="#0000ff"]</[/color][color="#800000"]a[/color][color="#0000ff"]>[/color]

and this is the link for Portable 7-Zip

[color="#0000ff"]<[/color][color="#800000"]a[/color] 
[color="#ff0000"]href[/color][color="#0000ff"]=[url="http://sourceforge.net/projects/portableapps/files/7-Zip%20Portable/Additional%20Versions/7-ZipPortable_9.20_Rev_2.paf.exe/download"]http://sourceforge.net/projects/portableapps/files/7-Zip%20Portable/Additional%20Versions/7-ZipPortable_9.20_Rev_2.paf.exe/download[/url][/color]
[color="#ff0000"]class[/color][color="#0000ff"]="sourceforge_accelerator_link" [/color][color="#ff0000"]style[/color][color="#0000ff"]="width: 316px; height: 55px; display: inline-block">[/color]
Download 7-Zip Portable
[color="#0000ff"]</[/color][color="#800000"]a[/color][color="#0000ff"]>[/color]

Different...WHY???

Link to comment
Share on other sites

This is the code for the PortableAppsUpdater in NSIS. The reason for the URI difference is because of the reconnaissance I conducted before I read this code.

It won't let me post the code. hmm..

The Source: http://sourceforge.net/projects/portableapps/files/Source%20%28PortableApps.com%20Plat%29/PortableApps.com%20Platform%2010.1%20Source/PortableAppsUpdaterSource10.1.2.7z/download

The Updater is able to run the standalone portable app installers silently.

ExecWait `"$PLUGINSDIR$strCurrentAppDownloadFile" /DESTINATION="$strPortableAppsPath" /AUTOCLOSE=true /HIDEINSTALLER=true /SILENT=true`

However we cannot because of unknown reasons.

This URL is being used in the code above:

http://downloads.sourceforge.net/portableapps

/uTorrentPortable_3.2.0.27636_online.paf.exe

Both work.

http://sourceforge.net/projects/portableapps/files

/uTorrent Portable/uTorrentPortable_3.2.0.27636_online.paf.exe

The uTorrent Portable download function is recursive and was meant only to download the latest uTorrent Portable version from SourceForge. It Reads the uTorrent Project Page's folder modified dates then reads the latest .exe from within the latest folder.

We could modify it to work with all the portable apps but thanks to John T. Haller I think that this is a better solution:

Also from the PAUpdater source: http://portableapps.com/updater/update.ini VIA

;IniRead
;IniReadSection
;IniReadSectionNames

_Get_PortableApp_Info("http://portableapps.com/updater/update.ini")

Func _Get_PortableApp_Info($sIni_URL)
    FileChangeDir($sTemp_Dir)
    Local $sUpdate_ini = _WinHttpGet($sIni_URL, True)
    Local $aPortableAppList = IniReadSectionNames($sUpdate_ini)
    _ArrayDisplay($aPortableAppList)
    Local $iRandom_Section = Random(1, UBound($aPortableAppList, 1) - 1, 1)
    Local $aPortableAppInfo = IniReadSection($sUpdate_ini, $aPortableAppList[$iRandom_Section]) ; Display Random Section.
    _ArrayDisplay($aPortableAppInfo)
    _Exit()
EndFunc   ;==>_Get_PortableApp_Info

The UserAgent is also the same as in the source. This idea is to an online database with the windows program information sorta like the update.ini.

The users could also potentially be the seeders for others to download.

There is project already called winget. I couldn't get it to work.

I love linux's apt-get install :)

or we could just right functions to allow people to download the portable apps and optionally install to their system, creating shortcuts in the startmenu, desktop and quicklaunch.

Just so there is no confusion the link to PA forums page is where I have asked why John Haller has blocked the functionallity with the code present and working with the updater and I'm the author of the Autoit code above. :)

Latest Developments:

#cs ----------------------------------------------------------------------------
    
    AutoIt Version: 3.3.9.4 (beta)
    Author: Decipher
    
    Script Function:
    WinGet - Windows Program Downloader/Installer
    
#ce ----------------------------------------------------------------------------

HttpSetUserAgent("Wget/1.13.4") ; This must stay the same.

#include <String.au3>
#include <Array.au3>
#include <Date.au3>
#include <File.au3>
#include <IncludesWinHTTP.au3>
#include <WinAPIEx.au3>

Global $sTemp_Dir = _TempFile()
DirCreate($sTemp_Dir)

HotKeySet("{ESC}", "_Exit")

Global Const $sPA_Download_URI = "http://downloads.sourceforge.net/portableapps"
Global Const $sPA_DataBase_URI = "http://portableapps.com/updater/update.ini"

_Test_Function("uTorrent") ; not case sensitive
_Test_Function("7-Zip")
_Test_Function("Firefox")
_Test_Function("ThunderBird") ; Test _Download_PortableApp
_Test_Function("Chrome")
_Test_Function("IObit")
_Test_Function("NSIS")
_Test_Function("OpenOffice")

_Exit()


Func _Test_Function($sPA_Name)
    Local $uTorrent_Portable = _Download_PortableApp($sPA_Name)

    If @error Then
        MsgBox(0, "Portable Download Failed!", "Function Error Code: " & @error)
    Else
        MsgBox(0, "Exit Code", RunWait($uTorrent_Portable & " /DESTINATION=" & '"' & @WorkingDir & '"' & " /AUTOCLOSE=true /HIDEINSTALLER=true /SILENT=true"))
        ; The above line should work to run the installer silently but dosen't. We need to hack this people.
    EndIf
EndFunc   ;==>_Test_Function

Func _Download_PortableApp($sPA_Name)
    FileChangeDir($sTemp_Dir) ; Set Download Location
    Local $sPA_DB_INI = _WinHttpGet($sPA_DataBase_URI, True) ; FileName automatically determined as "update.ini"
    If Not $sPA_DB_INI Then Return SetError(1, 0, 0) ; If file wasn't created the return value is False otherwise the full file path is returned.

    Local $aPA_List = IniReadSectionNames($sPA_DB_INI)
    If @error Then Return SetError(2, 0, 0)

    For $iPA = 1 To $aPA_List[0]
        If StringInStr($aPA_List[$iPA], $sPA_Name, 2) Then ExitLoop
        If $iPA = $aPA_List[0] Then Return SetError(3, 0, 0) ; Return if Portable app info wasn't found.
    Next

;~ Local $aPA_Info = IniReadSection($sPA_DB_INI, $aPA_List[$iPA])
;~ If @error Then Return SetError(4, 0, 0)

;~ Local $iRandom_Section = Random(1, $aPA_List[0], 1)
;~ Local $aPA_Info = IniReadSection($sPA_DB_INI, $aPA_List[$iRandom_Section]) ; Display Random Section.
;~ _ArrayDisplay($aPA_Info)

    Local $sPA_Download_File = IniRead($sPA_DB_INI, $aPA_List[$iPA], "DownloadFile", False)
    If Not $sPA_Download_File Then Return SetError(4, 0, 0)

    $sPA_Download_File = _WinHttpGet($sPA_Download_URI & "/" & $sPA_Download_File, True)
    If Not $sPA_Download_File Then Return SetError(5, 0, 0)

    Return $sPA_Download_File
EndFunc   ;==>_Download_PortableApp
Func _WinHttpGet($sDownload_URI, $iFileMode = False, $sReferer = Default, $sFile_Name = Default)
    Local $aSplit_URL = _WinHttpCrackUrl($sDownload_URI)
    Local $hOptTime = TimerInit()
    Local $hWinHttpOpen = _WinHttpOpen()
    Local $hWinHttpConnect = _WinHttpConnect($hWinHttpOpen, $aSplit_URL[2])
    Local $hWinHttpRequest = _WinHttpOpenRequest($hWinHttpConnect, "GET", $aSplit_URL[6], Default, $sReferer)
    _WinHttpSendRequest($hWinHttpRequest)
    _WinHttpReceiveResponse($hWinHttpRequest)
    Local $iSizeBytes = _WinHttpQueryHeaders($hWinHttpRequest, $WINHTTP_QUERY_CONTENT_LENGTH)
    If _WinHttpQueryDataAvailable($hWinHttpRequest) Then
        Local $vNTdll = DllOpen("ntdll.dll")
        Local $nSpeedLimit = 1024 * 5000 ; 1024 * Kilobytes per second
        Local $iBytePerStep = 8192
        Local $iBufferSize = 1024 * 1024
        Local $iSleepTime = Round($iBytePerStep / $nSpeedLimit * 1000)
        Local $tPrecSleep = DllStructCreate("int64 time;")
        Local $pPrecSleep = DllStructGetPtr($tPrecSleep)
        If $iFileMode Then
            If $sFile_Name = Default Then $sFile_Name = @WorkingDir & "" & StringTrimLeft($aSplit_URL[6], StringInStr($aSplit_URL[6], "/", 0, -1))
            Local $hFile = _WinAPI_CreateFileEx($sFile_Name, $CREATE_NEW, $GENERIC_WRITE, $FILE_SHARE_READ, $FILE_ATTRIBUTE_NORMAL)
        EndIf
        Local $tBuffer = DllStructCreate("byte[" & $iBufferSize & "]")
        Local $pBuffer = DllStructGetPtr($tBuffer)
        Local $tOverlapped = _GetStruct_Overlapped(0)
        Local $pOverlapped = DllStructGetPtr($tOverlapped)
        Local $iByteWritten = 0
        Local $iOffsetFile = 0
        If $iFileMode Then
            Local $vData = Binary("")
        Else
            Local $vData = ""
        EndIf
        Local $nT = TimerInit()
        Local $iError, $iBufferContent, $iByteWritten
        Do
            $iSleepTemp = ($iSleepTime - TimerDiff($nT))
            If $iSleepTemp > 0 Then
                DllStructSetData($tPrecSleep, "time", -10000 * $iSleepTemp)
                DllCall($vNTdll, "dword", "ZwDelayExecution", "int", 0, "ptr", $pPrecSleep)
            EndIf
            $nT = TimerInit() ; Reset Timer
            If $iFileMode Then
                $vData &= _WinHttpReadData($hWinHttpRequest, 2, $iBytePerStep) ; Get Chunk
            Else
                $vData &= _WinHttpReadData($hWinHttpRequest)
            EndIf
            $iError = @error
            If $iFileMode Then
                $iBufferContent = BinaryLen($vData)
                If $iBufferContent >= $iBufferSize - $iBytePerStep Or $iError = -1 Then
                    _WinAPI_GetOverlappedResult($hFile, $pOverlapped, $iByteWritten, True)
                    DllStructSetData($tBuffer, 1, $vData)
                    $vData = Binary("")
                    $iOffsetFile += $iByteWritten
                    $tOverlapped = _GetStruct_Overlapped($iOffsetFile)
                    $pOverlapped = DllStructGetPtr($tOverlapped)
                    _WinAPI_WriteFile($hFile, $pBuffer, $iBufferContent, $iByteWritten, $pOverlapped)
                EndIf
            EndIf
        Until $iError = -1
        If $iFileMode Then _WinAPI_CloseHandle($hFile)
        DllClose($vNTdll)
        _WinHttpCloseHandle($hWinHttpRequest)
        _WinHttpCloseHandle($hWinHttpConnect)
        _WinHttpCloseHandle($hWinHttpOpen)
        ConsoleWrite(@CRLF & "> Downloaded " & $aSplit_URL[2] & $aSplit_URL[6] & " in " & Round(TimerDiff($hOptTime) / 1000, 2) & _
                " second(s)" & " at " & _ByteSuffix($iSizeBytes / Int(TimerDiff($hOptTime)) * 1000, -1) & "/s" & @CRLF)
        If Not $iFileMode Then
            Return $vData
        Else
            If FileExists($sFile_Name) Then
                Return $sFile_Name
            Else
                Return False
            EndIf
        EndIf
    Else
        Return SetError(1, 0, 0)
    EndIf
EndFunc   ;==>_WinHttpGet
Func _GetStruct_Overlapped($iOffset, $hEvent = 0)
    Local $tOffset = DllStructCreate('int64')
    Local $tOffsetSplit = DllStructCreate('dword;dword', DllStructGetPtr($tOffset))
    DllStructSetData($tOffset, 1, $iOffset)

    $tStruct = DllStructCreate($tagOVERLAPPED)
    DllStructSetData($tStruct, "Internal", 0)
    DllStructSetData($tStruct, "InternalHigh", 0)
    DllStructSetData($tStruct, "Offset", DllStructGetData($tOffsetSplit, 1))
    DllStructSetData($tStruct, "OffsetHigh", DllStructGetData($tOffsetSplit, 2))
    DllStructSetData($tStruct, "hEvent", $hEvent)

    Return $tStruct
EndFunc   ;==>_GetStruct_Overlapped
Func _ByteSuffix($iBytes, $iRound = 2)
    ; UnKnown Author
    Local $A, $aArray[9] = [" B", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB"]
    While $iBytes > 1023
        $A += 1
        $iBytes /= 1024
    WEnd
    Return Round($iBytes, $iRound) & $aArray[$A]
EndFunc   ;==>_ByteSuffix
Func _Exit()
    DirRemove($sTemp_Dir, 1)
    Exit
EndFunc   ;==>_Exit

When I run the PortableAppsUpdater.exe from explorer I get this message:

The PortableApps.com Updater must be run from the PortableApps.com Platform. It will not function properly when run directly.

I know that someone has to have a idea on how they are checking this. The word SPOOF comes to mind.

*Update - Hacked! It will run when provided with the appropiate command line switches

PortableAppsUpdater.exe /STARTUP=true /MODE=UPDATE

So maybe the updater is passing the installer a hidden switch that has eluded my detection?

I'm going to create a basic autoit script that will run the installers but matches the updaters filename and res information. I'll update this post if successfull.

The updater is digitally signed. The installers undoughtfully are checking to see if its parent process sig match. How can we bypass this.

Authenticode:

// Report generated by PE Explorer 1.99 (www.heaventools.com)

// File name: C:Documents and SettingsOwnerMy DocumentsDownloadsPortableAppsPortableApps.comPortableAppsUpdater.exe

// Created : 07.08.2012 13:46

// Type : Digital Authenticode Signature Information

//****************************************************************************

//Authenticode Signature

This digital signature is OK.

Digest Algorithm = SHA1

Link Checksum = 0003A7BD

Real Checksum = 0003A7BD

Signed File Hash = CF 65 B9 B2 05 4C 75 02 69 D6 E6 B8 34 A1 12 12 84 C5 70 A3

Real File Hash = CF 65 B9 B2 05 4C 75 02 69 D6 E6 B8 34 A1 12 12 84 C5 70 A3

//****************************************************************************

//****************************************************************************

//Signature Details

//----------------------------------------------------------------------------

//Item 0 (Rare Ideas, LLC)

This digital signature is OK.

Name of Signer = Rare Ideas, LLC

Email Address = Not available

Signing Time = 6/15/2012 2:16:43 PM

Version = 2

Issuer = Country = GB

State or Province = Greater Manchester

Locality = Salford

Organization = COMODO CA Limited

Common Name = COMODO Code Signing CA 2

Serial Number = 00 93 2F C9 AF 0E FA 79 D8 A3 F7 71 68 1F E2 03

34

Digest Algorithm = SHA1 (2B 0E 03 02 1A)

Digest Encryption Algorithm = RSA (2A 86 48 86 F7 0D 01 01 01)

Authenticated Attributes:

1.3.6.1.4.1.311.2.1.12 = 30 00

Content Type = 06 0A 2B 06 01 04 01 82 37 02 01 04

1.3.6.1.4.1.311.2.1.11 = 30 0C 06 0A 2B 06 01 04 01 82 37 02 01 15

Message Digest = 04 14 FF DF 5E 10 43 30 46 11 A5 3E F4 E3 2E C9

BE 19 4C FA 6E 6E

Unauthenticated Attributes:

Counter Signature = 30 82 01 68 02 01 01 30 67 30 53 31 0B 30 09 06

03 55 04 06 13 02 55 53 31 17 30 15 06 03 55 04

0A 13 0E 56 65 72 69 53 69 67 6E 2C 20 49 6E 63

2E 31 2B 30 29 06 03 55 04 03 13 22 56 65 72 69

53 69 67 6E 20 54 69 6D 65 20 53 74 61 6D 70 69

6E 67 20 53 65 72 76 69 63 65 73 20 43 41 02 10

79 A2 A5 85 F9 D1 15 42 13 D9 B8 3E F6 B6 8D ED

30 09 06 05 2B 0E 03 02 1A 05 00 A0 5D 30 18 06

09 2A 86 48 86 F7 0D 01 09 03 31 0B 06 09 2A 86

48 86 F7 0D 01 07 01 30 1C 06 09 2A 86 48 86 F7

0D 01 09 05 31 0F 17 0D 31 32 30 36 31 35 31 34

31 36 34 33 5A 30 23 06 09 2A 86 48 86 F7 0D 01

09 04 31 16 04 14 27 8E E7 CE A7 54 D0 F3 62 F9

2E 24 8B D1 51 39 CF 61 DB 61 30 0D 06 09 2A 86

48 86 F7 0D 01 01 01 05 00 04 81 80 14 88 25 07

38 99 D4 38 CC 14 90 C0 BB 95 6B EE 40 C4 60 18

C1 52 C8 17 CB F7 0D 9A 3A A4 1D 06 49 87 9C 62

53 95 A5 64 81 91 93 C4 12 31 F5 FC FA D3 41 70

D6 E9 25 7E 6B D0 F4 C4 AB 8E 0D 9F ED 4F 5B 56

4D AF D4 BC 8F 13 54 D4 BC 26 40 BF CC 1C 81 00

15 34 95 2A 70 FD B9 09 B8 C6 3A 32 0A 03 AE A1

20 AE 32 C4 34 2B C9 F0 45 5E 36 F9 6C 99 DC AA

1F 42 6B 2C 96 CB 10 BE E7 BA AA D1

//****************************************************************************

//****************************************************************************

//Certificate Details

//----------------------------------------------------------------------------

//Item 0 (Rare Ideas, LLC)

Version = 3

Issued by = COMODO Code Signing CA 2

Issued to = Rare Ideas, LLC

Valid from = 2/16/2012

Valid to = 2/15/2013 11:59:59 PM

Issued to:

Country = US

State or Province = NY

Locality = New York

Organization = Rare Ideas, LLC

Common Name = Rare Ideas, LLC

Issued by:

Country = GB

State or Province = Greater Manchester

Locality = Salford

Organization = COMODO CA Limited

Common Name = COMODO Code Signing CA 2

Serial Number = 00 93 2F C9 AF 0E FA 79 D8 A3 F7 71 68 1F E2 03

34

Signature Algorithm = SHA1 with RSA

Issuer = Country = GB

State or Province = Greater Manchester

Locality = Salford

Organization = COMODO CA Limited

Common Name = COMODO Code Signing CA 2

Valid from = 2/16/2012

Valid to = 2/15/2013 11:59:59 PM

Subject = Country = US

Postal Code = 10009

State or Province = NY

Locality = New York

Street Address = PO Box 227

Organization = Rare Ideas, LLC

Common Name = Rare Ideas, LLC

Size = 1308

Signature = A8 06 EC 6E 2C CE D8 83 AD AE 80 9A F0 D8 92 4F

76 19 8D 95 5A CE 4F BA 84 47 A5 A0 31 01 BA C8

B5 98 9B 2B D6 4F 3E 28 93 77 FF 3F 8C 7F 12 F0

C0 6A DA 5D E3 5B 14 AD 02 9D 72 7F 3B BE BE F5

28 C3 F2 20 7B 2C CF B5 D6 50 8E 2F D8 91 0A BE

26 90 08 03 48 ED 12 7E 61 FE E5 59 E3 FD 4D 9F

70 99 2B 3B 35 8C 36 F6 F6 4D 3C 37 EE 25 5D CE

F4 77 06 B5 85 4D 67 76 D3 B4 39 32 F1 E0 6F DE

B4 81 56 A3 A4 D5 A5 D1 21 74 D6 06 BD 30 DE 7F

7B 00 B8 14 FB A3 9C 71 1A 83 E7 2A 42 9C 20 60

EE 23 4B FE 9A D3 A9 28 FE 67 CC 28 A1 EC BF 00

4A 99 60 EA CC 34 F3 4E 71 E6 61 4B 7D 2F 9C 02

63 D0 90 95 EB 27 56 82 76 CD EA CE 56 22 86 EC

EA F0 C1 B3 BE 54 0C CB 1D C2 E7 48 D7 B4 B4 A4

AB 9E 2F 77 76 AF 31 3E 56 50 37 FB C7 1D CF 95

E5 24 7F 69 F9 94 23 C6 A9 00 5B 0F B4 72 C6 25

Self signed = False

Public key = RSA (2056)

RSA Modulus = 00 A2 9C F3 27 42 13 D3 7C 79 01 4F 9D B6 A5 2F

1F 48 E1 7C 6A 06 36 BC 30 8D E8 14 27 6F B4 E7

6D 8F 92 2D 0C 18 7C 83 36 2B 34 47 03 D9 7B 06

93 4F BB 26 09 B0 55 57 7A 3D 84 0D 05 27 52 6C

5E B1 59 EF 5A 4E 1C 07 02 DA 07 12 00 68 0E F4

C1 14 E2 D1 E4 35 85 7F A5 D9 2C 9F 2A F1 18 05

DE 69 30 77 2E D7 E8 17 B8 B7 93 50 61 07 10 58

23 E4 83 DF 4F FC 87 AB 57 64 B8 E6 71 6A 70 5A

4C D8 6F 81 F1 8E 85 4E F2 EE 1C EC ED 53 76 5B

1A DF AA 0A AF F8 8D 38 8A 7C 49 5F E3 25 F2 9D

DD 85 67 22 04 D1 AF BC A0 FA 95 59 00 8B 3B E1

12 01 B7 1B 10 4D 38 F0 5A B0 76 41 F4 9B 28 E5

A2 34 D4 71 FB 3B 6B 05 B6 E2 DF B4 71 1E B0 BC

1E C4 19 95 0C 89 36 4C 01 D2 5F 41 8E 9B 93 DB

4D B5 D0 DD B6 D0 90 51 F2 DF 33 E7 36 1A 85 5D

D0 DB AE 42 FD AB 6F EF 31 4B 3E E4 81 D4 BF D4

05

RSA Public Key = 01 00 01

Authority Information Access = Access Method=1.3.6.1.5.5.7.48.2, 1.3.6.1.5.5.7.48.1

Access Location.URI=http://crt.comodoca.com/COMODOCodeSigningCA2.crt

, http://ocsp.comodoca.com

Authority Key Identifier = Key Identifier=1E C5 B1 2C 7D 87 DA 02 68 7C 25 BC 0C 07 84 3F B6 CF DE F1

Basic constraints = 30 00

Certificate Policies = CPS URI=https://secure.comodo.net/CPS

Policy Identifier=2B 06 01 04 01 B2 31 01 02 01 03 02

Explicit Text=

CRL Distribution Points = Name.URI=http://crl.comodoca.com/COMODOCodeSigningCA2.crl

Reason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA Compromise

Extended key usage = Code signing, Custom Usage : 0

Key usage = Digital signature

Netscape Cert Type = Object Signing

Subject Key Identifier = F6 3D 33 B4 22 0E 39 87 0B BC 67 DE C1 C9 60 EF 67 37 7E B2

//----------------------------------------------------------------------------

//Item 1 (COMODO Code Signing CA 2)

Version = 3

Issued by = UTN-USERFirst-Object

Issued to = COMODO Code Signing CA 2

Valid from = 8/24/2011

Valid to = 5/30/2020 10:48:38 AM

Issued to:

Country = GB

State or Province = Greater Manchester

Locality = Salford

Organization = COMODO CA Limited

Common Name = COMODO Code Signing CA 2

Issued by:

Country = US

State or Province = UT

Locality = Salt Lake City

Organization = The USERTRUST Network

Organization Unit = http://www.usertrust.com

Common Name = UTN-USERFirst-Object

Serial Number = 10 70 9D 4F F5 54 08 D7 30 60 01 D8 EA 91 75 BB

Signature Algorithm = SHA1 with RSA

Issuer = Country = US

State or Province = UT

Locality = Salt Lake City

Organization = The USERTRUST Network

Organization Unit = http://www.usertrust.com

Common Name = UTN-USERFirst-Object

Valid from = 8/24/2011

Valid to = 5/30/2020 10:48:38 AM

Subject = Country = GB

State or Province = Greater Manchester

Locality = Salford

Organization = COMODO CA Limited

Common Name = COMODO Code Signing CA 2

Size = 1259

Signature = 95 89 77 93 68 01 5E 7C D9 2D 37 07 90 5D 5A 42

5E 0C 64 B4 36 B5 0F F6 AB D5 39 27 DE 22 46 A4

49 1C 66 4B 46 19 59 2E 79 49 03 F6 9C 92 DF 6D

50 35 5C 0C 91 2E 60 03 59 D0 F1 64 F7 69 09 F6

7E FE EB 34 B3 6D B1 BF 66 9C A3 BA 31 78 B9 87

35 61 3D 92 31 1B EF F4 E8 9E D6 AC 45 FA 0C 36

3C 80 67 BB BD EF 2E C2 90 E1 3D 71 2F 3B C1 B0

58 7E 45 C3 52 71 03 07 F6 F3 39 4D 8B 36 21 1B

01 DF D9 DA 5E 2B EB 0E 97 80 1E 44 1C 50 88 F5

C6 12 33 4A A8 4D A5 8D 2F 94 0C 7B C6 BF 9A 2C

C3 32 CD BD 8C 27 26 F0 E1 30 03 50 06 82 BC F4

3B B3 83 75 06 C6 EF BA EE D3 80 F8 52 C6 AC CB

79 F2 38 9E 7B B0 92 58 42 91 05 C8 96 21 AD B9

4B 16 81 14 69 F1 37 B0 FE 34 F7 DC B0 DF 97 F5

43 10 9B 76 8F B4 65 F5 E8 9F 13 B7 1E AC 6F C4

69 8A 5F BA 3C 61 7E 5E 49 86 23 13 2E AF 15 48

Self signed = False

Public key = RSA (2056)

RSA Modulus = 00 CB F8 E7 A7 E8 F1 97 28 40 68 80 37 D2 C8 3F

8E 92 8A 92 37 87 47 80 EA 4C 99 CF 6E F9 15 47

BD EE 75 F4 44 AC D0 C3 D4 4D F7 19 C0 D3 3C 4D

C1 47 B9 59 65 16 93 8C D9 0A 84 9B 9F E8 F6 6A

63 58 FE 5F DC D1 7F 4B 51 9F 00 1C 00 87 54 20

07 57 A0 82 C9 2F 98 AF 33 8A BB 7B 80 22 25 6A

6C AF C2 2C 6C 79 13 BD A3 2A 48 D6 B5 8E 61 55

E9 6B E8 3D 80 BF 14 03 85 18 8E 7E 4C E9 C2 19

88 73 92 72 CD FA FF 50 4D CB 2C A6 7B 1A 73 B1

00 90 2C D9 32 E2 FB FD AC 95 42 36 EC 34 C5 13

53 68 B2 C1 9F 40 9F DA 7B C8 9D 62 6C 93 A2 42

D7 79 9F 97 4F 31 5B 50 21 A1 AB AF D9 1C B2 CE

75 BE 5B 2C 56 00 24 8D 11 C1 75 1F F0 FE D2 95

FE F0 E1 31 23 18 67 C0 5B 13 FD 5A 98 94 94 FF

FF 59 02 1F 00 AC E6 F1 F2 FA 3A 73 B3 1D 42 FC

54 75 CF 51 31 2F E3 DB 81 D9 77 23 2A 4F 59 CE

23

RSA Public Key = 01 00 01

Authority Information Access = Access Method=1.3.6.1.5.5.7.48.2, 1.3.6.1.5.5.7.48.1

Access Location.URI=http://crt.usertrust.com/UTNAddTrustObject_CA.crt

, http://ocsp.usertrust.com

Authority Key Identifier = Key Identifier=DA ED 64 74 14 9C 14 3C AB DD 99 A9 BD 5B 28 4D 8B 3C C9 D8

Basic constraints = Subject Type=CA, Path length constraint=0

Certificate Policies = Policy Identifier=55 1D 20 00

Explicit Text=

CRL Distribution Points = Name.URI=http://crl.usertrust.com/UTN-USERFirst-Object.crl

Reason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA Compromise

Extended key usage = Code signing, Custom Usage : 0

Key usage = Certificate signing, CRL signing

Subject Key Identifier = 1E C5 B1 2C 7D 87 DA 02 68 7C 25 BC 0C 07 84 3F B6 CF DE F1

//----------------------------------------------------------------------------

//Item 2 (UTN-USERFirst-Object)

Version = 3

Issued by = AddTrust External CA Root

Issued to = UTN-USERFirst-Object

Valid from = 6/7/2005 8:09:10 AM

Valid to = 5/30/2020 10:48:38 AM

Issued to:

Country = US

State or Province = UT

Locality = Salt Lake City

Organization = The USERTRUST Network

Organization Unit = http://www.usertrust.com

Common Name = UTN-USERFirst-Object

Issued by:

Country = SE

Organization = AddTrust AB

Organization Unit = AddTrust External TTP Network

Common Name = AddTrust External CA Root

Serial Number = 42 1A F2 94 09 84 19 1F 52 0A 4B C6 24 26 A7 4B

Signature Algorithm = SHA1 with RSA

Issuer = Country = SE

Organization = AddTrust AB

Organization Unit = AddTrust External TTP Network

Common Name = AddTrust External CA Root

Valid from = 6/7/2005 8:09:10 AM

Valid to = 5/30/2020 10:48:38 AM

Subject = Country = US

State or Province = UT

Locality = Salt Lake City

Organization = The USERTRUST Network

Organization Unit = http://www.usertrust.com

Common Name = UTN-USERFirst-Object

Size = 1160

Signature = 4D 42 2F A6 C1 8A EB 07 80 90 58 46 8C F8 19 39

66 2A 3C 5A 2C 6D CF D4 D9 87 55 8D 79 0B 12 88

7B 40 8F D5 C7 F8 4B 8D 55 16 63 AD B7 57 DC 3B

2B BD D3 C1 4F 1E 03 87 4B 44 9B E3 E2 40 45 26

F3 26 49 2B 6A 84 F1 54 7A D4 42 DA FC D3 6A BB

66 7E CA 9E EA E9 BB DC 07 C7 C3 92 4E 83 3C 81

49 9F 92 D5 32 09 EA 49 2E A1 11 71 9A 36 D2 C5

4E 68 B6 CB 0E 1B 25 16 AF 6C DE 5D 76 D8 1F 72

B1 93 26 86 17 DB 18 DE AF 45 E9 DF FB 98 AF 14

18 ED A4 5E F6 89 94 45 F0 55 04 4A DD FF 27 DD

06 4A 40 F6 B4 BC F1 E4 0F 99 02 BB FD 5D 0E 2E

28 C1 BE 3B 5F 1A 3F 97 10 84 BC 16 3E D8 A3 9C

63 1D 66 CB 5C 5F DA 3E F3 0F 0A 09 35 22 DB DB

C0 3F 00 F9 E6 0D 5D 67 D1 FD A0 1E 03 2B D9 40

F7 BE CC 87 66 54 80 A6 A3 B8 F5 19 62 D5 D2 26

B1 98 26 EE 9A CB 44 A7 45 5A 81 95 15 1A F5 51

Self signed = False

Public key = RSA (2056)

RSA Modulus = 00 CE AA 81 3F A3 A3 61 78 AA 31 00 55 95 11 9E

27 0F 1F 1C DF 3A 9B 82 68 30 C0 4A 61 1D F1 2F

0E FA BE 79 F7 A5 23 EF 55 51 96 84 CD DB E3 B9

6E 3E 31 D8 0A 20 67 C7 F4 D9 BF 94 EB 47 04 3E

02 CE 2A A2 5D 87 04 09 F6 30 9D 18 8A 97 B2 AA

1C FC 41 D2 A1 36 CB FB 3D 91 BA E7 D9 70 35 FA

E4 E7 90 C3 9B A3 9B D3 3C F5 12 99 77 B1 B7 09

E0 68 E6 1C B8 F3 94 63 88 6A 6A FE 0B 76 C9 BE

F4 22 E4 67 B9 AB 1A 5E 77 C1 85 07 DD 0D 6C BF

EE 06 C7 77 6A 41 9E A7 0F D7 FB EE 94 17 B7 FC

85 BE A4 AB C4 1C 31 DD D7 B6 D1 E4 F0 EF DF 16

8F B2 52 93 D7 A1 D4 89 A1 07 2E BF E1 01 12 42

1E 1A E1 D8 95 34 DB 64 79 28 FF BA 2E 11 C2 E5

E8 5B 92 48 FB 47 0B C2 6C DA AD 32 83 41 F3 A5

E5 41 70 FD 65 90 6D FA FA 51 C4 F9 BD 96 2B 19

04 2C D3 6D A7 DC F0 7F 6F 83 65 E2 6A AB 87 86

75

RSA Public Key = 01 00 01

Authority Information Access = Access Method=1.3.6.1.5.5.7.48.1

Access Location.URI=http://ocsp.usertrust.com

Authority Key Identifier = Key Identifier=AD BD 98 7A 34 B4 26 F7 FA C4 26 54 EF 03 BD E0 24 CB 54 1A

Basic constraints = Subject Type=CA, Path length constraint=-1

Certificate Policies = Policy Identifier=55 1D 20 00

Explicit Text=

CRL Distribution Points = Name.URI=http://crl.usertrust.com/AddTrustExternalCARoot.crl

Reason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA Compromise

Key usage = Certificate signing, CRL signing

Subject Key Identifier = DA ED 64 74 14 9C 14 3C AB DD 99 A9 BD 5B 28 4D 8B 3C C9 D8

//----------------------------------------------------------------------------

//Item 3 (VeriSign Time Stamping Services CA)

Version = 3

Issued by = Thawte Timestamping CA

Issued to = VeriSign Time Stamping Services CA

Valid from = 12/4/2003

Valid to = 12/3/2013 11:59:59 PM

Issued to:

Country = US

Organization = VeriSign, Inc.

Common Name = VeriSign Time Stamping Services CA

Issued by:

Country = ZA

State or Province = Western Cape

Locality = Durbanville

Organization = Thawte

Organization Unit = Thawte Certification

Common Name = Thawte Timestamping CA

Serial Number = 47 BF 19 95 DF 8D 52 46 43 F7 DB 6D 48 0D 31 A4

Signature Algorithm = SHA1 with RSA

Issuer = Country = ZA

State or Province = Western Cape

Locality = Durbanville

Organization = Thawte

Organization Unit = Thawte Certification

Common Name = Thawte Timestamping CA

Valid from = 12/4/2003

Valid to = 12/3/2013 11:59:59 PM

Subject = Country = US

Organization = VeriSign, Inc.

Common Name = VeriSign Time Stamping Services CA

Size = 968

Signature = 4A 6B F9 EA 58 C2 44 1C 31 89 79 99 2B 96 BF 82

AC 01 D6 1C 4C CD B0 8A 58 6E DF 08 29 A3 5E C8

CA 93 13 E7 04 52 0D EF 47 27 2F 00 38 B0 E4 C9

93 4E 9A D4 22 62 15 F7 3F 37 21 4F 70 31 80 F1

8B 38 87 B3 E8 E8 97 00 FE CF 55 96 4E 24 D2 A9

27 4E 7A AE B7 61 41 F3 2A CE E7 C9 D9 5E DD BB

2B 85 3E B5 9D B5 D9 E1 57 FF BE B4 C5 7E F5 CF

0C 9E F0 97 FE 2B D3 3B 52 1B 1B 38 27 F7 3F 4A

Self signed = False

Public key = RSA (2056)

RSA Modulus = 00 A9 CA B2 A4 CC CD 20 AF 0A 7D 89 AC 87 75 F0

B4 4E F1 DF C1 0F BF 67 61 BD A3 64 1C DA BB F9

CA 33 AB 84 30 89 58 7E 8C DB 6B DD 36 9E 0F BF

D1 EC 78 F2 77 A6 7E 6F 3C BF 93 AF 0D BA 68 F4

6C 94 CA BD 52 2D AB 48 3D F5 B6 D5 5D 5F 1B 02

9F FA 2F 6B 1E A4 F7 A3 9A A6 1A C8 02 E1 7F 4C

52 E3 0E 60 EC 40 1C 7E B9 0D DE 3F C7 B4 DF 87

BD 5F 7A 6A 31 2E 03 99 81 13 A8 47 20 CE 31 73

0D 57 2D CD 78 34 33 95 12 99 12 B9 DE 68 2F AA

E6 E3 C2 8A 8C 2A C3 8B 21 87 66 BD 83 58 57 6F

75 BF 3C AA 26 87 5D CA 10 15 3C 9F 84 EA 54 C1

0A 6E C4 FE C5 4A DD B9 07 11 97 22 7C DB 3E 27

D1 1E 78 EC 9F 31 C9 F1 E6 22 19 DB C4 B3 47 43

9A 1A 5F A0 1E 90 E4 5E F5 EE 7C F1 7D AB 62 01

8F F5 4D 0B DE D0 22 56 A8 95 CD AE 88 76 AE EE

BA 0D F3 E4 4D D9 A0 FB 68 A0 AE 14 3B B3 87 C1

BB

RSA Public Key = 01 00 01

Authority Information Access = Access Method=1.3.6.1.5.5.7.48.1

Access Location.URI=http://ocsp.verisign.com

Basic constraints = Subject Type=CA, Path length constraint=0

CRL Distribution Points = Name.URI=http://crl.verisign.com/ThawteTimestampingCA.crl

Reason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA Compromise

Extended key usage = Time stamping, Custom Usage : 0

Key usage = Certificate signing, CRL signing

Subject Alternative Name = Directory Name=Common Name = TSA2048-1-53

//----------------------------------------------------------------------------

//Item 4 (Symantec Time Stamping Services Signer - G3)

Version = 3

Issued by = VeriSign Time Stamping Services CA

Issued to = Symantec Time Stamping Services Signer - G3

Valid from = 5/1/2012

Valid to = 12/31/2012 11:59:59 PM

Issued to:

Country = US

Organization = Symantec Corporation

Common Name = Symantec Time Stamping Services Signer - G3

Issued by:

Country = US

Organization = VeriSign, Inc.

Common Name = VeriSign Time Stamping Services CA

Serial Number = 79 A2 A5 85 F9 D1 15 42 13 D9 B8 3E F6 B6 8D ED

Signature Algorithm = SHA1 with RSA

Issuer = Country = US

Organization = VeriSign, Inc.

Common Name = VeriSign Time Stamping Services CA

Valid from = 5/1/2012

Valid to = 12/31/2012 11:59:59 PM

Subject = Country = US

Organization = Symantec Corporation

Common Name = Symantec Time Stamping Services Signer - G3

Size = 931

Signature = 1E 98 AA 27 B7 78 B5 08 B5 C9 72 6D B7 DF C0 0E

98 A6 35 C4 88 C9 D2 F6 6D F1 4B 1A FB D5 F9 2D

99 00 9E D1 E7 9B 8B E1 3F BD 39 80 0C 66 CD 07

BC 5C 98 54 A6 94 BA 10 D1 4E 8B AB F5 6F 65 CC

67 09 A2 80 7C 52 E8 0E 03 D6 6B 7A C6 05 18 EC

C8 AC 42 7C 07 2C A7 3D 08 66 DC 00 ED FD 94 1D

73 F2 72 98 93 B1 11 D6 8F EF 8E EA AC F4 96 51

0C D0 8D DF 31 52 4F 5E AF 7D A7 4A 75 E6 4E CE

2B 9F 29 2B E7 CF 5D 9F 03 7E 6E 27 7B 23 AD 62

29 66 AF 92 E8 2C CE BD 9C 7F DC CD 17 3C 43 C2

09 3F 75 45 C7 9E E4 D7 60 7F 97 C6 E4 AA C7 69

F5 FC CD 74 AC 2C B0 48 C1 50 4E 70 56 1E B5 35

D3 8E BE B1 ED AC BD FE 0C EC 85 7D D5 BB 85 66

44 19 5D 9F 93 EB 82 BA 63 9E D3 7C 61 FF C8 1B

D9 23 58 7F 30 A3 66 A1 39 26 5E 92 C3 3C CB 37

32 FA F5 A3 8D DC D5 B0 A3 E9 25 36 55 D7 81 FA

Self signed = False

Public key = RSA (1032)

RSA Modulus = 00 A9 59 66 74 DA 3D 8A 7D 7A D8 FC F5 80 44 7B

FE 47 6A 14 55 4E 50 47 0B EC D3 ED CE F6 38 F7

4F 69 B9 B1 F0 B6 78 82 0A 8C 76 16 67 E2 02 AD

B7 0D A5 8A F6 03 FC 66 D3 FC 08 2D CC B5 73 59

7B 89 DC 33 6E 66 5A 5E 52 37 B4 62 D1 92 59 35

14 8B 45 AC 59 B2 4D 24 A2 98 94 68 42 72 9F 3A

68 E2 6B 8B 9E 22 2D F4 98 4E 9A C6 AF B3 E4 A0

AB 3C 28 BF 23 E1 D7 72 A4 F2 10 53 67 AE 77 AF

51

RSA Public Key = 01 00 01

Authority Information Access = Access Method=1.3.6.1.5.5.7.48.1

Access Location.URI=http://ocsp.verisign.com

Basic constraints = 30 00

CRL Distribution Points = Name.URI=http://crl.verisign.com/tss-ca.crl

Reason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA Compromise

Extended key usage = Time stamping, Custom Usage : 0

Key usage = Digital signature

Subject Alternative Name = Directory Name=Common Name = TSA1-3

Subject Key Identifier = B4 B7 F1 89 49 26 60 E7 65 EA 73 AE DC D3 38 CD BF 57 92 6F

//****************************************************************************

Get SignTool.exe http://www.lindersoft.com/forums/showthread.php?t=19327

I lack the experience of following through with this but here is some information on application digital sigining.

Howto: Add a Digital Signature to Executables

The idea was to create an Autoit EXE that matches the updater but hollow only used to launch the installers with command line switches for silent install. This would require probally 3-4 lines of code not counting the file res information. Compile then sign with a copied sig that way the extemely small executable could be file installed into the main script. If anyone wants to go that route. :)

How can I extract the contents of the installer without using a full 7zip installation?

Edited by Decipher
Spoiler

censored.jpg

 

Link to comment
Share on other sites

How can I extract the contents of the installer without using a full 7zip installation?

http://www.rarlab.com/rar/unrar38b.zip

A command line dos based standalone extract tool which could replace the need for 7zip which if used in the context of "unrar.exe -bla bla variables" may meet your needs; however, most of what youve done is above my head as im too far removed from this stuff! :)

Edited by Paulypaul
Link to comment
Share on other sites

http://www.rarlab.com/rar/unrar38b.zip

A command line dos based standalone extract tool which could replace the need for 7zip which if used in the context of "unrar.exe -bla bla variables" may meet your needs; however, most of what youve done is above my head as im too far removed from this stuff! :)

Thanks but no dice.

C:DOCUME~1OwnerMYDOCU~1DOWNLO~1unrar38b>unrar e uTorrentPortable_3.2.0.2763

6_online.paf.exe

UNRAR 3.80 freeware Copyright © 1993-2008 Alexander Roshal

Cannot open uTorrentPortable_3.2.0.27636_online.paf.exe

Permission denied (EACCES)

No files to extract

7za.exe the standalone CLI based version of 7Zip dosen't work either.

Edited by Decipher
Spoiler

censored.jpg

 

Link to comment
Share on other sites

@ storme

I see that you are interested in creating a sourceforge program downloader. Is there currently a forum page for this? I'll help if needed. What about a script that can download from multiple locations such as filehippo, sourceforge, download.com, softpedia, dev managed torrent database using utorrent portable and other depending on the mirrors selected by users? I think that it would be a worthy project. :)

*Edit I just finished reading your topic. Great Work! I'll finish the PA download functions if they suit your universal downloader.

I'm leaving this topic there is a very similiar topic here:

Edited by Decipher
Spoiler

censored.jpg

 

Link to comment
Share on other sites

I've thought of a universal downloader but then I look at the maintenance side get scared an run away sceaming. :)

The fileHippo downloader has had a few updates when the web site has changed.

BUT it looks like I may have to bite the bullet and collect all the various pieces together into one thread.

Thanks for the PortableApps download... I dont' like it of course because it's better than mine ::) THANKS!

I'll start a new thread for a MultiSiteDownloader...First thoughts are A very small UDF with one "func" that then includes the other UDFs for the particular site download. That way if someone only uses one site they can avoid having to have all that extra code.

Anyway enough if this here I'll start a new thread.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...