Decipher Posted August 7, 2012 Posted August 7, 2012 (edited) Heres some code to look at.expandcollapse popup#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' & '"') ;~ EndFuncI 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.exeI think if enough people become interested that we can hack it anyway.So any ideas? Edited August 8, 2012 by Decipher Spoiler Â
storme Posted August 7, 2012 Posted August 7, 2012 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 Some of my small contributions to AutoIt Browse for Folder Dialog - Automation SysTreeView32 | FileHippo Download and/or retrieve program information | Get installedpath from uninstall key in registry | RoboCopy function John Morrison aka Storm-E
storme Posted August 7, 2012 Posted August 7, 2012 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??? Some of my small contributions to AutoIt Browse for Folder Dialog - Automation SysTreeView32 | FileHippo Download and/or retrieve program information | Get installedpath from uninstall key in registry | RoboCopy function John Morrison aka Storm-E
storme Posted August 7, 2012 Posted August 7, 2012 Sight forum software was tooo helpfull.... anyway I think you can get the idea.... Some of my small contributions to AutoIt Browse for Folder Dialog - Automation SysTreeView32 | FileHippo Download and/or retrieve program information | Get installedpath from uninstall key in registry | RoboCopy function John Morrison aka Storm-E
Decipher Posted August 7, 2012 Author Posted August 7, 2012 (edited) 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/downloadThe 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.exeBoth work.http://sourceforge.net/projects/portableapps/files/uTorrent Portable/uTorrentPortable_3.2.0.27636_online.paf.exeThe 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_InfoThe 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:expandcollapse popup#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 ;==>_ExitWhen 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 switchesPortableAppsUpdater.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 SignatureThis digital signature is OK.Digest Algorithm = SHA1Link Checksum = 0003A7BDReal Checksum = 0003A7BDSigned File Hash = CF 65 B9 B2 05 4C 75 02 69 D6 E6 B8 34 A1 12 12 84 C5 70 A3Real 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, LLCEmail Address = Not availableSigning Time = 6/15/2012 2:16:43 PMVersion = 2Issuer = Country = GBState or Province = Greater ManchesterLocality = SalfordOrganization = COMODO CA LimitedCommon Name = COMODO Code Signing CA 2Serial Number = 00 93 2F C9 AF 0E FA 79 D8 A3 F7 71 68 1F E2 0334Digest 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 00Content Type = 06 0A 2B 06 01 04 01 82 37 02 01 041.3.6.1.4.1.311.2.1.11 = 30 0C 06 0A 2B 06 01 04 01 82 37 02 01 15Message Digest = 04 14 FF DF 5E 10 43 30 46 11 A5 3E F4 E3 2E C9BE 19 4C FA 6E 6EUnauthenticated Attributes:Counter Signature = 30 82 01 68 02 01 01 30 67 30 53 31 0B 30 09 0603 55 04 06 13 02 55 53 31 17 30 15 06 03 55 040A 13 0E 56 65 72 69 53 69 67 6E 2C 20 49 6E 632E 31 2B 30 29 06 03 55 04 03 13 22 56 65 72 6953 69 67 6E 20 54 69 6D 65 20 53 74 61 6D 70 696E 67 20 53 65 72 76 69 63 65 73 20 43 41 02 1079 A2 A5 85 F9 D1 15 42 13 D9 B8 3E F6 B6 8D ED30 09 06 05 2B 0E 03 02 1A 05 00 A0 5D 30 18 0609 2A 86 48 86 F7 0D 01 09 03 31 0B 06 09 2A 8648 86 F7 0D 01 07 01 30 1C 06 09 2A 86 48 86 F70D 01 09 05 31 0F 17 0D 31 32 30 36 31 35 31 3431 36 34 33 5A 30 23 06 09 2A 86 48 86 F7 0D 0109 04 31 16 04 14 27 8E E7 CE A7 54 D0 F3 62 F92E 24 8B D1 51 39 CF 61 DB 61 30 0D 06 09 2A 8648 86 F7 0D 01 01 01 05 00 04 81 80 14 88 25 0738 99 D4 38 CC 14 90 C0 BB 95 6B EE 40 C4 60 18C1 52 C8 17 CB F7 0D 9A 3A A4 1D 06 49 87 9C 6253 95 A5 64 81 91 93 C4 12 31 F5 FC FA D3 41 70D6 E9 25 7E 6B D0 F4 C4 AB 8E 0D 9F ED 4F 5B 564D AF D4 BC 8F 13 54 D4 BC 26 40 BF CC 1C 81 0015 34 95 2A 70 FD B9 09 B8 C6 3A 32 0A 03 AE A120 AE 32 C4 34 2B C9 F0 45 5E 36 F9 6C 99 DC AA1F 42 6B 2C 96 CB 10 BE E7 BA AA D1//****************************************************************************//****************************************************************************//Certificate Details//----------------------------------------------------------------------------//Item 0 (Rare Ideas, LLC)Version = 3Issued by = COMODO Code Signing CA 2Issued to = Rare Ideas, LLCValid from = 2/16/2012Valid to = 2/15/2013 11:59:59 PMIssued to:Country = USState or Province = NYLocality = New YorkOrganization = Rare Ideas, LLCCommon Name = Rare Ideas, LLCIssued by:Country = GBState or Province = Greater ManchesterLocality = SalfordOrganization = COMODO CA LimitedCommon Name = COMODO Code Signing CA 2Serial Number = 00 93 2F C9 AF 0E FA 79 D8 A3 F7 71 68 1F E2 0334Signature Algorithm = SHA1 with RSAIssuer = Country = GBState or Province = Greater ManchesterLocality = SalfordOrganization = COMODO CA LimitedCommon Name = COMODO Code Signing CA 2Valid from = 2/16/2012Valid to = 2/15/2013 11:59:59 PMSubject = Country = USPostal Code = 10009State or Province = NYLocality = New YorkStreet Address = PO Box 227Organization = Rare Ideas, LLCCommon Name = Rare Ideas, LLCSize = 1308Signature = A8 06 EC 6E 2C CE D8 83 AD AE 80 9A F0 D8 92 4F76 19 8D 95 5A CE 4F BA 84 47 A5 A0 31 01 BA C8B5 98 9B 2B D6 4F 3E 28 93 77 FF 3F 8C 7F 12 F0C0 6A DA 5D E3 5B 14 AD 02 9D 72 7F 3B BE BE F528 C3 F2 20 7B 2C CF B5 D6 50 8E 2F D8 91 0A BE26 90 08 03 48 ED 12 7E 61 FE E5 59 E3 FD 4D 9F70 99 2B 3B 35 8C 36 F6 F6 4D 3C 37 EE 25 5D CEF4 77 06 B5 85 4D 67 76 D3 B4 39 32 F1 E0 6F DEB4 81 56 A3 A4 D5 A5 D1 21 74 D6 06 BD 30 DE 7F7B 00 B8 14 FB A3 9C 71 1A 83 E7 2A 42 9C 20 60EE 23 4B FE 9A D3 A9 28 FE 67 CC 28 A1 EC BF 004A 99 60 EA CC 34 F3 4E 71 E6 61 4B 7D 2F 9C 0263 D0 90 95 EB 27 56 82 76 CD EA CE 56 22 86 ECEA F0 C1 B3 BE 54 0C CB 1D C2 E7 48 D7 B4 B4 A4AB 9E 2F 77 76 AF 31 3E 56 50 37 FB C7 1D CF 95E5 24 7F 69 F9 94 23 C6 A9 00 5B 0F B4 72 C6 25Self signed = FalsePublic key = RSA (2056)RSA Modulus = 00 A2 9C F3 27 42 13 D3 7C 79 01 4F 9D B6 A5 2F1F 48 E1 7C 6A 06 36 BC 30 8D E8 14 27 6F B4 E76D 8F 92 2D 0C 18 7C 83 36 2B 34 47 03 D9 7B 0693 4F BB 26 09 B0 55 57 7A 3D 84 0D 05 27 52 6C5E B1 59 EF 5A 4E 1C 07 02 DA 07 12 00 68 0E F4C1 14 E2 D1 E4 35 85 7F A5 D9 2C 9F 2A F1 18 05DE 69 30 77 2E D7 E8 17 B8 B7 93 50 61 07 10 5823 E4 83 DF 4F FC 87 AB 57 64 B8 E6 71 6A 70 5A4C D8 6F 81 F1 8E 85 4E F2 EE 1C EC ED 53 76 5B1A DF AA 0A AF F8 8D 38 8A 7C 49 5F E3 25 F2 9DDD 85 67 22 04 D1 AF BC A0 FA 95 59 00 8B 3B E112 01 B7 1B 10 4D 38 F0 5A B0 76 41 F4 9B 28 E5A2 34 D4 71 FB 3B 6B 05 B6 E2 DF B4 71 1E B0 BC1E C4 19 95 0C 89 36 4C 01 D2 5F 41 8E 9B 93 DB4D B5 D0 DD B6 D0 90 51 F2 DF 33 E7 36 1A 85 5DD0 DB AE 42 FD AB 6F EF 31 4B 3E E4 81 D4 BF D405RSA Public Key = 01 00 01Authority Information Access = Access Method=1.3.6.1.5.5.7.48.2, 1.3.6.1.5.5.7.48.1Access Location.URI=http://crt.comodoca.com/COMODOCodeSigningCA2.crt, http://ocsp.comodoca.comAuthority Key Identifier = Key Identifier=1E C5 B1 2C 7D 87 DA 02 68 7C 25 BC 0C 07 84 3F B6 CF DE F1Basic constraints = 30 00Certificate Policies = CPS URI=https://secure.comodo.net/CPSPolicy Identifier=2B 06 01 04 01 B2 31 01 02 01 03 02Explicit Text=CRL Distribution Points = Name.URI=http://crl.comodoca.com/COMODOCodeSigningCA2.crlReason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA CompromiseExtended key usage = Code signing, Custom Usage : 0Key usage = Digital signatureNetscape Cert Type = Object SigningSubject 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 = 3Issued by = UTN-USERFirst-ObjectIssued to = COMODO Code Signing CA 2Valid from = 8/24/2011Valid to = 5/30/2020 10:48:38 AMIssued to:Country = GBState or Province = Greater ManchesterLocality = SalfordOrganization = COMODO CA LimitedCommon Name = COMODO Code Signing CA 2Issued by:Country = USState or Province = UTLocality = Salt Lake CityOrganization = The USERTRUST NetworkOrganization Unit = http://www.usertrust.comCommon Name = UTN-USERFirst-ObjectSerial Number = 10 70 9D 4F F5 54 08 D7 30 60 01 D8 EA 91 75 BBSignature Algorithm = SHA1 with RSAIssuer = Country = USState or Province = UTLocality = Salt Lake CityOrganization = The USERTRUST NetworkOrganization Unit = http://www.usertrust.comCommon Name = UTN-USERFirst-ObjectValid from = 8/24/2011Valid to = 5/30/2020 10:48:38 AMSubject = Country = GBState or Province = Greater ManchesterLocality = SalfordOrganization = COMODO CA LimitedCommon Name = COMODO Code Signing CA 2Size = 1259Signature = 95 89 77 93 68 01 5E 7C D9 2D 37 07 90 5D 5A 425E 0C 64 B4 36 B5 0F F6 AB D5 39 27 DE 22 46 A449 1C 66 4B 46 19 59 2E 79 49 03 F6 9C 92 DF 6D50 35 5C 0C 91 2E 60 03 59 D0 F1 64 F7 69 09 F67E FE EB 34 B3 6D B1 BF 66 9C A3 BA 31 78 B9 8735 61 3D 92 31 1B EF F4 E8 9E D6 AC 45 FA 0C 363C 80 67 BB BD EF 2E C2 90 E1 3D 71 2F 3B C1 B058 7E 45 C3 52 71 03 07 F6 F3 39 4D 8B 36 21 1B01 DF D9 DA 5E 2B EB 0E 97 80 1E 44 1C 50 88 F5C6 12 33 4A A8 4D A5 8D 2F 94 0C 7B C6 BF 9A 2CC3 32 CD BD 8C 27 26 F0 E1 30 03 50 06 82 BC F43B B3 83 75 06 C6 EF BA EE D3 80 F8 52 C6 AC CB79 F2 38 9E 7B B0 92 58 42 91 05 C8 96 21 AD B94B 16 81 14 69 F1 37 B0 FE 34 F7 DC B0 DF 97 F543 10 9B 76 8F B4 65 F5 E8 9F 13 B7 1E AC 6F C469 8A 5F BA 3C 61 7E 5E 49 86 23 13 2E AF 15 48Self signed = FalsePublic key = RSA (2056)RSA Modulus = 00 CB F8 E7 A7 E8 F1 97 28 40 68 80 37 D2 C8 3F8E 92 8A 92 37 87 47 80 EA 4C 99 CF 6E F9 15 47BD EE 75 F4 44 AC D0 C3 D4 4D F7 19 C0 D3 3C 4DC1 47 B9 59 65 16 93 8C D9 0A 84 9B 9F E8 F6 6A63 58 FE 5F DC D1 7F 4B 51 9F 00 1C 00 87 54 2007 57 A0 82 C9 2F 98 AF 33 8A BB 7B 80 22 25 6A6C AF C2 2C 6C 79 13 BD A3 2A 48 D6 B5 8E 61 55E9 6B E8 3D 80 BF 14 03 85 18 8E 7E 4C E9 C2 1988 73 92 72 CD FA FF 50 4D CB 2C A6 7B 1A 73 B100 90 2C D9 32 E2 FB FD AC 95 42 36 EC 34 C5 1353 68 B2 C1 9F 40 9F DA 7B C8 9D 62 6C 93 A2 42D7 79 9F 97 4F 31 5B 50 21 A1 AB AF D9 1C B2 CE75 BE 5B 2C 56 00 24 8D 11 C1 75 1F F0 FE D2 95FE F0 E1 31 23 18 67 C0 5B 13 FD 5A 98 94 94 FFFF 59 02 1F 00 AC E6 F1 F2 FA 3A 73 B3 1D 42 FC54 75 CF 51 31 2F E3 DB 81 D9 77 23 2A 4F 59 CE23RSA Public Key = 01 00 01Authority Information Access = Access Method=1.3.6.1.5.5.7.48.2, 1.3.6.1.5.5.7.48.1Access Location.URI=http://crt.usertrust.com/UTNAddTrustObject_CA.crt, http://ocsp.usertrust.comAuthority Key Identifier = Key Identifier=DA ED 64 74 14 9C 14 3C AB DD 99 A9 BD 5B 28 4D 8B 3C C9 D8Basic constraints = Subject Type=CA, Path length constraint=0Certificate Policies = Policy Identifier=55 1D 20 00Explicit Text=CRL Distribution Points = Name.URI=http://crl.usertrust.com/UTN-USERFirst-Object.crlReason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA CompromiseExtended key usage = Code signing, Custom Usage : 0Key usage = Certificate signing, CRL signingSubject 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 = 3Issued by = AddTrust External CA RootIssued to = UTN-USERFirst-ObjectValid from = 6/7/2005 8:09:10 AMValid to = 5/30/2020 10:48:38 AMIssued to:Country = USState or Province = UTLocality = Salt Lake CityOrganization = The USERTRUST NetworkOrganization Unit = http://www.usertrust.comCommon Name = UTN-USERFirst-ObjectIssued by:Country = SEOrganization = AddTrust ABOrganization Unit = AddTrust External TTP NetworkCommon Name = AddTrust External CA RootSerial Number = 42 1A F2 94 09 84 19 1F 52 0A 4B C6 24 26 A7 4BSignature Algorithm = SHA1 with RSAIssuer = Country = SEOrganization = AddTrust ABOrganization Unit = AddTrust External TTP NetworkCommon Name = AddTrust External CA RootValid from = 6/7/2005 8:09:10 AMValid to = 5/30/2020 10:48:38 AMSubject = Country = USState or Province = UTLocality = Salt Lake CityOrganization = The USERTRUST NetworkOrganization Unit = http://www.usertrust.comCommon Name = UTN-USERFirst-ObjectSize = 1160Signature = 4D 42 2F A6 C1 8A EB 07 80 90 58 46 8C F8 19 3966 2A 3C 5A 2C 6D CF D4 D9 87 55 8D 79 0B 12 887B 40 8F D5 C7 F8 4B 8D 55 16 63 AD B7 57 DC 3B2B BD D3 C1 4F 1E 03 87 4B 44 9B E3 E2 40 45 26F3 26 49 2B 6A 84 F1 54 7A D4 42 DA FC D3 6A BB66 7E CA 9E EA E9 BB DC 07 C7 C3 92 4E 83 3C 8149 9F 92 D5 32 09 EA 49 2E A1 11 71 9A 36 D2 C54E 68 B6 CB 0E 1B 25 16 AF 6C DE 5D 76 D8 1F 72B1 93 26 86 17 DB 18 DE AF 45 E9 DF FB 98 AF 1418 ED A4 5E F6 89 94 45 F0 55 04 4A DD FF 27 DD06 4A 40 F6 B4 BC F1 E4 0F 99 02 BB FD 5D 0E 2E28 C1 BE 3B 5F 1A 3F 97 10 84 BC 16 3E D8 A3 9C63 1D 66 CB 5C 5F DA 3E F3 0F 0A 09 35 22 DB DBC0 3F 00 F9 E6 0D 5D 67 D1 FD A0 1E 03 2B D9 40F7 BE CC 87 66 54 80 A6 A3 B8 F5 19 62 D5 D2 26B1 98 26 EE 9A CB 44 A7 45 5A 81 95 15 1A F5 51Self signed = FalsePublic key = RSA (2056)RSA Modulus = 00 CE AA 81 3F A3 A3 61 78 AA 31 00 55 95 11 9E27 0F 1F 1C DF 3A 9B 82 68 30 C0 4A 61 1D F1 2F0E FA BE 79 F7 A5 23 EF 55 51 96 84 CD DB E3 B96E 3E 31 D8 0A 20 67 C7 F4 D9 BF 94 EB 47 04 3E02 CE 2A A2 5D 87 04 09 F6 30 9D 18 8A 97 B2 AA1C FC 41 D2 A1 36 CB FB 3D 91 BA E7 D9 70 35 FAE4 E7 90 C3 9B A3 9B D3 3C F5 12 99 77 B1 B7 09E0 68 E6 1C B8 F3 94 63 88 6A 6A FE 0B 76 C9 BEF4 22 E4 67 B9 AB 1A 5E 77 C1 85 07 DD 0D 6C BFEE 06 C7 77 6A 41 9E A7 0F D7 FB EE 94 17 B7 FC85 BE A4 AB C4 1C 31 DD D7 B6 D1 E4 F0 EF DF 168F B2 52 93 D7 A1 D4 89 A1 07 2E BF E1 01 12 421E 1A E1 D8 95 34 DB 64 79 28 FF BA 2E 11 C2 E5E8 5B 92 48 FB 47 0B C2 6C DA AD 32 83 41 F3 A5E5 41 70 FD 65 90 6D FA FA 51 C4 F9 BD 96 2B 1904 2C D3 6D A7 DC F0 7F 6F 83 65 E2 6A AB 87 8675RSA Public Key = 01 00 01Authority Information Access = Access Method=1.3.6.1.5.5.7.48.1Access Location.URI=http://ocsp.usertrust.comAuthority Key Identifier = Key Identifier=AD BD 98 7A 34 B4 26 F7 FA C4 26 54 EF 03 BD E0 24 CB 54 1ABasic constraints = Subject Type=CA, Path length constraint=-1Certificate Policies = Policy Identifier=55 1D 20 00Explicit Text=CRL Distribution Points = Name.URI=http://crl.usertrust.com/AddTrustExternalCARoot.crlReason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA CompromiseKey usage = Certificate signing, CRL signingSubject 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 = 3Issued by = Thawte Timestamping CAIssued to = VeriSign Time Stamping Services CAValid from = 12/4/2003Valid to = 12/3/2013 11:59:59 PMIssued to:Country = USOrganization = VeriSign, Inc.Common Name = VeriSign Time Stamping Services CAIssued by:Country = ZAState or Province = Western CapeLocality = DurbanvilleOrganization = ThawteOrganization Unit = Thawte CertificationCommon Name = Thawte Timestamping CASerial Number = 47 BF 19 95 DF 8D 52 46 43 F7 DB 6D 48 0D 31 A4Signature Algorithm = SHA1 with RSAIssuer = Country = ZAState or Province = Western CapeLocality = DurbanvilleOrganization = ThawteOrganization Unit = Thawte CertificationCommon Name = Thawte Timestamping CAValid from = 12/4/2003Valid to = 12/3/2013 11:59:59 PMSubject = Country = USOrganization = VeriSign, Inc.Common Name = VeriSign Time Stamping Services CASize = 968Signature = 4A 6B F9 EA 58 C2 44 1C 31 89 79 99 2B 96 BF 82AC 01 D6 1C 4C CD B0 8A 58 6E DF 08 29 A3 5E C8CA 93 13 E7 04 52 0D EF 47 27 2F 00 38 B0 E4 C993 4E 9A D4 22 62 15 F7 3F 37 21 4F 70 31 80 F18B 38 87 B3 E8 E8 97 00 FE CF 55 96 4E 24 D2 A927 4E 7A AE B7 61 41 F3 2A CE E7 C9 D9 5E DD BB2B 85 3E B5 9D B5 D9 E1 57 FF BE B4 C5 7E F5 CF0C 9E F0 97 FE 2B D3 3B 52 1B 1B 38 27 F7 3F 4ASelf signed = FalsePublic key = RSA (2056)RSA Modulus = 00 A9 CA B2 A4 CC CD 20 AF 0A 7D 89 AC 87 75 F0B4 4E F1 DF C1 0F BF 67 61 BD A3 64 1C DA BB F9CA 33 AB 84 30 89 58 7E 8C DB 6B DD 36 9E 0F BFD1 EC 78 F2 77 A6 7E 6F 3C BF 93 AF 0D BA 68 F46C 94 CA BD 52 2D AB 48 3D F5 B6 D5 5D 5F 1B 029F FA 2F 6B 1E A4 F7 A3 9A A6 1A C8 02 E1 7F 4C52 E3 0E 60 EC 40 1C 7E B9 0D DE 3F C7 B4 DF 87BD 5F 7A 6A 31 2E 03 99 81 13 A8 47 20 CE 31 730D 57 2D CD 78 34 33 95 12 99 12 B9 DE 68 2F AAE6 E3 C2 8A 8C 2A C3 8B 21 87 66 BD 83 58 57 6F75 BF 3C AA 26 87 5D CA 10 15 3C 9F 84 EA 54 C10A 6E C4 FE C5 4A DD B9 07 11 97 22 7C DB 3E 27D1 1E 78 EC 9F 31 C9 F1 E6 22 19 DB C4 B3 47 439A 1A 5F A0 1E 90 E4 5E F5 EE 7C F1 7D AB 62 018F F5 4D 0B DE D0 22 56 A8 95 CD AE 88 76 AE EEBA 0D F3 E4 4D D9 A0 FB 68 A0 AE 14 3B B3 87 C1BBRSA Public Key = 01 00 01Authority Information Access = Access Method=1.3.6.1.5.5.7.48.1Access Location.URI=http://ocsp.verisign.comBasic constraints = Subject Type=CA, Path length constraint=0CRL Distribution Points = Name.URI=http://crl.verisign.com/ThawteTimestampingCA.crlReason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA CompromiseExtended key usage = Time stamping, Custom Usage : 0Key usage = Certificate signing, CRL signingSubject Alternative Name = Directory Name=Common Name = TSA2048-1-53//----------------------------------------------------------------------------//Item 4 (Symantec Time Stamping Services Signer - G3)Version = 3Issued by = VeriSign Time Stamping Services CAIssued to = Symantec Time Stamping Services Signer - G3Valid from = 5/1/2012Valid to = 12/31/2012 11:59:59 PMIssued to:Country = USOrganization = Symantec CorporationCommon Name = Symantec Time Stamping Services Signer - G3Issued by:Country = USOrganization = VeriSign, Inc.Common Name = VeriSign Time Stamping Services CASerial Number = 79 A2 A5 85 F9 D1 15 42 13 D9 B8 3E F6 B6 8D EDSignature Algorithm = SHA1 with RSAIssuer = Country = USOrganization = VeriSign, Inc.Common Name = VeriSign Time Stamping Services CAValid from = 5/1/2012Valid to = 12/31/2012 11:59:59 PMSubject = Country = USOrganization = Symantec CorporationCommon Name = Symantec Time Stamping Services Signer - G3Size = 931Signature = 1E 98 AA 27 B7 78 B5 08 B5 C9 72 6D B7 DF C0 0E98 A6 35 C4 88 C9 D2 F6 6D F1 4B 1A FB D5 F9 2D99 00 9E D1 E7 9B 8B E1 3F BD 39 80 0C 66 CD 07BC 5C 98 54 A6 94 BA 10 D1 4E 8B AB F5 6F 65 CC67 09 A2 80 7C 52 E8 0E 03 D6 6B 7A C6 05 18 ECC8 AC 42 7C 07 2C A7 3D 08 66 DC 00 ED FD 94 1D73 F2 72 98 93 B1 11 D6 8F EF 8E EA AC F4 96 510C D0 8D DF 31 52 4F 5E AF 7D A7 4A 75 E6 4E CE2B 9F 29 2B E7 CF 5D 9F 03 7E 6E 27 7B 23 AD 6229 66 AF 92 E8 2C CE BD 9C 7F DC CD 17 3C 43 C209 3F 75 45 C7 9E E4 D7 60 7F 97 C6 E4 AA C7 69F5 FC CD 74 AC 2C B0 48 C1 50 4E 70 56 1E B5 35D3 8E BE B1 ED AC BD FE 0C EC 85 7D D5 BB 85 6644 19 5D 9F 93 EB 82 BA 63 9E D3 7C 61 FF C8 1BD9 23 58 7F 30 A3 66 A1 39 26 5E 92 C3 3C CB 3732 FA F5 A3 8D DC D5 B0 A3 E9 25 36 55 D7 81 FASelf signed = FalsePublic key = RSA (1032)RSA Modulus = 00 A9 59 66 74 DA 3D 8A 7D 7A D8 FC F5 80 44 7BFE 47 6A 14 55 4E 50 47 0B EC D3 ED CE F6 38 F74F 69 B9 B1 F0 B6 78 82 0A 8C 76 16 67 E2 02 ADB7 0D A5 8A F6 03 FC 66 D3 FC 08 2D CC B5 73 597B 89 DC 33 6E 66 5A 5E 52 37 B4 62 D1 92 59 3514 8B 45 AC 59 B2 4D 24 A2 98 94 68 42 72 9F 3A68 E2 6B 8B 9E 22 2D F4 98 4E 9A C6 AF B3 E4 A0AB 3C 28 BF 23 E1 D7 72 A4 F2 10 53 67 AE 77 AF51RSA Public Key = 01 00 01Authority Information Access = Access Method=1.3.6.1.5.5.7.48.1Access Location.URI=http://ocsp.verisign.comBasic constraints = 30 00CRL Distribution Points = Name.URI=http://crl.verisign.com/tss-ca.crlReason=Unspecified, Key Compromise, CA Compromise, Affiliation Changed, Superseded, Cessation Of Operation, Certificate Hold, Remove From CRL, Privilege Withdrawn, AA CompromiseExtended key usage = Time stamping, Custom Usage : 0Key usage = Digital signatureSubject Alternative Name = Directory Name=Common Name = TSA1-3Subject 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=19327I lack the experience of following through with this but here is some information on application digital sigining.Howto: Add a Digital Signature to ExecutablesThe 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 August 8, 2012 by Decipher Spoiler Â
Paulypaul Posted August 7, 2012 Posted August 7, 2012 (edited) How can I extract the contents of the installer without using a full 7zip installation?http://www.rarlab.com/rar/unrar38b.zipA 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 August 7, 2012 by Paulypaul
Decipher Posted August 8, 2012 Author Posted August 8, 2012 (edited) http://www.rarlab.com/rar/unrar38b.zipA 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.27636_online.paf.exeUNRAR 3.80 freeware Copyright © 1993-2008 Alexander RoshalCannot open uTorrentPortable_3.2.0.27636_online.paf.exePermission denied (EACCES)No files to extract7za.exe the standalone CLI based version of 7Zip dosen't work either. Edited August 8, 2012 by Decipher Spoiler Â
Decipher Posted August 8, 2012 Author Posted August 8, 2012 (edited) @ stormeI 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 August 8, 2012 by Decipher Spoiler Â
storme Posted August 8, 2012 Posted August 8, 2012 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. Some of my small contributions to AutoIt Browse for Folder Dialog - Automation SysTreeView32 | FileHippo Download and/or retrieve program information | Get installedpath from uninstall key in registry | RoboCopy function John Morrison aka Storm-E
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now