Regarding the recent FUD about "Ryzen Timing Checker" (RTC) - Overclock.net - An Overclocking Community

View Poll Results: Has using "Ryzen Timing Checker" caused any issues on your system?
Yes (please elaborate in a separate post) 6 6.52%
No 86 93.48%
Voters: 92. You may not vote on this poll

Forum Jump: 

Regarding the recent FUD about "Ryzen Timing Checker" (RTC)

Reply
 
Thread Tools
post #1 of 129 (permalink) Old 12-14-2017, 10:44 AM - Thread Starter
New to Overclock.net
 
The Stilt's Avatar
 
Join Date: May 2013
Posts: 2,341
Rep: 795 (Unique: 303)
During the past couple days a certain person (or persons) have been spreading blatant lies about the "Ryzen Timing Checker", claiming that it features malware and puts the systems it has been executed on in immediate risk.

Several additional claims regarding various aspects of it have been made by the same person, but listing all of them would be rather futile as some of the claims are outright insane (some of the claims about me e.g. working for "an outfit" can still be found from other topic on this forum).

So what Ryzen Timing Checker actually is and what exactly does it do?

RTC is a tiny application which can be used to read most of the DRAM timings on Zeppelin and Raven based CPUs and APUs. RTC accesses the DRAM timing (UMC) registers through the standard access port located in the PCI config space (SBDF). It uses a separate WinRing0 driver to access the hardware, because Windows (unlike Linux) doesn't provide a built-in access. Upon starting the RTC it executes several predefined PCI read and write operations (to the SMU data ports) and an additional MSR read operation (in order to check the platform compability). Once the program has finished reading the necessary registers, it displays the results and waits until the GUI window is terminated by the user. It doesn't perform any actions once the GUI is visible and never accesses the internet or the memory space.

How Ryzen Timing Checker was coded?

RTC uses AutoIT engine (version 3.3.14.2 to be specific). AutoIT is an automation language, and it's syntaxes are similar to BASIC. AutoIT is extremely versatile and based on my experience it is no lesser than the actual programming languages (C, C++, etc.) in terms of functionality, yet much more easier to produce code on.

AutoIT, like each and every other coding style / language has also been used for malicous purposes in the past. Because of that, some of the lesser AV solutions generally automatically flag all AutoIT executables as malware, regardless if there is anything malicious in them or not. Reputable AV providers such as F-Secure, Kaspersky or Symantec don't do that.

Read more about AutoIT: https://en.wikipedia.org/wiki/AutoIt
Check AutoIT's official website and user forum featuring > 72k members.

If there isn't anything malicious in the code, then why is the RTC binary distribution password protected and the binary itself encrypted?

