SmartVersion | Tools + Scripts

Discussion in 'Application Software' started by LostED, Apr 15, 2019.

  1. vanelle

    vanelle MDL Expert

    Sep 22, 2014
    1,502
    1,418
    60
    #181 vanelle, Mar 14, 2020
    Last edited: Mar 14, 2020
    for dll's 3.7 (API)
    to get info's from svf files

    int SVFAPI GetSvfMonoPatchInfo(....) -> working for me -> seems OK
    int SVFAPI GetSvfMonoPatchInfoEx -> working for me -> seems OK
    int SVFAPI GetSvfMonoPatchInfoEx2 -> Error during dll call
    - DllCall() [built-in] called with wrong number of args.

    GetSvfMonoPatchInfoEx2 is as far as i debug total wrong documentet (wrong number of arguments + wrong argument type's)

    GetSvfMonoPatchInfo...(...)
    are just wrapping code from other API's

    the global way is calling


    SVFAPI DfsOpen(...)
    SVFAPI ConvertOldDirectoryCommentStorage(...)
    SVFAPI DfsGetNbDir(...)

    SVFAPI ReadAllDirInfo(..) -> the result is a Pointer array to the dir info of each version

    then you can make a loop to get CurDirInfo from each pointer

    then you must call
    SVFAPI GetDfsTagBlockFloat(..) -> versions Tag's (eg. VersionsName, VersionsComment, etc
    and / or
    SVFAPI GetTag(...) -> file Tag's for the version

    short code snipset from my AU3 testing script to
    ;---------- Get all File infos from the current version
    Code:
                $i=0;
                While (($i < $iGetNbFile) And ($iError = $DFS_SUCCESS))
                    $pTagList       = DllStructGetData($tCurDirInfo,'TagFile')+$i*$PTRSIZE    ;*(pCurDirInfo->TagFile + i) <->  const DFTAGLIST__ *
                    $tFileInDirInfo = DllStructCreate ($tagFILEINDIRINFO, DllStructGetData($tCurDirInfo,'pFileInDirInfo') + $i)
                    ConsoleWrite(' 1 $tFileInDirInfo : FileName          = ' & SVF_GetStringFromPTR(DllStructGetData($tFileInDirInfo,'FileName')) & @CRLF)
                    ConsoleWrite(' 2 $tFileInDirInfo : fDateFilled       = ' & DllStructGetData($tFileInDirInfo,'fDateFilled') & @CRLF)
                    ConsoleWrite(' 3 $tFileInDirInfo : dfsTm             = ' & DllStructGetPtr($tFileInDirInfo, 'df_msec') & @CRLF)
                    $tTm = 0
                    If DllStructGetData($tFileInDirInfo,'fDateFilled') Then
                        $tTm = DllStructCreate($tagDFSTM, DllStructGetPtr($tFileInDirInfo, 'df_msec') )
                    ElseIf SVFAPI_GetTag($pTagList, $DFSTAG_DATE, $pTagBuf, $iTagSize) Then
                        ;ConsoleWrite('$pTagBuf  1 : ' & VarGetType($pTagBuf)  & ' ' & $pTagBuf & @CRLF)
                        ;ConsoleWrite('$iTagSize 2 : ' & VarGetType($iTagSize) & ' ' & $iTagSize & @CRLF)
                        $tTm = DllStructCreate($tagDFSTM)
                        SVFAPI_ConvertDfsInfoDateToDfsTm($pTagBuf, $tTm)
                    EndIf
                    If IsDllStruct($tTm) Then
    ;~                     ConsoleWrite('$tTm  1 : df_msec           = ' & DllStructGetData($tTm,'df_msec') & @CRLF)
    ;~                     ConsoleWrite('$tTm  2 : df_sec            = ' & DllStructGetData($tTm,'df_sec ') & @CRLF)
    ;~                     ConsoleWrite('$tTm  3 : df_min            = ' & DllStructGetData($tTm,'df_min')  & @CRLF)
    ;~                     ConsoleWrite('$tTm  4 : df_hour           = ' & DllStructGetData($tTm,'df_hour') & @CRLF)
    ;~                     ConsoleWrite('$tTm  5 : df_mday           = ' & DllStructGetData($tTm,'df_mday') & @CRLF)
    ;~                     ConsoleWrite('$tTm  6 : df_mon            = ' & DllStructGetData($tTm,'df_mon')  & @CRLF)
    ;~                     ConsoleWrite('$tTm  7 : df_year           = ' & DllStructGetData($tTm,'df_year') & @CRLF)
    ;~                     ConsoleWrite('$tTm  8 : df_timezone_bias  = ' & DllStructGetData($tTm,'df_timezone_bias') & @CRLF)
                        $tFile = _Date_Time_EncodeFileTime ( _
                                DllStructGetData($tTm,'df_mon'),  DllStructGetData($tTm,'df_mday'), DllStructGetData($tTm,'df_year'), _
                                DllStructGetData($tTm,'df_hour'), DllStructGetData($tTm,'df_min'),  DllStructGetData($tTm,'df_sec '), DllStructGetData($tTm,'df_msec') )
                        ConsoleWrite(' 3 GetTag DFSTAG   : DATE              = ' & _Date_Time_FileTimeToStr($tFile,1) & @CRLF)
                    EndIf
    
                    ConsoleWrite(' 4 $tFileInDirInfo : dfSize            = ' & DllStructGetData($tFileInDirInfo,'dfSize') & @CRLF)
                    ConsoleWrite(' 5 $tFileInDirInfo : dfFileEncodedSize = ' & DllStructGetData($tFileInDirInfo,'dfFileEncodedSize') & @CRLF)
                    ConsoleWrite(' 6 $tFileInDirInfo : dfCrc32           = ' & StringRight(Hex(DllStructGetData($tFileInDirInfo,'dfCrc32')),8) & @CRLF)
                    ConsoleWrite(' 7 $tFileInDirInfo : fCrc32Filled      = ' & DllStructGetData($tFileInDirInfo,'fCrc32Filled') & @CRLF)
    
                    If SVFAPI_GetTag($pTagList, $DFSTAG_STORAGESTATUS, $pTagBuf, $iTagSize) Then
                        $t_uLong32Intel = DllStructCreate($tagDFULONG32INTEL, $pTagBuf)
                        If $iTagSize = DllStructGetSize($t_uLong32Intel) Then ;sizeof(dfuLong32Intel))
                            $iFileIdentical = SVFAPI_ConvertuLongIntelToLong($t_uLong32Intel)   ;(*(dfuLong32Intel*)TagBuf);
                            ConsoleWrite(' 8 GetTag DFSTAG   : STORAGESTATUS     = ' & SVF_GetStringStoragestatusType($iFileIdentical) & @CRLF)
                        EndIf
                    EndIf
    
                    ConsoleWrite(' 9 $tFileInDirInfo : fMd5Filled        = ' & DllStructGetData($tFileInDirInfo,'fMd5Filled') & @CRLF)
                    ConsoleWrite('10 $tFileInDirInfo : bMd5              = ' & Hex(DllStructGetData($tFileInDirInfo,'bMd5') ) & @CRLF)
                    ConsoleWrite('11 $tFileInDirInfo : fSha1Filled       = ' & DllStructGetData($tFileInDirInfo,'fSha1Filled') & @CRLF)
                    ConsoleWrite('12 $tFileInDirInfo : bSha1             = ' & Hex(DllStructGetData($tFileInDirInfo,'bSha1') ) & @CRLF)
                    ConsoleWrite('13 $tFileInDirInfo : fSha256Filled     = ' & DllStructGetData($tFileInDirInfo,'fSha256Filled') & @CRLF)
                    ConsoleWrite('14 $tFileInDirInfo : bSha256           = ' & Hex(DllStructGetData($tFileInDirInfo,'bSha256') ) & @CRLF)
    
                    If SVFAPI_GetTag($pTagList, $DFSTAG_FILENAME, $pTagBuf, $iTagSize) Then
                        ConsoleWrite('-- GetTag DFSTAG   : FILENAME            = ' & SVF_GetStringFromPTR($pTagBuf, $iTagSize) & @CRLF)
                    EndIf
                    If SVFAPI_GetTag($pTagList, $DFSTAG_BASEPATCH, $pTagBuf, $iTagSize) Then
                        ConsoleWrite('-- GetTag DFSTAG   : BASEPATCH           = ' & $iTagSize & @CRLF)
                    EndIf
                    If SVFAPI_GetTag($pTagList, $DFSTAG_FILEPOSPROPERTIES, $pTagBuf, $iTagSize) Then
                        ConsoleWrite('-- GetTag DFSTAG   : FILEPOSPROPERTIES   = ' & $iTagSize & @CRLF)
                    EndIf
                    If SVFAPI_GetTag($pTagList, $DFSTAG_CRCINFO, $pTagBuf, $iTagSize) Then
                        ConsoleWrite('-- GetTag DFSTAG   : CRCINFO             = ' & $iTagSize & @CRLF)
                    EndIf
                    If SVFAPI_GetTag($pTagList, $DFSTAG_PREVIOUSVERSIONINFO, $pTagBuf, $iTagSize) Then
                        ConsoleWrite('-- GetTag DFSTAG   : PREVIOUSVERSIONINFO = ' & $iTagSize & @CRLF)
                    EndIf
                    If SVFAPI_GetTag($pTagList, $DFSTAG_NUMBEROFFILEINDIR, $pTagBuf, $iTagSize) Then
                        ConsoleWrite('-- GetTag DFSTAG   : NUMBEROFFILEINDIR   = ' & $iTagSize & @CRLF)
                    EndIf
                    If SVFAPI_GetTag($pTagList, $DFSTAG_STORAGESTATUS, $pTagBuf, $iTagSize) Then
                        ConsoleWrite('-- GetTag DFSTAG   : STORAGESTATUS       = ' & DllStructGetData(DllStructCreate('ulong',$pTagBuf),1) & @CRLF)
                    EndIf
    .... snip
    
                WEnd
    
            EndIf
    ConsoleWrite('-------------' & @CRLF)
        Next
    
    after all this
    you must call
    SVFAPI FreeAllDirInfo(..)
    SVFAPI DfsClose(..)
    etc

    Thx to my Magic Ball i find out the new 3.7 typedef struct(s) wich include Sha256

    i dont puplish my knowlage yet (have no Permission from G. Vollant to do this)

    first you shoud define wat is the meaning of 'intelligent people in MDL'

    in my mind it is'nt intelligent (fair)..
    - steal smv.exe from the autor, pack .svf files + stolen smv.exe -> to a selfextracting RAR
    and cach likes like some enthousiast MDL Member (
    and pretend as if he had found the Philosopher's Stone)

    - steal smv.exe from the autor, yust to make a second GUI wich only wrap the console code from smv.exe, only to catch likes

    none of this user have the permisson from G. Vollant to do this !!!
    non MDL Member wich use this fake software donate the author. !!!!

    on the contrary, this only leads him up to get angry (pissed of)

    the author have a homepage with a GUI and a a original console exe
    each MDL Member should only link to the homepage of G. Vollant and support him by donate or work with him together.

    scripting (.cmd, bat etc) is ok if you link to the author to get the smv exe but nothing else is accateble without permisson of G. Vollant

    but on MDL

    - intelligez
    - fair usage
    - insight
    is hard to find
     
  2. 3zero3

    3zero3 MDL Senior Member

    Apr 26, 2012
    421
    685
    10
    Added.

    But new one.

    Not this frankenstein SVFX with two frankenstein SVFs inside archive.

    The new one, everything is inside one SVF, including source file.

    I think, will post tomorrow.
     
  3. @vanelle The author is member here since 2013 and is online regularly. If he would think that this isn't fair, he would have said something to us. (which I don't think, he got everything we posted)
     
  4. Sajjo

    Sajjo MDL Member

    Feb 6, 2018
    2,245
    3,258
    90
    @vanelle
    I know, my bad.
    One of my stupid moments, truly sorry about that.

    Kind regards
     
  5. theroid

    theroid MDL Novice

    Jun 11, 2018
    1
    0
    0
    Hey, is there any proof or way to check if there is no additional programms installed on this windows version? Im a bit paranoid, wouldnt want some day all my accounts beeing hacked. :oops:
     
  6. Brother
    if you are that much security conscious then why dont you install anti logger which will encrypt each & every keystroke on your machine thus protecting you .
    On MDL i confirm theres no any crack patch keygen allowed to be posted . kindly have a look at rules of our Community . you can easily contact admins (Staff) if you find any crack or patch / keygen posted & they will deffinately take action against that poster as well as that post.
    Hence i state that its a Best Safe & Secure Community in this virtual world with lots of ethical knowledge from Experts / Pro's. Learn something & enjoy your stay here :)
     
  7. Enthousiast

    Enthousiast MDL Tester

    Oct 30, 2009
    47,256
    94,662
    450
    Addition, the checksums can be verified, some tools do it automated when converting.
     
  8. Angela Pszbor

    Angela Pszbor MDL Senior Member

    Apr 11, 2014
    297
    85
    10
    I got
    en_windows_10_consumer_editions_version_1909_updated_march_2020_x64_dvd_36df0e75.iso
    [pt-br]_pt_windows_10_consumer_editions_version_1903_updated_march_2020_x64_dvd_2a9b09e4.svf
    Now Im wonder if I use samrtversion or svfx_v2.1.11 to make my iso
    Please help
     
  9. Angela Pszbor

    Angela Pszbor MDL Senior Member

    Apr 11, 2014
    297
    85
    10
    its not working I want convert to pt-br
     
  10. GezoeSloog

    GezoeSloog knows a guy, who knows another guy.

    Feb 10, 2012
    864
    8,150
    30
  11. Angela Pszbor

    Angela Pszbor MDL Senior Member

    Apr 11, 2014
    297
    85
    10
    its very difficult i run svfx but the app ask for pt_windows_10_consumer_editions_version_1909_updated_march_2020_x64_dvd_f663ef45.iso
    I only have en_windows_10_consumer_editions_version_1909_updated_march_2020_x64_dvd_36df0e75.iso and [pt-br]_pt_windows_10_consumer_editions_version_1903_updated_march_2020_x64_dvd_2a9b09e4.svf
    How can I put it in pt-br

    Please help
     
  12. GezoeSloog

    GezoeSloog knows a guy, who knows another guy.

    Feb 10, 2012
    864
    8,150
    30
    en_consumer_1909.iso + pt_consumer_1909.svf = pt_consumer_1909.iso
    pt_consumer_1909.iso + pt_consumer_1903.svf = pt_consumer_1903.iso
    is that clear? :huh:
     
  13. Angela Pszbor

    Angela Pszbor MDL Senior Member

    Apr 11, 2014
    297
    85
    10
    it is clear but when i run the svfx it requires a pt-br iso that i dont have
     
  14. Angela Pszbor

    Angela Pszbor MDL Senior Member

    Apr 11, 2014
    297
    85
    10
    now I got
    Thank you
     
  15. Phairat

    Phairat MDL Member

    Feb 19, 2014
    100
    37
    10
    #198 Phairat, Apr 4, 2020
    Last edited: Apr 7, 2020
    @echo off

    set OutDir=%~dp0ISO

    set Smv=%ProgramFiles%\SmartVersion\smv.exe

    set "title=SVF Extractor"
    title %title%

    if not exist "%OutDir%" md "%OutDir%"

    for %%i in ("%cd%\*.svf") do (
    call :_sub "%%~fi" "%cd%" "%OutDir%"
    )

    exit

    :_sub
    cd /d %3
    "%smv%" x %1 -br %2 -o
    echo ==================================================================================
    exit /b
     

    Attached Files:

    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  16. gvollant

    gvollant MDL Novice

    Sep 23, 2013
    42
    153
    0
    I don't made support of API because I had no feedback
    Why don't work together about your need and a more easy api?
     
  17. vanelle

    vanelle MDL Expert

    Sep 22, 2014
    1,502
    1,418
    60
    @gvollant
    see my PM