anna
07-09-2004, 09:19 PM
I have a rom 10 card that is at Rev a16, is there something out there to open the card?? thanks in avance :} :} :} ;)
|
View Full Version : Rom 10 card anna 07-09-2004, 09:19 PM I have a rom 10 card that is at Rev a16, is there something out there to open the card?? thanks in avance :} :} :} ;) newbie09 07-09-2004, 09:43 PM I have a rom 10 card that is at Rev a16, is there something out there to open the card?? thanks in avance :} :} :} ;) A16 should be open, if not look here http://forums.dsstester.com/vbb/showthread.php?t=27764 anna 07-11-2004, 11:02 PM A16 should be open, if not look here http://forums.dsstester.com/vbb/showthread.php?t=27764 Hey thanks guy, thank you very much for the reply :wub: chuck 07-12-2004, 07:00 PM moved...this is files area charrahe 01-24-2008, 06:37 AM my rom 10 to 102 cannot open please help Opening of COM1 was successful ATR String: 3F FF 95 00 FF 91 81 71 A0 47 00 44 4E 41 53 50 30 31 30 20 75 69 72 65 64 20 05 ROM Revision: 010 EEPROM Revision: uired Dataspace pointer is bad - cannot continue GetCamProvider failed Using BD3 Key: 4E 69 70 50 45 72 20 49 73 20 61 20 62 75 54 74 Reading ROM10 failed Closing of COM1 was successful boldbarsteward 05-12-2008, 01:14 PM The below script fixes bad data space pointers. Fixes(glitches the OTP :yes: area)to fix the BOOTLOADER 90 00 !!! Have fun.:hat: Option Explicit Dim Shell Set Shell = CreateObject("WScript.Shell") dim TryCount dim cl dim rt Dim CmdToGlitch Dim CTGLen Dim CTGRSP Dim CS Dim Bytes Dim Bytes2 Dim DelayStart Dim DelayLimit Dim VCCStart Dim VCCLimit Dim GlitchType Dim GlitchMax Dim GlitchMin Dim Delay Dim VCC Dim RstFlg Dim Trys Dim Mix Dim RomType Sub Main() Sc.Verbose = 0 ClearOutputWindow Reset() Sc.Delay(20) RomType = "Rom" & Chr(Sc.GetByte(17)) & Chr(Sc.GetByte(18)) If RomType <> "Rom10" And RomType <> "Rom11" Then Sc.Print Sc.Print "Unrecognised or unsupported ROM type." & vbCr Sc.Print Exit Sub End If ' Sc.Print "=====================" & vbCr Sc.Print "Trying to fix a " & RomType & vbCr Sc.Print "=====================" & vbCr Sc.Print ' Sc.Write("19 03 15 6010 21000DA0CA00000721050603FFFF002040 0E05 95 00") Sc.Read(02) Bytes = Sc.GetByte(1) If Bytes < 4 Then Sc.Print "Card did not respond correctly." & vbCr Exit Sub End If Sc.Read(Bytes) ' If Sc.GetByte(3) <> &H69 Or Sc.GetByte(4) <> &H85 Then '12 00 02 69 85 Sc.Print "Card does not appear to have a corrupted data space pointer." & vbCr Exit Sub End If ' Sc.Delay(2000) '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ VCCStart = &h30 'h25 is standard, script is auto vcc dont change 90 VCCLimit = &h00 'h05 is standard, script is auto vcc dont change 02 '================================================= == '================================================= == 'User selectable options '================================================= == '================================================= == SetupUnlocker() If RomType = "Rom10" Then DelayStart = &H0E00 DelayLimit = &H1200 End If ' If RomType = "Rom11" Then DelayStart = &H12A0 DelayLimit = &H1600 End If GlitchMax = 10 '7 is standard - 7, 8, or 9 GlitchMin = 4 '7 is standard - 6, or 7 Trys = 64 '100 is standard Mix = 0.1428 '0.5 is standard - try 0.1 to 1.2 use for +-+-+-+- mix '************************************************* ************************* If RomType = "Rom10" Then CmdToGlitch = "210045A0D7008040 FD90500013B79700566D3B8388EC86F0895331F7D104EB6D17 119E1D3992D04C4E9AC2C718AC4A5F2E028A1C3A700721E5AF 0BC804EE4F56E4E58A4D4F274C12" End If ' If RomType = "Rom11" Then CmdToGlitch = "210045A0D7008040 F497205D65EA9D9FC3F0D8FA379F9BDF39FF636F1CEFAF4B80 B3A31B66F758133CD2D241083542DEAB680FB5A4BB3D952E29 CD6CBC556C11AE9B2AD3CB432CDC" End If CTGRSP = 6 '************************************************* ************************* CTGLen = GetPacketLen(CmdToGlitch) 'calculate length of packet CTGLen = CTGLen / 2 CTGLen = CTGLen + 1 CS=DoCheckSum (CmdToGlitch) 'Calculates packet Checksum CmdToGlitch = CmdToGlitch + CS 'add checksum to packet GlitchType = GlitchMax Delay = DelayStart TryCount = 0 RstFlg = 1 VCC = VCCStart ClearOutputWindow Sc.Print " INITIAL PARAMETERS " & VbCr & vbcr Sc.Print " Glitch Delay = "& HexString(Delay, 4) & VbCr Sc.Print " VCC = "& HexString(VCC, 2) & VbCr sc.print " Glitch Type = "& HexString(glitchtype, 2) & VbCr Sc.Print " " & VbCr Do If RstFlg = 1 Then Reset() Sc.Write("0C 03 15 A4 21C1016485 0E01 84 00") Sc.Read(2) bytes = Sc.GetByte(1) Sc.Read(bytes) RstFlg = 0 Else 'send our glitch command Sc.Write("B0" & HexString(VCC, 2)) 'set glitch VCC Sc.Write(HexString((CTGLen + 12), 2) & "0315 60" & HexString((CTGLen-1 ), 2) & CmdToGlitch & "20" & HexString(Delay, 4) & HexString(GlitchType, 2) & "0E158500") Sc.Read (02) Bytes = Sc.GetByte(1) rt = Bytes If Bytes > 3 Then Sc.Read(Bytes) Bytes = Sc.GetByte(0) Bytes2 = Sc.GetByte(3) If Bytes = &H12 Then VCC = VCC - Mix Sc.Print "-" '& hexstring(VCC, 2) Else VCC = VCC + Mix Sc.Print "+" '& hexstring(VCC, 2) If Bytes <> &H00 And Bytes <> &hFF Then Sc.Print HexString(bytes,2) End If RstFlg = 1 End If ' If Bytes2 = &h90 Then ' If (RomType = "Rom10" And Bytes = &H00) Or (RomType = "Rom11" And Bytes = &H12) Then Sc.Print HexString(bytes2 ,2) & "!!!!!" & VBCR Sc.Delay(300) Sc.Verbose = 1 Sc.Write("A1") Sc.Print VbCr Shell.Run "%comspec% /c echo " & Chr(07) & Chr(07) & Chr(07) & Chr(07) & Chr(07), 0, True Sc.Print "===============================================" & VbCr Sc.Print "Glitch Success!! " & UCase(RomType) & " DATA SPACE POINTER FIXED" & VbCr Sc.Print "BootLoader 90 00 RSP Received!!" & VbCr Sc.Print "VCC = "& HexString(VCC, 2) & " (~" & ((5/255) * VCC) &" vdc)" & VbCr Sc.Print "Glitch Delay = "& HexString(Delay, 4) & VbCr Sc.Print "Glitch type " & HexString(GlitchType, 2) & VbCr Sc.Print "Developed @ http://pinklush.tk/" & VbCr Sc.Print "===============================================" & VbCr Exit Sub End If End If Else VCC = VCC + Mix + Mix print "Rst" & HexString(VCC,2) RstFlg =1 End If ' If VCC + Mix = 0 Then VCC = VCCStart End if ' GlitchType = GlitchType - 1 If GlitchType < GlitchMin Then GlitchType = GlitchMax End If ' TryCount = TryCount + 1 If TryCount > Trys/Mix Then TryCount = 0 ' ClearOutPutwindow Delay = Delay + 1 If Delay > DelayLimit Then Delay = DelayStart End If ' Sc.Print "" & VbCr Sc.Print " TRYING NEW DELAY.... " & VbCr Sc.Print " Glitch Delay = "& HexString(Delay, 4) & VbCr Sc.Print " VCC = "& HexString(VCC, 2) & VbCr sc.print " Glitch Type = "& glitchtype & VbCr Sc.Print " " & VbCr End If End If Loop End Sub '************************************************* ****************************************** 'functions * '************************************************* ****************************************** Function GetPacketLen (Packet) 'removes all spaces and calculates thength of the packet Dim Length Dim Temp Dim PK Dim i PK = "" Length = Len(Packet) 'get packet length with spaces For i = 1 to Length Temp = Mid(Packet, i, 1) If Temp <> " " Then 'remove all spaces in packet PK = PK + Temp End if Next GetPacketLen = Len(PK) 'return packet length without spaces End Function Function DoCheckSum (Packet) 'claculates lrc and removes any spaces in data Dim Temp Dim Length Dim PK Dim CheckSum Dim i PK="" Length = Len(Packet) 'get packet length with spaces For i = 1 to Length Temp = Mid(Packet, i, 1) If Temp <> " " Then 'remove all spaces in packet PK = PK + Temp End if Next CheckSum = 0 Length = Len(PK) 'get packet length without spaces For i = 0 to Length i=i+1 'Simulate Step 2 in VB scripting Temp = Mid(PK, i, 2) CheckSum = CheckSum XOR Hex2Dec(Temp) 'Calc Checksum Next DoCheckSum = HexString(CheckSum, 2) 'convert checksum to a hex strimg and return it to caller End Function Function Hex2Dec(HexNumber) ' This function takes 1 argument, a string containing a hex value of any digit length ' and returns the decimal equivalent Dim DecimalValue Dim DigitCount Dim Digit Dim HexDigit HexNumber = Replace(UCase(HexNumber), " ", "") DigitCount = Len(HexNumber) For Digit = 1 To DigitCount HexDigit = Mid(HexNumber, Digit, 1) If Asc(HexDigit) < 58 Then DecimalValue = HexDigit * 16 ^ (DigitCount - Digit) Else DecimalValue = (Asc(HexDigit) - 55) * 16 ^ (DigitCount - Digit) End If Hex2Dec = Hex2Dec + DecimalValue Next End Function Function HexString(Number,Length) ' This function takes 2 arguments, a number and a length. It converts the decimal ' number given by the first argument to a Hexidecimal string with its length ' equal to the number of digits given by the second argument Dim RetVal Dim CurLen RetVal=Hex(Number) CurLen=Len(RetVal) If CurLen<Length Then RetVal=String(Length-CurLen,"0") & RetVal End If HexString=RetVal End Function Function SetupUnlocker() Sc.Print "________________Setting up WinExplorer_________________" & VbCr Wx.BaudRate = 115200 Wx.ResetBaudRate = 115200 Wx.Parity = 0 ' 0 = None, 1 = Odd, 2 = Even, 3 = Mark, 4 = Space Wx.StopBits = 0 ' 0 = 1 stop bit, 1 = 1.5 stop bits, 2 = 2 stop bits Wx.DTRControl = 0 ' Initial state of DTR 0 = off, 1 = on Wx.RTSControl = 1 ' Initial state of RTS 0 = off, 1 = on Wx.ResetDelay = 100 ' In microseconds Wx.ByteDelay = 10 ' In microseconds Wx.RxByteTimeout = 500 ' In milliseconds Wx.ResetMode = 2 ' 0 = No Resets, 1 = ISO Reset (Expect a ATR), 2 = Device Reset (No ATR) Wx.ResetLine = 1 ' 0 = Toggle RTS for Reset, 1 = Toggle DTR for Reset Wx.ByteConvention = 1 ' 0 = Inverse, 1 = Direct Wx.FlushEchoByte = 0 ' 0 = no flush, 1 = flush - A Phoenix interface will echo each byte transmitted. Wx.FlushBeforeWrite = 1 ' 0 = no flush, 1 = flush - Flush the receive buffer before each write to strip off Null bytes. Wx.IgnoreTimeouts = 1 ' 0 = Abort script on a receive timeout, 1 = Ignore all receive timeouts Wx.ResetAfterTimeout = 0 ' 0 = Don't reset after a timeout, 1 = do a reset after a timeout - Not used if "IgnoreTimeouts=0" Wx.LogTransactions = 0 ' 0 = Don't log transactions, 1 = log transactions Wx.DisplayUSW = 0 ' Display USW after script complete 0 = no, 1 = yes Wx.DisplayFuse = 0 ' Display Fuse after script complete 0 = no, 1 = yes End function Function Reset 'resets the card and reads off the atr. this also determines rom type Sc.Write("02 03 00") Sc.Write("02 02 00") Sc.Delay(16) Sc.Write("07 0E 03 10 01 03 9A 00") 'reset card Sc.Read(02) Bytes = Sc.GetByte(1) If Bytes > 25 Then Sc.Read(Bytes) End if End Function |