The most convinient place for me (and the users downloading it) to host any file for the time being is OneDrive. There are several other potential places to host the files at, but none of the other free solutions are ad, popup and potentially malware ( wink.gif ) free. Based on my past experience OneDrive prevents downloading any archive, which contains an executable binary in it (regardless if it's e.g. the newest official Blender build). To prevent this behavior and to make it possible the users to download the app in the first place, the archive was password protected. That's simply a workaround for OneDrive's behavior, since it cannot block and archive containing an exe file if it cannot see it.

The RTC binary is not encrypted in any way. The RTC script is simply obfuscated in order to protect access methods and register information (i.e. which PCI device to access, which offsets and which SMU addresses), which as of now is still confidential. You can check if that's really the case by looking at the Zeppelin PPR available at AMD Techdocs: http://support.amd.com/TechDocs/54945_PPR_Family_17h_Models_00h-0Fh.pdf This document does not disclose (try seaching for a DRAM timing, e.g. tRFC) any of the information I just mentioned, and neither does any of the Github or Linux repos (as far as I know).

As said before, obfuscating the code makes it significantly harder to read (eventhou still possible) but it is by no means a method of encryption as it can still be read.

In order to end all of this crap that has been spread during the past couple days, I decided to release the non-obfuscated "source code" of the exact script used for RTC 1.01 version. The only changes which have been made to the code is related to confidential register info. In the sanitized version of the code the register addresses are set to zero. In order to compare the resulting code between the original release and the one you just compiled yourself, use following workflow:

How to audit the code?

- Download AutoIT: https://www.autoitscript.com/site/autoit/downloads/
- Install it
- Download the Obfuscator version used for RTC (AutoIt3 Source Obfuscator v1.0.30.4, by Jos van der Zande): https://1drv.ms/u/s!Ag6oE4SOsCmDhRTQg6bz8L_qyc8p (PW: Obfuscator)
- Save the script as Audit.au3
- Obfuscate the script source (.au3) using command "Obfuscator Audit.au3"
- Compile the resulting Audit_Obfuscated.au3 with AutoIT x64
- Download the original RTC 1.01 release: https://1drv.ms/u/s!Ag6oE4SOsCmDhQW33FeZaWSlOIds (PW: RyzenDRAM)
- Use 7-Zip to extract the compiled script from both of the exes (.rsrc\0\RCDATA\SCRIPT)
- Compare the sizes and other similarities

The size will differ by few bytes due to the sanitized register values, however you can verify that by changing them yourself as well.
Also try what happens if you make other kind of changes to the code.
RTC 1.01 SCRIPT SOURCE (Click to show)
Code:
#RequireAdmin
#NoTrayIcon
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
If Not FileExists("WinRing0x64.dll") Then
   MsgBox(16, "Error: A missing component", "Part of the driver: WinRing0x64.dll is missing!")
   Exit
ElseIf Not FileExists("WinRing0x64.sys") Then
   MsgBox(16, "Error: A missing component", "Part of the driver: WinRing0x64.sys is missing!")
   Exit
EndIf
If FileExists("Slow.txt") Then
   $SMUDelay = 60
Else
   $SMUDelay = 20
EndIf
$DLL = DllOpen("WinRing0x64.dll")
$InitCheck = DllCall($DLL, "bool", "InitializeOls")
Sleep(100)
$DllCheck = DllCall($DLL, "dword", "GetDllStatus")
Sleep(100)
If $InitCheck[0] = 0 Then
   MsgBox(16, "Cannot initialize the driver!", "The driver failed to initialize!")
   Exit
EndIf
If $DllCheck[0] = 1 Then
   MsgBox(16, "Driver error", "This platform is not supported by the driver!")
   Exit
ElseIf $DllCheck[0] = 2 Then
   MsgBox(16, "Driver error", "The driver could not be loaded!")
   Exit
ElseIf $DllCheck[0] = 3 Then
   MsgBox(16, "Driver error", "The driver seems to be incomplete. Please relocate the files!")
   Exit
ElseIf $DllCheck[0] = 4 Then
   MsgBox(16, "Driver error", "The driver has been unloaded unexpectedly!")
   Exit
ElseIf $DllCheck[0] = 9 Then
   MsgBox(16, "Driver error", "An unspecified error has occured!")
   Exit
EndIf
$CPUID = ""
$CPUFMS = ""
$SMUORG = ""
$BGS = ""
$DramConfiguration = ""
$DramTiming1 = ""
$DramTiming2 = ""
$DramTiming3 = ""
$DramTiming4 = ""
$DramTiming5 = ""
$DramTiming6 = ""
$DramTiming7 = ""
$DramTiming8 = ""
$DramTiming9 = ""
$DramTiming10 = ""
$DramTiming12 = ""
$DramTiming13 = ""
$DramTiming20 = ""
$DramTiming21 = ""
$DramTiming22 = ""
$tRFCTiming0 = ""
$tRFCTiming1 = ""
$tSTAGTiming0 = ""
$tSTAGTiming1 = ""
$DramTiming35 = ""
$tRFCTiming = ""
$tSTAGTiming = ""
$Preamble2T = ""
$GDM = ""
$Cmd2T = ""
$MEMCLK = ""
$MEMCLKTRxx = ""
$tRCDWR = ""
$tRCDRD = ""
$tRAS = ""
$tCL = ""
$tRPPB = ""
$tRP = ""
$tRCPB = ""
$tRC = ""
$tRTP = ""
$tRRDDLR = ""
$tRRDL = ""
$tRRDS = ""
$tFAWDLR = ""
$tFAWSLR = ""
$tFAW = ""
$tWTRL = ""
$tWTRS = ""
$tCWL = ""
$tWR = ""
$tRCPage = ""
$tRDRDBAN = ""
$tRDRDSCL = ""
$tRDRDSCDLR = ""
$tRDRDSC = ""
$tRDRDSD = ""
$tRDRDDD = ""
$tWRWRBAN = ""
$tWRWRSCL = ""
$tWRWRSCDLR = ""
$tWRWRSC = ""
$tWRWRSD = ""
$tWRWRDD = ""
$tWRRDSCDLR = ""
$tRDWR = ""
$tWRRD = ""
$tREF = ""
$tREFCT = ""
$tMODPDA = ""
$tMRDPDA = ""
$tMOD = ""
$tMRD = ""
$tSTAG = ""
$tCKE = ""
$tPHYWRD = ""
$tPHYRDLAT = ""
$tPHYWRLAT = ""
$tRDDATA = ""
$tRFC4 = ""
$tRFC4CT = ""
$tRFC2 = ""
$tRFC2CT = ""
$tRFC = ""
$tRFCCT = ""
$tSTAG4LR = ""
$tSTAG2LR = ""
$tSTAGLR = ""
$tWRMPR = ""
$CPUID = DllCall($DLL, "dword", "CpuidPx", "dword", "0x80000001", "dword*", "", "dword*", "", "dword*", "", "dword*", "", "uint", "0x01")
$CPUFMS = BitAND($CPUID[2], 0xFFFF00)
If Not ($CPUFMS = "0x00800F00" Or $CPUFMS = "0x00810F00") Then
   Msgbox(16, "Error", "The software only supports RV & ZP based Ryzen CPUs")
   DllCall($DLL, "none", "DeinitializeOls")
   Exit
EndIf
$SMUORG = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$BGS = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$BGSA = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramConfiguration = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming1 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming2 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming3 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming4 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming5 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming6 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming7 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming8 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming9 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming10 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming12 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming13 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming20 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming21 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming22 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$tRFCTiming0 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$tRFCTiming1 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$tSTAGTiming0 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$tSTAGTiming1 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "0x00000000")
Sleep($SMUDelay)
$DramTiming35 = DllCall($DLL, "dword", "ReadPciConfigDword", "byte", "0x00", "byte", "0x00", "dword", "")
Sleep($SMUDelay)

