Vmware - Bios MasterKey

Sujets variés concernant le développement en PureBasic
CaptainCrunch
Messages : 52
Inscription : dim. 29/juin/2014 6:32

Vmware - Bios MasterKey

Message par CaptainCrunch »

Hello,

Tout est dans le titre... :D

Génère un mot de passe pour dévérouiller le bios dans Vmware

Le code d'erreur est retouné après 3 essais infructueux

Image

Code : Tout sélectionner


; VmwareMain.pb

;******************************************************************************************* 

;* Compilation : Désactiver l'unicode                                                      *
;*               Activer la gestion des threads                                            *

;* Vmware - MasterKey Generateur - CaptainCrunch / Forum Purebasic                         *

;* Code Source d'origine : Dogbert                                                          *

;* http://sites.google.com/site/dogber1/blag/pwgen-5dec.py                                 *                            

;* Adaptation en Purebasic, Calcule le plus petit code de déverrouillage (Querty / Azerty) *
                                                                                       
;*******************************************************************************************

UsePNGImageDecoder()

IncludeFile "VmwareDataSection.pb"
IncludeFile "VmwareLib.pb"

Enumeration
  #mainFrm
  #txtErrorCode
  #txtUnlockCode
  #edtErrorCode
  #edtUnlockCode
  #btnGenerate
  #btnExit
  #imgVm
  #Frame_0
EndEnumeration