DllCall($DLL, "dword", "WritePciConfigDword", "byte", "0x00", "byte", "0x00", "dword", $SMUORG[0])
Sleep($SMUDelay)

If $tRFCTiming0[0] = $tRFCTiming1[0] Then ; Checks if 2DPC is used or if tRFC has been manually set.
   $tRFCTiming = $tRFCTiming0[0]
   $tSTAGTiming = $tSTAGTiming0[0]
ElseIf $tRFCTiming0[0] = 0x21060138 Then ; Checks if DIMM0 tRFC is set to AGESA defaults, meaning DIMM1 is populated.
   $tRFCTiming = $tRFCTiming1[0]
   $tSTAGTiming = $tSTAGTiming1[0]
Else
   $tRFCTiming = $tRFCTiming0[0]
   $tSTAGTiming = $tSTAGTiming0[0]
EndIf

If $BGS[0] = 2271560481 Then
   $BGS = "Disabled"
Else
   $BGS = "Enabled"
EndIf

If $BGSA[0] = 286328817 Then
   $BGSA = "Enabled"
Else
   $BGSA = "Disabled"
EndIf

$Preamble2T = BitAND($DramConfiguration[0], 0x1000)
$Preamble2T = BitShift($Preamble2T, 12)
If $Preamble2T = 1 Then
   $Preamble2T = "Enabled"
Else
   $Preamble2T = "Disabled"
EndIf

$GDM = BitAND($DramConfiguration[0], 0x800)
$GDM = BitShift($GDM, 11)
If $GDM = 1 Then
   $GDM = "Enabled"
Else
   $GDM = "Disabled"
EndIf

$Cmd2T = BitAND($DramConfiguration[0], 0x400)
$Cmd2T = BitShift($Cmd2T, 10)
If $Cmd2T = 1 Then
   $Cmd2T = "2T"
Else
   $Cmd2T = "1T"
EndIf

$MEMCLK = BitAND($DramConfiguration[0], 0x7F)
$MEMCLKTRxx = ($MEMCLK / 3) * 100
$MEMCLK = Int(($MEMCLK / 3) * 200)

$tRCDWR = BitAND($DramTiming1[0], 0x3F000000)
$tRCDWR = BitShift($tRCDWR, 24)

$tRCDRD = BitAND($DramTiming1[0], 0x3F0000)
$tRCDRD = BitShift($tRCDRD, 16)

$tRAS = BitAND($DramTiming1[0], 0x7F00)
$tRAS = BitShift($tRAS, 8)

$tCL = BitAND($DramTiming1[0], 0x3F)

$tRPPB = BitAND($DramTiming2[0], 0x3F000000)
$tRPPB = BitShift($tRPPB, 24)

$tRP = BitAND($DramTiming2[0], 0x3F0000)
$tRP = BitShift($tRP, 16)

$tRCPB = BitAND($DramTiming2[0], 0xFF00)
$tRCPB = BitShift($tRCPB, 8)

$tRC = BitAND($DramTiming2[0], 0xFF)

$tRTP = BitAND($DramTiming3[0], 0x1F000000)
$tRTP = BitShift($tRTP, 24)

$tRRDDLR = BitAND($DramTiming3[0], 0x1F0000)
$tRRDDLR = BitShift($tRRDDLR, 16)

$tRRDL = BitAND($DramTiming3[0], 0x1F00)
$tRRDL = BitShift($tRRDL, 8)

$tRRDS = BitAND($DramTiming3[0], 0x1F)

$tFAWDLR = BitAND($DramTiming4[0], 0x7E000000)
$tFAWDLR = BitShift($tFAWDLR, 25)

$tFAWSLR = BitAND($DramTiming4[0], 0xFC0000)
$tFAWSLR = BitShift($tFAWSLR, 18)

$tFAW = BitAND($DramTiming4[0], 0x7F)

$tWTRL = BitAND($DramTiming5[0], 0x7F0000)
$tWTRL = BitShift($tWTRL, 16)

$tWTRS = BitAND($DramTiming5[0], 0x1F00)
$tWTRS = BitShift($tWTRS, 8)

$tCWL = BitAND($DramTiming5[0], 0x3F)

$tWR = BitAND($DramTiming6[0], 0x7F)

$tRCPage = BitAND($DramTiming7[0], 0xFFF00000)
$tRCPage = BitShift($tRCPage, 20)

$tRDRDBAN = BitAND($DramTiming8[0], 0xC0000000)
$tRDRDBAN = BitShift($tRDRDBAN, 30)
If $tRDRDBAN = 0 Then
   $tRDRDBAN = "Disabled"
ElseIf $tRDRDBAN = 1 Then
   $tRDRDBAN = "Ban 2"
ElseIf $tRDRDBAN = 2 Then
   $tRDRDBAN = "Ban 2&3"
EndIf

$tRDRDSCL = BitAND($DramTiming8[0], 0xF000000)
$tRDRDSCL = BitShift($tRDRDSCL, 24)

$tRDRDSCDLR = BitAND($DramTiming8[0], 0xF00000)
$tRDRDSCDLR = BitShift($tRDRDSCDLR, 20)

$tRDRDSC = BitAND($DramTiming8[0], 0xF0000)
$tRDRDSC = BitShift($tRDRDSC, 16)

$tRDRDSD = BitAND($DramTiming8[0], 0xF00)
$tRDRDSD = BitShift($tRDRDSD, 8)

$tRDRDDD = BitAND($DramTiming8[0], 0xF)

$tWRWRBAN = BitAND($DramTiming9[0], 0xC0000000)
$tWRWRBAN = BitShift($tWRWRBAN, 30)
If $tWRWRBAN = 0 Then
   $tWRWRBAN = "Disabled"
ElseIf $tWRWRBAN = 1 Then
   $tWRWRBAN = "Ban 2"
ElseIf $tWRWRBAN = 2 Then
   $tWRWRBAN = "Ban 2&3"
EndIf

$tWRWRSCL = BitAND($DramTiming9[0], 0x3F000000)
$tWRWRSCL = BitShift($tWRWRSCL, 24)

$tWRWRSCDLR = BitAND($DramTiming9[0], 0xF00000)
$tWRWRSCDLR = BitShift($tWRWRSCDLR, 20)

$tWRWRSC = BitAND($DramTiming9[0], 0xF0000)
$tWRWRSC = BitShift($tWRWRSC, 16)

$tWRWRSD = BitAND($DramTiming9[0], 0xF00)
$tWRWRSD = BitShift($tWRWRSD, 8)

$tWRWRDD = BitAND($DramTiming9[0], 0xF)

$tWRRDSCDLR = BitAND($DramTiming10[0], 0x1F0000)
$tWRRDSCDLR = BitShift($tWRRDSCDLR, 16)

$tRDWR = BitAND($DramTiming10[0], 0x1F00)
$tRDWR = BitShift($tRDWR, 8)

$tWRRD = BitAND($DramTiming10[0], 0xF)

$tREF = BitAND($DramTiming12[0], 0xFFFF)
$tREFCT = Int(((1000 / $MEMCLKTRxx) * $tREF))

$tMODPDA = BitAND($DramTiming13[0], 0x3F000000)
$tMODPDA = BitShift($tMODPDA, 24)

$tMRDPDA = BitAND($DramTiming13[0], 0x3F0000)
$tMRDPDA = BitShift($tMRDPDA, 16)

$tMOD = BitAND($DramTiming13[0], 0x3F00)
$tMOD = BitShift($tMOD, 8)

$tMRD = BitAND($DramTiming13[0], 0x3F)

$tSTAG = BitAND($DramTiming20[0], 0xFF0000)
$tSTAG = BitShift($tSTAG, 16)

$tCKE = BitAND($DramTiming21[0], 0x1F000000)
$tCKE = BitShift($tCKE, 24)

$tPHYWRD = BitAND($DramTiming22[0], 0x7000000)
$tPHYWRD = BitShift($tPHYWRD, 24)

$tPHYRDLAT = BitAND($DramTiming22[0], 0x3F0000)
$tPHYRDLAT = BitShift($tPHYRDLAT, 16)

$tPHYWRLAT = BitAND($DramTiming22[0], 0x1F00)
$tPHYWRLAT = BitShift($tPHYWRLAT, 8)

$tRDDATA = BitAND($DramTiming22[0], 0x7F)

$tRFC4 = BitAND($tRFCTiming, 0xFFC00000)
$tRFC4 = BitShift($tRFC4, 22)

$tRFC4CT = Round(((1000 / $MEMCLKTRxx) * $tRFC4), 3)

$tRFC2 = BitAND($tRFCTiming, 0x3FF800)
$tRFC2 = BitShift($tRFC4, 11)
$tRFC2CT = Round(((1000 / $MEMCLKTRxx) * $tRFC2), 3)

$tRFC = BitAND($tRFCTiming, 0x7FF)
$tRFCCT = Round(((1000 / $MEMCLKTRxx) * $tRFC), 3)

$tSTAG4LR = BitAND($tSTAGTiming, 0x1FF00000)
$tSTAG4LR = BitShift($tSTAG4LR, 20)
If $tSTAG4LR = 0 Then
   $tSTAG4LR = "Disabled"
EndIf

$tSTAG2LR = BitAND($tSTAGTiming, 0x7FC00)
$tSTAG2LR = BitShift($tSTAG2LR, 10)
If $tSTAG2LR = 0 Then
   $tSTAG2LR = "Disabled"
EndIf

$tSTAGLR = BitAND($tSTAGTiming, 0x1FF)
If $tSTAGLR = 0 Then
   $tSTAGLR = "Disabled"
EndIf