Procedure MainFrmDisableGadget()
  DisableGadget(#txtErrorCode,1)
  DisableGadget(#txtUnlockCode,1)
  DisableGadget(#edtErrorCode,1)
  DisableGadget(#edtUnlockCode,1)
  SetGadgetColor(#edtErrorCode, #PB_Gadget_BackColor,RGB(247,247,247))
  DisableGadget(#btnGenerate,1)
  SetGadgetText(#btnGenerate,"Generating...")
EndProcedure

Procedure MainFrmEnableGadget()
  DisableGadget(#txtErrorCode,0)
  DisableGadget(#txtUnlockCode,0)
  DisableGadget(#edtErrorCode,0)
  DisableGadget(#edtUnlockCode,0)
  SetGadgetColor(#edtErrorCode, #PB_Gadget_BackColor,RGB(255,255,255)) 
  DisableGadget(#btnGenerate,0)  
  SetGadgetText(#btnGenerate,"Generate")
EndProcedure

Procedure Generate(parameter)
  Protected ErrorCode.l
  Protected UnlockCode.s
  
  ErrorCode = Val(GetGadgetText(#edtErrorCode))
  
  SetGadgetText(#edtUnlockCode,"")
  
  If ErrorCode > 0 And ErrorCode < #ErrorCodeMax + 1
    MainFrmDisableGadget()
    UnlockCode = GetUnlockCode(ErrorCode)
      If UnlockCode <> ""
        SetGadgetText(#edtUnlockCode,UnlockCode)
        MainFrmEnableGadget()
      EndIf
    Else
      MessageRequester("Error","ErrorCode Invalid ! ex : 12345",#PB_MessageRequester_Ok)
  EndIf
   
EndProcedure

Procedure MainFrmOpen()
    OpenWindow(#mainFrm, x, y, 240, 115, "Vmware - MasterKey", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered | #PB_Window_WindowCentered)
    TextGadget(#txtErrorCode, 5, 20, 80, 20, "ErrorCode :", #PB_Text_Right)
    TextGadget(#txtUnlockCode, 5, 50, 80, 20, "Unlock Code :", #PB_Text_Right)
  StringGadget(#edtErrorCode, 95, 20, 75, 20, "",#PB_String_Numeric)
  StringGadget(#edtUnlockCode, 95, 50, 75, 20, "",#PB_String_Numeric)
  ButtonGadget(#btnGenerate, 75, 80, 75, 25, "Generate")
  ButtonGadget(#btnExit, 155, 80, 75, 25, "Exit")
    CatchImage(#imgVm,?Vmware_ico_start)
   ImageGadget(#imgVm, 180, 20, 48, 48, ImageID(#imgVm))
   FrameGadget(#Frame_0, 5, 0, 230, 110, "")
EndProcedure

Procedure MainFrmEvent()
  Protected glEvent.l, glGadget.l, glWindow.l
  
  Repeat
    
    glEvent  = WaitWindowEvent()
    glGadget = EventGadget()
    glWindow = EventWindow()
    
    If glwindow = #mainFrm
      If glEvent = #PB_Event_Gadget
        Select glGadget
          Case #btnExit : FreeImage(#imgVm) : End
          Case #btnGenerate : If glType = #PB_EventType_LeftClick : CreateThread(@Generate(), 154) : EndIf
        EndSelect
       EndIf
    EndIf
  Until glEvent = #PB_Event_CloseWindow
  
EndProcedure

MainFrmOpen()
MainFrmEvent()

Code : Tout sélectionner


; VmwareLib.pb

Global Dim pwd.i(5)
Global Dim p.i(5)
Global Dim pos.i(5)
Global Dim l.s(5)

Enumeration
  #ErrorCodeMax = $3FFF
  #lngCharset   = 21
endEnumeration

Procedure.l badCRC16(lngUnlockCode.l):
  Protected Hash.l, x.l, y.l, b.l
  hash = 0
  For x = 1 To lngUnlockCode
    hash = hash ! pwd(x)
    For y = 1 To 8
      If (hash & 1)
        hash=hash >> 1
        b = hash ! $2001
        hash = b
      Else
        hash = hash >> 1
      EndIf
    Next y
  Next x
  ProcedureReturn hash
EndProcedure
  
Procedure.i GetCharset(CharsetNum.i)
  Protected x.i, DatCharset.i
  Restore Charset
  For x = 1 To #lngCharset
    Read.i DatCharset
    If x = CharsetNum
      ProcedureReturn DatCharset
    EndIf
  Next x
  ProcedureReturn 0
EndProcedure

Procedure.i GetPos(myNum.i)
  Protected x.i, DatNbr.i
  Restore nbr : For x = 1 To #lngCharset : Read.i DatNbr :
    If myNum = DatNbr
      ProcedureReturn x
    EndIf
  Next x
  ProcedureReturn 0
EndProcedure

Procedure.s GetLettre(myNum.i)
  Protected x.i, DatLettre.s
  Restore lettre : For x = 1 To myNum : Read.s DatLettre : Next x : ProcedureReturn DatLettre
EndProcedure

Procedure.s GetUnlockCode(ErrorCode.l)
  
  Protected a.l, b.l, c.l, d.l, e.l
  Protected Collision.l
  
  For a = 1 To #lngCharset
    pwd(1) = GetCharset(a) : Collision = badCRC16(1)
    If Collision = ErrorCode
      For pwdLen = 1 To 1
        p(pwdLen) = pwd(pwdLen) : pos(pwdLen) = getpos(p(pwdLen)) : l(pwdLen) = GetLettre(pos(pwdLen))
      Next pwdLen
      ProcedureReturn l(1)
    EndIf
  Next a
  
  For a = 1 To #lngCharset : For b = 1 To #lngCharset
      pwd(1) = GetCharset(a) : pwd(2) = GetCharset(b) : Collision = badCRC16(2)
      If Collision = ErrorCode
        For pwdLen = 1 To 2
          p(pwdLen) = pwd(pwdLen) : pos(pwdLen) = getpos(p(pwdLen)) : l(pwdLen) = GetLettre(pos(pwdLen))
        Next pwdLen
        ProcedureReturn l(1) + l(2)
      EndIf
  Next b : Next a
  
  For a = 1 To #lngCharset : For b = 1 To #lngCharset : For c = 1 To #lngCharset
       pwd(1) = GetCharset(a) : pwd(2) = GetCharset(b) : pwd(3) = GetCharset(c) : Collision = badCRC16(3)
        If Collision = ErrorCode
          For pwdLen = 1 To 3
            p(pwdLen) = pwd(pwdLen) : pos(pwdLen) = getpos(p(pwdLen)) : l(pwdLen) = GetLettre(pos(pwdLen))
          Next pwdLen
          ProcedureReturn l(1) + l(2) + l(3)
        EndIf
  Next c : Next b : Next a
  
  
  For a = 1 To #lngCharset : For b = 1 To #lngCharset : For c = 1 To #lngCharset : For d = 1 To #lngCharset
       pwd(1) = GetCharset(a) : pwd(2) = GetCharset(b) : pwd(3) = GetCharset(c) : pwd(4) = GetCharset(d) : Collision = badCRC16(4)
        If Collision = ErrorCode
          For pwdLen = 1 To 4
           p(pwdLen) = pwd(pwdLen) : pos(pwdLen) = getpos(p(pwdLen)) : l(pwdLen) = GetLettre(pos(pwdLen))
          Next pwdLen
          ProcedureReturn l(1) + l(2) + l(3) + l(4)
        EndIf
  Next d : Next c : Next b : Next a
  
  For a = 1 To #lngCharset : For b = 1 To #lngCharset : For c = 1 To #lngCharset : For d = 1 To #lngCharset : For e = 1 To #lngCharset
       pwd(1) = GetCharset(a) : pwd(2) = GetCharset(b) : pwd(3) = GetCharset(c) : pwd(4) = GetCharset(d) : pwd(5) = GetCharset(e) : Collision = badCRC16(5)
        If Collision = ErrorCode
          For pwdLen = 1 To 5
           p(pwdLen) = pwd(pwdLen) : pos(pwdLen) = getpos(p(pwdLen)) : l(pwdLen) = GetLettre(pos(pwdLen))
          Next pwdLen
          ProcedureReturn l(1) + l(2) + l(3) + l(4) + l(5)
        EndIf
  Next e : Next d : Next c : Next b : Next a
  
  ProcedureReturn ""
  
EndProcedure

Code : Tout sélectionner

; VmwareDataSection.pb

DataSection
   ;{
  
  Charset:
  Data.i 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38, 49, 24, 25, 19, 31, 20, 22, 47, 45, 21
  
  nbr:
  Data.i 18, 19, 20, 21, 22, 23, 24, 25, 31, 32, 33, 34, 35, 36, 37, 38, 45, 46, 47, 48, 49
  
  lettre:
  Data.s  "e","r","t","y","u","i","o","p","s","d","f","g","h","j","k","l","x","c","v","b","n"
  
  ;}
EndDataSection


DataSection
  Vmware_ico_start:
   ;{
  
   Data.q $0A1A0A0D474E5089,$524448490D000000,$3000000030000000,$F902570000000608,$5948700900000087
    Data.q $0B0000130B000073,$0000189C9A000113,$00004D5248632000,$000083800000257A,$0000E9800000FFF9
    Data.q $000060EA00003075,$5F926F170000983A,$44492409000046C5,$6C4B5AECDA785441,$0FB999CEFE19D715
    Data.q $013535F018A05CDB,$6E1E15E2C6F08143,$289A2A55A4DA6E92,$5D555D36541BA2EA,$EAB2D376DD555175
    Data.q $4786CAA2269B1122,$2424100ADA52AEE9,$B7E380D82620BF18,$E6677BEBED70D721,$338F3B8F3177F39C
    Data.q $68EB1CA42B514636,$BE7FFF7CF19CCE66,$DC8BC22232E675FF,$86600BC2F6F05E38,$E38222053A9D4E2F
    Data.q $6B6B64E14285CD38,$F529415CB9738FEB,$D7D2A51294A7017F,$774447BC9E6666D7,$E8CE673380006319
    Data.q $D9D07F2948222005,$31B58EC763D7F9D9,$940471C2AD5AA06E,$05228294814A5052,$B8288A0A573DC8A5
    Data.q $23CFE45477B9FE47,$F3791118DEE37910,$6BB599F777AF3828,$BEDD5FE5CB67878B,$217D9FD4A53BFFD3
    Data.q $AFEBD2FDB6D802B4,$7CB9BE6F47E176BD,$20752A57CC51ABF8,$49D42F9C194A414A,$7628C6F585719FD5
    Data.q $0221CFE50BE60B8C,$9AF3757E461A6011,$7FA2221A9A3F4D3F,$F9B9B9A06D6AA802,$1007801ABEAF9D37
    Data.q $F5083BC58D215000,$600C0C6CF510800E,$1FE630318C006BB1,$20CEBDC670339D43,$F972E472C2B2C0A4
    Data.q $8B1711AA79F8003F,$040E6E65404077C5,$E7EB2FB4532E3572,$F9F1E31325484952,$5FAA2916ACD19591
    Data.q $6C37C86A4AFBBD53,$F9F2852A50F34D31,$0EAD1BE071DB72FC,$2550D1F46905E478,$A140B6F8CA111B6E
    Data.q $191B9C01805D98EB,$7CA44400AA4378C6,$C1D29D728B00BED0,$174022AB8622C627,$D54442FEF0444F02
    Data.q $302A5208A4000008,$2BED367A56376786,$E0510815DBAA8052,$A0180477AE40811A,$F55285EF8D4C1AC9
    Data.q $49F4B5254841F015,$8B51D4127D0A76D5,$D3F0F31191EE0850,$216850D1DAF80222,$07A575CB401718F7
    Data.q $DDE3406C841F4A99,$CF631819837214F4,$735D6AD0EC709B4D,$8D3F83401751DA9D,$C59E057C402B4A42
    Data.q $C052AEF102B82CD3,$02BA91084E237C13,$011AE35258198BFE,$0B0FB87E73C11084,$370FBDC21084A521
    Data.q $092A40421005C560,$3A0436ECF739C010,$79A0E38E02BF5F89,$80CD2A5021082AD5,$E384252175AA9E73
    Data.q $4211B1B1A02850A0,$23659618FC7E3C08,$68DB658485213193,$44406B35DAC46A6A,$7381299A51679728
    Data.q $84441B6DB01B830E,$0826A6C683BEAB55,$55AB5423F4F4C1C7,$B367B37C2F59B364,$5D83DDEDF6042101
    Data.q $F93E4F854A4276BB,$848C30C00C0C5F14,$2BC5933641C23AC1,$E5C89DEEF7610F87,$FD71C62626022072
    Data.q $36340BE773B8A7FA,$B0381C0EFEC8E136,$6AD40000AE572B1F,$ABE5CAE3F5F5F435,$38ED4DF6847E9E98
    Data.q $6C8ADD6EB608EC76,$E5C4989C98000336,$CE702EF3F371572B,$5894A406DC5F38C1,$C60ED8EC760562B9
    Data.q $F1FB8381C0D34C18,$6E68B56AD443C1E0,$FD6F5BC4C34C1524,$80C39E7AC5ADAD04,$604FB7EDE1D6EB75
    Data.q $C51EB0DA5E1B5B7D,$0F07838F88B11162,$717703031DBDBDA0,$116B62B004D1F8FC,$5C458B5A0EFBBEEF
    Data.q $C56B4E5CB90978BC,$7011C70631885C91,$EDED0E5CB2FEA71C,$CB2D98C456D9611B,$3B78F808BEC74742
    Data.q $5EADB87C0260F874,$3FDF9D6E1F05ACDD,$481659617B1D7D8E,$3331CE7002228AE3,$2DA4C8B191918333
    Data.q $2978011B8307BE5B,$11DCEE762CD9B225,$D9D9D9863A3A3799,$3EDEDE8AB56A8804,$DBC4A69065FBBDDC
    Data.q $530CF8DC6E18E8E8,$7BE83A1C45495393,$E9E9E80C006DC598,$00069A601B8DC6C1,$305A5A5A2D65A5A0
    Data.q $D76E8D70C3023232,$598F059614289DAE,$CECE847ECF670B35,$2E5E3048F47A38A3,$363E316707C1F197
    Data.q $270872BF0E14A50E,$3EDEBECAF234FC4E,$3E408420DFE1F87C,$CDE6C49D4F2FC79F,$DCE04D4D4DFB829B
    Data.q $9C1B135122036E80,$91E3E3E312627C63,$CAA50C865E3B1DF1,$8FD7D1051CBFB7DB,$FC3C34C5788CB972
    Data.q $91E7CF91C6C6C615,$0AB13F78343166C9,$21BE429521BAB75D,$8EDFF7F479F9F98F,$50046B0E252A67E5
    Data.q $DF1913DDDDD7C25E,$AD426B2D961379BC,$F6D6D01B0D86C356,$6706EEEADFF188DD,$DCC6702A4A67612C
    Data.q $C7322215EB9E0E44,$218DCA40C6701DB1,$75CC68B48AC128A4,$98A323231C6728D9,$A3A0C99331F3AA9A
    Data.q $ECF67B0B356A2F63,$C4BE0606D78D0376,$E4F52461B804D8F8,$B943EFD0B4883CBD,$9F55C1A3FDC82202
    Data.q $38476E8AF005E846,$6DB6DBDC8EEAEAE8,$1B4DA6C36FAFD62B,$5591796EBABBF323,$53933F2C908CED25
    Data.q $204F9958D2736942,$C182948015AF8A4A,$4CD2A500FFBFDC0D,$7E378DE02850AF70,$620DEF06008E8F58
    Data.q $F8BA06E986087068,$8B8CB3386519C3CB,$5692D202353EC910,$DC6E0A952BA74BC0,$644B62C5138911B8
    Data.q $42DA10826ECF8DFE,$E2B108011163D2D1,$60A528022968DF45,$3CB9421BDDEE269A,$1A1853939387FDAB
    Data.q $5255CBDE9A69821C,$9DEEA619C2FA9E55,$7A4BF469DD4EA3E1,$47B8F1FBECCA50A1,$A708E1D76BB5DBF2
    Data.q $2FE6112E6E4573CE,$0CF1980FD8949167,$96CE73EEC57D5220,$83334C3A2D1A37B2,$991CB97289BF3FCF
    Data.q $C83BFEFE8E363635,$2A54A005557A9998,$3569052EBE95E645,$42576236796CC303,$2B9142BB4F4F4C08
    Data.q $4839C4ABBEE84CCC,$8BD50A0169DE1229,$3B9C79F9F980C610,$373731870FC30177,$02EE7738BB818187
    Data.q $CF40B727FCB8E384,$DDDDD17A7B7A2698,$5C7EBEBE8CB9728B,$13A8264C991572BE,$313117F385C6DB6C
    Data.q $5FCFE70669528131,$E04618618F47A3C4,$BEFF3FE36FFBFBAE,$41BDDEE09E4F278C,$57686E7025FBFA5C
    Data.q $33D3E9F4E68D8580,$17D3D7D95F6DB75B,$060DB6DB3FDF1578,$16E2A54A873E5C86,$84252948B84F061D
    Data.q $BCFCFCC0686C6894,$1B6DB61C23C39FB7,$952A54739C166CD9,$DB1C111458F9ABC0,$980ACB2C13535346
    Data.q $BD1F58ED9AD55960,$AF2173D3277BFEFF,$9B8619315A2A6170,$125E5E1855AB55CC,$6A061A6CB5F039DF
    Data.q $00FAB23F75C05AB5,$1B366CB42A0CD34D,$166CD901AA5D1529,$2D0EADE631816596,$EA6D44F1B9E4036E
    Data.q $6838CD7DDC81F96D,$719597A8CC607E7F,$E0C378DF715E130F,$086003EFA4BDC6E3,$0C50796E4F15CD38
    Data.q $087885A2123DDC68,$FE0E3803446B6474,$EFED9089997D3F59,$45A6EFEC05A5701E,$085F18900E6C4084
    Data.q $E3FD40D8D782F3F0,$591E3D3B705F1102,$A4C03A37E588E7E3,$801518E8FD4B5A09,$A61F00E7F1CC9078
    Data.q $F800DF3E847C0E91,$B1368D85924F5164,$BFFB86A23EE717BD,$874FA7E542F09F06,$1AAEF8CABB0D1A22
    Data.q $CF34F71F05A32BF4,$A71EA521512A5E09,$D3F297F13131300A,$C720EE48686868A7,$4BB86E2C5820BDB4
    Data.q $4563E2148294AF05,$F6CE210802A91FEA,$489F31A1ABFCF5F6,$858C69B4DAF352CA,$77FBAB189BF8797C
    Data.q $D6A80074D31F7CD2,$2EC632DFC952632A,$54A956186180DAA7,$DF3E63F952A559FA,$5E318CBB264C8BF0
    Data.q $28E7CC269E3484AF,$378B88D44F9C63CF,$2C7F63B690A4A002,$DBA2E1EC6335F8A5,$F7FB6DB53C61862A
    Data.q $319DB9A6980CE38E,$66FCBD4A02054B96,$444C35294A41817E,$DF73268B036319E7,$FEDE96015BE256FE
    Data.q $F41C4CF28C39003B,$454900000000681B
    Data.b $4E,$44,$AE,$42,$60,$82

  ;}
  Vmware_ico_end:  
   
EndDataSection

Dernière modification par CaptainCrunch le dim. 01/mars/2015 4:57, modifié 7 fois.