$tWRMPR = BitAND($DramTiming35[0], 0x3F000000)
$tWRMPR = BitShift($tWRMPR, 24)
$RTC = GUICreate("Ryzen Timing Checker", 520, 600, 192, 124)
$MEMCLKBox = GUICtrlCreateInput($MEMCLK, 10, 14, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$MEMCLKLabel = GUICtrlCreateLabel("MEMCLK Ratio", 80, 17, 95, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($MEMCLKBox, $GUI_DISABLE)

$Cmd2tBox = GUICtrlCreateInput($GDM, 170, 14, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$Cmd2tLabel = GUICtrlCreateLabel("GearDownMode", 240, 17, 85, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($Cmd2tBox, $GUI_DISABLE)

$GDMBox = GUICtrlCreateInput($Cmd2t, 10, 44, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$GDMLabel = GUICtrlCreateLabel("Cmd2t", 80, 47, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($GDMBox, $GUI_DISABLE)

$BGSBox = GUICtrlCreateInput($BGS, 170, 44, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$BGSLabel = GUICtrlCreateLabel("BankGroupSwap", 240, 47, 85, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($BGSBox, $GUI_DISABLE)

$BGSABox = GUICtrlCreateInput($BGSA, 330, 14, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$BGSALabel = GUICtrlCreateLabel("BankGroupSwapAlt", 400, 17, 100, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($BGSABox, $GUI_DISABLE)

$tCLBox = GUICtrlCreateInput($tCL, 10, 94, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tCLLabel = GUICtrlCreateLabel("tCL", 80, 97, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tCLBox, $GUI_DISABLE)

$tRCDWRBox = GUICtrlCreateInput($tRCDWR, 10, 124, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRCDWRLabel = GUICtrlCreateLabel("tRCDWR", 80, 127, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRCDWRBox, $GUI_DISABLE)

$tRCDRDBox = GUICtrlCreateInput($tRCDRD, 10, 154, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRCDRDLabel = GUICtrlCreateLabel("tRCDRD", 80, 157, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRCDRDBox, $GUI_DISABLE)

$tRPBox = GUICtrlCreateInput($tRP, 10, 184, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRPLabel = GUICtrlCreateLabel("tRP", 80, 187, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRPBox, $GUI_DISABLE)

$tRASBox = GUICtrlCreateInput($tRAS, 10, 214, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRASLabel = GUICtrlCreateLabel("tRAS", 80, 217, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRASBox, $GUI_DISABLE)

$tRCBox = GUICtrlCreateInput($tRC, 10, 244, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRCLabel = GUICtrlCreateLabel("tRC", 80, 247, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRCBox, $GUI_DISABLE)

$tRRDSBox = GUICtrlCreateInput($tRRDS, 10, 274, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRRDSLabel = GUICtrlCreateLabel("tRRDS", 80, 277, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRRDSBox, $GUI_DISABLE)

$tRRDLBox = GUICtrlCreateInput($tRRDL, 10, 304, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRRDLLabel = GUICtrlCreateLabel("tRRDL", 80, 307, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRRDLBox, $GUI_DISABLE)

$tFAWBox = GUICtrlCreateInput($tFAW, 10, 334, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tFAWLabel = GUICtrlCreateLabel("tFAW", 80, 337, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tFAWBox, $GUI_DISABLE)

$tFAWDLRBox = GUICtrlCreateInput($tFAWDLR, 10, 364, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tFAWDLRLabel = GUICtrlCreateLabel("tFAWDLR", 80, 367, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tFAWDLRBox, $GUI_DISABLE)

$tFAWSLRBox = GUICtrlCreateInput($tFAWSLR, 10, 394, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tFAWSLRLabel = GUICtrlCreateLabel("tFAWSLR", 80, 397, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tFAWSLRBox, $GUI_DISABLE)

$tWTRSBox = GUICtrlCreateInput($tWTRS, 10, 424, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWTRSLabel = GUICtrlCreateLabel("tWTRS", 80, 427, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWTRSBox, $GUI_DISABLE)

$tWTRLBox = GUICtrlCreateInput($tWTRL, 10, 454, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWTRLLabel = GUICtrlCreateLabel("tWTRL", 80, 457, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWTRLBox, $GUI_DISABLE)

$tWRBox = GUICtrlCreateInput($tWR, 10, 484, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRLabel = GUICtrlCreateLabel("tWR", 80, 487, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRBox, $GUI_DISABLE)

$tRCPageBox = GUICtrlCreateInput($tRCPage, 10, 514, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRCPageLabel = GUICtrlCreateLabel("tRCPage", 80, 517, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRCPageBox, $GUI_DISABLE)

$tRDRDSCLBox = GUICtrlCreateInput($tRDRDSCL, 10, 544, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRDRDSCLLabel = GUICtrlCreateLabel("tRDRDSCL", 80, 547, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRDRDSCLBox, $GUI_DISABLE)

$tWRWRSCLBox = GUICtrlCreateInput($tWRWRSCL, 10, 574, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRWRSCLLabel = GUICtrlCreateLabel("tWRWRSCL", 80, 577, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRWRSCLBox, $GUI_DISABLE)

$tRFCBox = GUICtrlCreateInput($tRFC, 170, 94, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRFCLabel = GUICtrlCreateLabel("tRFC", 240, 97, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRFCBox, $GUI_DISABLE)

$tRFCCTBox = GUICtrlCreateInput($tRFCCT, 170, 124, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRFCCTLabel = GUICtrlCreateLabel("tRFC (ns)", 240, 127, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRFCCTBox, $GUI_DISABLE)

$tCWLBox = GUICtrlCreateInput($tCWL, 170, 154, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tCWLLabel = GUICtrlCreateLabel("tCWL", 240, 157, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tCWLBox, $GUI_DISABLE)

$tRTPBox = GUICtrlCreateInput($tRTP, 170, 184, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRTPLabel = GUICtrlCreateLabel("tRTP", 240, 187, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRTPBox, $GUI_DISABLE)

$tRDWRBox = GUICtrlCreateInput($tRDWR, 170, 214, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRDWRLabel = GUICtrlCreateLabel("tRDWR", 240, 217, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRDWRBox, $GUI_DISABLE)

$tWRRDBox = GUICtrlCreateInput($tWRRD, 170, 244, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRRDLabel = GUICtrlCreateLabel("tWRRD", 240, 247, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRRDBox, $GUI_DISABLE)

$tWRWRSCBox = GUICtrlCreateInput($tWRWRSC, 170, 274, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRWRSCLabel = GUICtrlCreateLabel("tWRWRSC", 240, 277, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRWRSCBox, $GUI_DISABLE)

$tWRWRSDBox = GUICtrlCreateInput($tWRWRSD, 170, 304, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRWRSDLabel = GUICtrlCreateLabel("tWRWRSD", 240, 307, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRWRSDBox, $GUI_DISABLE)

$tWRWRDDBox = GUICtrlCreateInput($tWRWRDD, 170, 334, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRWRDDLabel = GUICtrlCreateLabel("tWRWRDD", 240, 337, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRWRDDBox, $GUI_DISABLE)

$tRDRDSCBox = GUICtrlCreateInput($tRDRDSC, 170, 364, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRDRDSCLabel = GUICtrlCreateLabel("tRDRDSC", 240, 367, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRDRDSCBox, $GUI_DISABLE)

$tRDRDSDBox = GUICtrlCreateInput($tRDRDSD, 170, 394, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRDRDSDLabel = GUICtrlCreateLabel("tRDRDSD", 240, 397, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRDRDSDBox, $GUI_DISABLE)

$tRDRDDDBox = GUICtrlCreateInput($tRDRDDD, 170, 424, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRDRDDDLabel = GUICtrlCreateLabel("tRDRDDD", 240, 427, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRDRDDDBox, $GUI_DISABLE)

$tCKEBox = GUICtrlCreateInput($tCKE, 170, 454, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tCKELabel = GUICtrlCreateLabel("tCKE", 240, 457, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tCKEBox, $GUI_DISABLE)

$tRPPBBox = GUICtrlCreateInput($tRPPB, 170, 484, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRPPBLabel = GUICtrlCreateLabel("tRPPB", 240, 487, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRPPBBox, $GUI_DISABLE)

$tRCPBBox = GUICtrlCreateInput($tRCPB, 170, 514, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRCPBLabel = GUICtrlCreateLabel("tRCPB", 240, 517, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRCPBBox, $GUI_DISABLE)

$tRRDDLRBox = GUICtrlCreateInput($tRRDDLR, 170, 544, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRRDDLRLabel = GUICtrlCreateLabel("tRRDDLR", 240, 547, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRRDDLRBox, $GUI_DISABLE)

$tRDRDBANBox = GUICtrlCreateInput($tRDRDBAN, 170, 574, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRDRDBANLabel = GUICtrlCreateLabel("tRDRDBAN", 240, 577, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRDRDBANBox, $GUI_DISABLE)

$tRDRDSCDLRBox = GUICtrlCreateInput($tRDRDSCDLR, 330, 94, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRDRDSCDLRLabel = GUICtrlCreateLabel("tRDRDSCDLR", 400, 97, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRDRDSCDLRBox, $GUI_DISABLE)

$tWRWRBANBox = GUICtrlCreateInput($tWRWRBAN, 330, 124, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRWRBANLabel = GUICtrlCreateLabel("tWRWRBAN", 400, 127, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRWRBANBox, $GUI_DISABLE)

$tWRWRSCDLRBox = GUICtrlCreateInput($tWRWRSCDLR, 330, 154, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRWRSCDLRLabel = GUICtrlCreateLabel("tWRWRSCDLR", 400, 157, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRWRSCDLRBox, $GUI_DISABLE)

$tWRRDSCDLRBox = GUICtrlCreateInput($tWRRDSCDLR, 330, 184, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRRDSCDLRLabel = GUICtrlCreateLabel("tWRRDSCDLR", 400, 187, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRRDSCDLRBox, $GUI_DISABLE)

$tREFBox = GUICtrlCreateInput($tREF, 330, 214, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tREFLabel = GUICtrlCreateLabel("tREF", 400, 217, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tREFBox, $GUI_DISABLE)

$tREFCTBox = GUICtrlCreateInput($tREFCT, 330, 244, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tREFCTLabel = GUICtrlCreateLabel("tREF (ns)", 400, 247, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tREFCTBox, $GUI_DISABLE)

$tMODBox = GUICtrlCreateInput($tMOD, 330, 274, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tMODLabel = GUICtrlCreateLabel("tMOD", 400, 277, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tMODBox, $GUI_DISABLE)

$tMODPDABox = GUICtrlCreateInput($tMODPDA, 330, 304, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tMODPDALabel = GUICtrlCreateLabel("tMODPDA", 400, 307, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tMODPDABox, $GUI_DISABLE)

$tMRDBox = GUICtrlCreateInput($tMRD, 330, 334, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tMRDLabel = GUICtrlCreateLabel("tMRD", 400, 337, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tMRDBox, $GUI_DISABLE)

$tMRDPDABox = GUICtrlCreateInput($tMRDPDA, 330, 364, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tMRDPDALabel = GUICtrlCreateLabel("tMRDPDA", 400, 367, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tMRDPDABox, $GUI_DISABLE)

$tSTAGBox = GUICtrlCreateInput($tSTAG, 330, 394, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tSTAGLabel = GUICtrlCreateLabel("tSTAG", 400, 397, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tSTAGBox, $GUI_DISABLE)

$tPHYWRDBox = GUICtrlCreateInput($tPHYWRD, 330, 424, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tPHYWRDLabel = GUICtrlCreateLabel("tPHYWRD", 400, 427, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tPHYWRDBox, $GUI_DISABLE)

$tPHYWRLBox = GUICtrlCreateInput($tPHYWRLAT, 330, 454, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tPHYWRLLabel = GUICtrlCreateLabel("tPHYWRL", 400, 457, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tPHYWRLBox, $GUI_DISABLE)

$tPHYRDLBox = GUICtrlCreateInput($tPHYRDLAT, 330, 484, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tPHYRDLLabel = GUICtrlCreateLabel("tPHYRDL", 400, 487, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tPHYRDLBox, $GUI_DISABLE)

$tRDDATABox = GUICtrlCreateInput($tRDDATA, 330, 514, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tRDDATALabel = GUICtrlCreateLabel("tRDDATA", 400, 517, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tRDDATABox, $GUI_DISABLE)

$tSTAGLRBox = GUICtrlCreateInput($tSTAGLR, 330, 544, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tSTAGLRLabel = GUICtrlCreateLabel("tSTAGLR", 400, 547, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tSTAGLRBox, $GUI_DISABLE)

$tWRMPRBox = GUICtrlCreateInput($tWRMPR, 330, 574, 60, 18, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
GUICtrlSetFont(-1, 8, 400, 0, "Arial")
$tWRMPRLabel = GUICtrlCreateLabel("tWRMPR", 400, 577, 70, 17)
GUICtrlSetFont(-1, 8, 800, 0, "Arial")
GUICtrlSetState($tWRMPRBox, $GUI_DISABLE)
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
        Case $GUI_EVENT_CLOSE
           DllCall($DLL, "none", "DeinitializeOls")
                        Exit

        EndSwitch
WEnd


The Stilt is online now  
Sponsored Links
Advertisement
 
post #2 of 129 (permalink) Old 12-14-2017, 11:53 AM
9 Cans of Ravioli
 
The Pook's Avatar
 
Join Date: May 2006
Posts: 16,093
Rep: 1000 (Unique: 607)
No, because I don't run a Ryzen system whistle.gif

Intel i9 9900K Coffee Lake @ X8 5309mhz (+47.5%)
AMD FX-8320 Vishera @ X4 5022mhz (+43.5%)
Intel i5 4690K Haswell @ X4 5013mhz (+43.2%)
AMD X4 960T Zosma @ X6 4870mhz (+62.3%)
Intel i7 6700 Skylake @ X4 4709mhz (+38.5%)
Intel i5 6400 Skylake @ X4 4588mhz (+69.9%)
2 OP pls nerf
(24 items)
NUC U
(10 items)
CPU
i9 9900K
Motherboard
AsRock Z390 Taichi
GPU
MSI GTX 1080 Ti
RAM
G.Skill DDR4 4133 32GB
Hard Drive
Mushkin Pilot NVMe 1TB
Hard Drive
HP EX950 NVMe 2TB
Hard Drive
Samsung 860 Evo 1TB
Hard Drive
Sandisk Ultra II 480GB SSD
Hard Drive
Toshiba X300 5TB
Hard Drive
Western Digital EZRZ 3TB
Power Supply
Seasonic Focus Plus Gold 750w
Cooling
Corsair H115i Pro
Case
Fractal Design Meshify S2
Operating System
Windows 10 Education x64
Monitor
Acer XF270HU
Monitor
Dell E2311H
Keyboard
CoolerMaster MasterKeys Pro S
Mouse
Logitech G502
Audio
SMSL SA50 + FiiO E10K
Audio
Micca RB42
Audio
Polk Audio PSW111
Audio
Philips Fidelio X2
Audio
Philips SHP9500S
Audio
Audio Technica ATH-M50X
CPU
i3 8109U
Motherboard
Intel NUC8i3BEH
GPU
Iris Plus 655
RAM
Kingston 8GB DDR4 2400
Hard Drive
Dierka K1 120GB
Hard Drive
ADATA SU800 128GB M.2
Operating System
Windows 10 Professional
Operating System
MX Linux
Keyboard
Rii RKM709 Wireless
Mouse
Logitech M510
CPU
i7 860
Motherboard
Advantech AIMB 280 ITX
GPU
EVGA GTX 950 2GB
RAM
Kingston 2GB DDR3 1333
Hard Drive
Seagate Momentus 2.5" 500GB
Hard Drive
Western Digital Blue 2.5" 320GB
Power Supply
Silverstone SFX-L Gold 500w
Cooling
Arctic Alpine 11 GT 2
Case
Silverstone Milo Z ML07B
Operating System
Windows XP x86 SP3
Keyboard
Velocifire TKL01 Outemu Browns
Mouse
Logitech M512
▲ hide details ▲


The Pook is online now  
post #3 of 129 (permalink) Old 12-14-2017, 12:13 PM
New to Overclock.net
 
Join Date: Apr 2013
Posts: 67
Rep: 11 (Unique: 10)
No, no troubles here. used it with my Ryzen build. Never had any troubles, was very handy when OCing memory. Switched to 8700k build so cannot say anything about current situation. I know ASUS has implemented Stilt's memory profiles to their BIOS. And I know in the past many overcloking utilities have been erroneusly picked up by AV-programs so I dont really worry about that on this case.
CptKuolio is offline  
Sponsored Links
Advertisement
 
post #4 of 129 (permalink) Old 12-14-2017, 12:44 PM
The 6502 Still Rocks
 
Master Chicken's Avatar
 
Join Date: Feb 2016
Location: Sanford, FL.
Posts: 686
Rep: 30 (Unique: 28)
That guy got sideways just because the AutoIT system contains library calls to support some of it's network related functions. He never checked to see that you weren't using those calls and thereby weren't generating any traffic ... he just assumed that because they were in there that they were being used. I've never really seen someone as susceptible to such noob paranoia before. The guy is quite literally unstable and not qualified to be making the assumptions he's making in that thread. All he had to do was monitor network traffic when the program was run ... but he couldn't pull that off. Then he went on some Uber rootkit rant involving the UEFI, etc. It was nuts. I hope he can get the help he needs. I've not seen someone come in and wreck a thread like that in a long time ... someone likely to be literally wearing a tinfoil hat.

I hope he doesn't run into any of those articles on the Intel ME v10 or v11 issues. That will surely send him into an unrecoverable spiral.
Master Chicken is offline  
post #5 of 129 (permalink) Old 12-14-2017, 12:54 PM
Watercooled
 
lexer's Avatar
 
Join Date: Jul 2015
Location: Argentina
Posts: 865
Rep: 47 (Unique: 33)
Remember guys always use a tin foil hat to check your Ryzen timings biggrin.gif

I7 8700K@4.7Ghz / Z370-A / 2X8GB 3200Mhz ADATA Spectrix D40 / 1TB Intel 600P / EVO 850 250GB / 4TB WD Gold / RTX 2080 GAMING OC / NZXT Noctis 450 ROG / EVGA G2 850W@ECO
Heatkiller REV 3.0 / XSPC EX360 / DDC 3.25 + EK-XRES / 3x Venturi HF-12 PWM
lexer is offline  
post #6 of 129 (permalink) Old 12-14-2017, 02:35 PM
New to Overclock.net
 
cssorkinman's Avatar
 
Join Date: Apr 2009
Posts: 9,383
Rep: 462 (Unique: 262)
I wasn't too concerned but I'm glad you took the time to explain the situation.


No problems with BDC or RTC on my end.

Unlike Windows 10's latest update...... run time error etc. etc.
cssorkinman is offline  
post #7 of 129 (permalink) Old 12-14-2017, 02:47 PM
Tetrapyloctomist
 
Aenra's Avatar
 
Join Date: Feb 2017
Posts: 1,377
Rep: 18 (Unique: 17)

Thank you Stilt.

 

It's the saddest thing in PC-related communities, albeit not exclusive to them.. how the very individuals at the bottom of the fish pond end up doing the work of the corporations (be it brainwashing, flaming, distorting or deflecting), for free. For free, and with a passion unmatched by any professional :)


Pride, honour and purity.
Aenra is offline  
post #8 of 129 (permalink) Old 12-14-2017, 03:42 PM
Head Smeghead of OCN
 
Kryton's Avatar
 
Join Date: Apr 2009
Location: Deep smeg ...
Posts: 3,113
Rep: 181 (Unique: 131)
Quote:
Originally Posted by lexer View Post

Remember guys always use a tin foil hat to check your Ryzen timings biggrin.gif

Or just put little tin foil hats on your RAM..... biggrin.gif

Kryton is offline  
post #9 of 129 (permalink) Old 12-14-2017, 03:59 PM
Linux Lobbyist
 
keng's Avatar
 
Join Date: Feb 2010
Posts: 206
Rep: 17 (Unique: 14)
Ok great, thanks for that.


Anyhow, I am personally not involved in this investigation and I will not be commenting on it anymore besides suggesting that anyone with access to any sensible systems should avoid downloading or running this program. If you had run it, you should probably notify your CTO or similar administrator.

If you require any specific timings about your RAM, settings, etc, please refer to the AMD tech guides, EPYC developer SDKs and if it something not public (i.e. sensor identities, registers, etc.) please contact AMD directly and you will more than likely have what you need provided you agree to a NDA.
keng is offline  
post #10 of 129 (permalink) Old 12-14-2017, 05:10 PM
New to Overclock.net
 
Anty's Avatar
 
Join Date: Jun 2017
Posts: 441
Rep: 10 (Unique: 10)
And things escalated quickly - deobfuscated code including regs could be found online (didn't try to compile but reveals lots of info) rolleyes.gif

Ryzen 1700 ~ C6H ~ 4x8GB trident Z [email protected] ~ EVGA 1080Ti
Anty is offline  
Reply

Quick Reply
Message:
Options

Register Now

In order to be able to post messages on the Overclock.net - An Overclocking Community forums, you must first register.
Please enter your desired user name, your email address and other required details in the form below.
User Name:
If you do not want to register, fill this field only and the name will be used as user name for your post.
Password
Please enter a password for your user account. Note that passwords are case-sensitive.
Password:
Confirm Password:
Email Address
Please enter a valid email address for yourself.
Email Address:

Log-in



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Show Printable Version Show Printable Version
Email this Page Email this Page


Forum Jump: 

Posting Rules  
You may post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off