Skip to content
This repository has been archived by the owner on Nov 27, 2020. It is now read-only.

Commit

Permalink
Updated to v1.2
Browse files Browse the repository at this point in the history
 - The program can now be closed (Verification is still mandatory)
 - Verification time decreased to 5 minutes (was 8 minutes)
 - Attempting to cancel the verification process will disable the Close and/or Cancel button
 - Processes are killed as intended now at application startup
 - Improved the code
 - Added a script to keep fake-slui running
  • Loading branch information
Strappazzon committed Feb 28, 2019
1 parent fa4ffed commit ccb1401
Show file tree
Hide file tree
Showing 9 changed files with 127 additions and 155 deletions.
48 changes: 43 additions & 5 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,54 @@ A fake Windows Activation pop-up programmed to waste scammers' time.

You can copy **slui.exe** whenever you want, ideally where scammers don't usually go.

Every time the program opens or reappears the following processes will be killed: *iexplore*, *msinfo32*, *mmc*, *dxdiag*, *msconfig*, *taskmgr*, *cmd*, *notepad*, *syskey*.
Every time the program opens the following processes will be killed: *iexplore*, *msinfo32*, *mmc*, *dxdiag*, *msconfig*, *cmd*, *notepad*, *syskey*.

Any product key, except ```5T0PW-4ST1N-GURT1-M35C4-MM1NG``` will take about 8 minutes to verify and the process will always fail, showing a network error. The program will close itself afterwards. You can reopen it either manually or with a script.
While the program is running Task Manager will be killed as soon as it's opened, however this is not possible on Windows 8 and greater. If you are using a different version of Windows and/or you want to reopen fake-slui, you should use the PowerShell script I wrote for this (See [Keeping fake-slui running](#Keeping-fake-slui-running)).

In Windows 7, the Task Manager will be closed as soon as it is opened. In Windows 8 and greater you may want to use a PowerShell script to keep this program alive because Task Manager cannot be suppressed any longer, therefore the scammer will most likely kill the program.
Any product key, except `5T0PW-4ST1N-GURT1-M35C4-MM1NG` will take five minutes to verify and the process will always fail. The program will close itself afterwards.

## Keeping fake-slui running

Open **1_Configuration.bat** with a text editor (please use [Notepad++](https://notepad-plus-plus.org/)). You will see this piece of code:

```bat
:variables
:: Change this to where you keep KeepAlive.ps1
set KeepAlive="C:\PATH\TO\KeepAlive.ps1"
goto init
```

Modify the string `KeepAlive` with **the path where you want to keep *KeepAlive.ps1***, like so:

```bat
:variables
:: Change this to where you keep KeepAlive.ps1
set KeepAlive="C:\Windows\KeepAlive.ps1"
goto init
```

Save and close the file then open **2_KeepAlive.ps1** with a text editor. Modify `Start-Process -FilePath` and `Start-Sleep` to your liking, like so:

```powershell
else{
Start-Process -FilePath "C:\Windows\slui.exe"
}
```

```powershell
Start-Sleep 50 #Check if slui is open every this amount of time (seconds)
```

Save and close the file.

Now that everything is configured you can launch **Configuration.bat** in an **ELEVATED** Command Prompt every time you want to keep fake-slui running.

Kill **powershell.exe** (its window is invisible on purpose) to interrupt the script.

## Todo

- [ ] Suppress Task Manager when the program is hidden
- [ ] \(maybe) Reset forms position before hiding them instead of preventing them from being moved
- ~~[ ] Suppress Task Manager when the program is hidden~~
- ~~[ ] \(maybe) Reset forms position before hiding them instead of preventing them from being moved~~
- [x] Verify the secret code as well, but take less time
- [ ] Add a dash every five characters
- [ ] Fix bottom panel weird positioning when using Windows classic theme
19 changes: 19 additions & 0 deletions KeepAlive/1_Configuration.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
@echo off
:variables
:: Change this to where you keep KeepAlive.ps1
set KeepAlive="C:\PATH\TO\KeepAlive.ps1"
goto init
:init
net session >nul 2>&1
if %errorLevel% == 0 (goto execute) else (goto error)
goto init
:execute
powershell Set-ExecutionPolicy Unrestricted
powershell -windowstyle hidden %KeepAlive%
exit
:error
color 4F
echo.
echo ERROR: This script needs elevated privileges!
timeout /t -1
exit
12 changes: 12 additions & 0 deletions KeepAlive/2_KeepAlive.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
while(1){

$procname = Get-Process slui -ErrorAction SilentlyContinue
if($procname){}

else{
Start-Process -FilePath "C:\PATH\TO\EXECUTABLE\slui.exe"
}

Remove-Variable procname
Start-Sleep 120 #Check if slui is open every this amount of time (seconds)
}
89 changes: 9 additions & 80 deletions Windows Activation Client/Form1.vb
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
Shell("taskkill /F /IM explorer.exe")

'Force kill processes tipically used by scammers
Dim procsToKill() As String = {"iexplore", "msinfo32", "mmc", "dxdiag", "msconfig", "cmd", "notepad", "syskey"}
For Each p As Process In Process.GetProcesses
If p.ProcessName = "iexplore" Or p.ProcessName = "msinfo32" Or p.ProcessName = "mmc" Or p.ProcessName = "dxdiag" Or p.ProcessName = "msconfig" Or p.ProcessName = "taskmgr" Or p.ProcessName = "cmd" Or p.ProcessName = "notepad" Or p.ProcessName = "syskey" Then
If procsToKill.Contains(p.ProcessName) Then
p.Kill()
Exit For
End If
Next
End Sub
Expand Down Expand Up @@ -54,27 +54,7 @@
End Sub

Private Sub skipBtn_Click(sender As Object, e As EventArgs) Handles skipBtn.Click
'Restart explorer and pretend the application is closed
Dim ExecProcess = New Process()
ExecProcess.StartInfo.UseShellExecute = True
ExecProcess.StartInfo.CreateNoWindow = True
ExecProcess.StartInfo.FileName = "C:\Windows\explorer.exe"
ExecProcess.StartInfo.WorkingDirectory = Application.StartupPath
ExecProcess.Start()

'Hide the application...
Me.Hide()
'...for 2 minutes (120000ms)
Threading.Thread.Sleep(120000)
'Threading.Thread.Sleep(2000) 'Testing
Shell("taskkill /F /IM explorer.exe")
For Each p As Process In Process.GetProcesses()
If p.ProcessName = "iexplore" Or p.ProcessName = "msinfo32" Or p.ProcessName = "mmc" Or p.ProcessName = "dxdiag" Or p.ProcessName = "msconfig" Or p.ProcessName = "taskmgr" Or p.ProcessName = "cmd" Or p.ProcessName = "notepad" Or p.ProcessName = "syskey" Then
p.Kill()
End If
Next
Me.activateBtn.Select()
Me.Show()
Application.Exit()
End Sub

Private Sub helpActivationLinkLabel_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles helpActivationLinkLabel.LinkClicked
Expand All @@ -88,65 +68,14 @@
End Sub

Private Sub cancelBtn_Click(sender As Object, e As EventArgs) Handles cancelBtn.Click
'Restart explorer and pretend the application is closed
Dim ExecProcess = New Process()
ExecProcess.StartInfo.UseShellExecute = True
ExecProcess.StartInfo.CreateNoWindow = True
ExecProcess.StartInfo.FileName = "C:\Windows\explorer.exe"
ExecProcess.StartInfo.WorkingDirectory = Application.StartupPath
ExecProcess.Start()

'Hide the application...
Me.Hide()
'...for 2 minutes (120000ms)
Threading.Thread.Sleep(120000)
'Threading.Thread.Sleep(2000) 'Testing
Shell("taskkill /F /IM explorer.exe")
For Each p As Process In Process.GetProcesses()
If p.ProcessName = "iexplore" Or p.ProcessName = "msinfo32" Or p.ProcessName = "mmc" Or p.ProcessName = "dxdiag" Or p.ProcessName = "msconfig" Or p.ProcessName = "taskmgr" Or p.ProcessName = "cmd" Or p.ProcessName = "notepad" Or p.ProcessName = "syskey" Or p.ProcessName = "iexplore" Then
p.Kill()
End If
Next
Me.Show()
Application.Exit()
End Sub

Private Sub Form1_Closing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
'The user can't close the application
If e.CloseReason = CloseReason.UserClosing Then
e.Cancel = True

'Restart explorer and pretend the application is closed
Dim ExecProcess = New Process()
ExecProcess.StartInfo.UseShellExecute = True
ExecProcess.StartInfo.CreateNoWindow = True
ExecProcess.StartInfo.FileName = "C:\Windows\explorer.exe"
ExecProcess.StartInfo.WorkingDirectory = Application.StartupPath
ExecProcess.Start()

'Hide the application...
Me.Hide()
'...for 2 minutes (120000ms)
Threading.Thread.Sleep(120000)
'Threading.Thread.Sleep(2000) 'Testing

'Force kill the processes again and show the application
Shell("taskkill /F /IM explorer.exe")
For Each p As Process In Process.GetProcesses()
If p.ProcessName = "iexplore" Or p.ProcessName = "msinfo32" Or p.ProcessName = "mmc" Or p.ProcessName = "dxdiag" Or p.ProcessName = "msconfig" Or p.ProcessName = "taskmgr" Or p.ProcessName = "cmd" Or p.ProcessName = "notepad" Or p.ProcessName = "syskey" Or p.ProcessName = "iexplore" Then
p.Kill()
End If
Next
Me.Show()
Else
'Restart explorer and close the application
Dim ExecProcess = New Process()
ExecProcess.StartInfo.UseShellExecute = True
ExecProcess.StartInfo.CreateNoWindow = True
ExecProcess.StartInfo.FileName = "C:\Windows\explorer.exe"
ExecProcess.StartInfo.WorkingDirectory = Application.StartupPath
ExecProcess.Start()

Application.Exit()
End If
Using startProc = New Process()
startProc.StartInfo.CreateNoWindow = True
startProc.StartInfo.FileName = "C:\Windows\explorer.exe"
startProc.Start()
End Using
End Sub
End Class
55 changes: 3 additions & 52 deletions Windows Activation Client/Form2.vb
Original file line number Diff line number Diff line change
Expand Up @@ -52,59 +52,10 @@
End Sub

Private Sub cancelBtn_Click(sender As Object, e As EventArgs) Handles cancelBtn.Click
'Restart explorer and pretend the application is closed
Dim ExecProcess = New Process()
ExecProcess.StartInfo.UseShellExecute = True
ExecProcess.StartInfo.CreateNoWindow = True
ExecProcess.StartInfo.FileName = "C:\Windows\explorer.exe"
ExecProcess.StartInfo.WorkingDirectory = Application.StartupPath
ExecProcess.Start()

Me.productKeyTextBox.Clear()
'Hide the application...
Me.Hide()
'...for 2 minutes (120000ms)
Threading.Thread.Sleep(120000)
'Threading.Thread.Sleep(2000) 'Testing
Shell("taskkill /F /IM explorer.exe")
For Each p As Process In Process.GetProcesses()
If p.ProcessName = "iexplore" Or p.ProcessName = "msinfo32" Or p.ProcessName = "mmc" Or p.ProcessName = "dxdiag" Or p.ProcessName = "msconfig" Or p.ProcessName = "taskmgr" Or p.ProcessName = "cmd" Or p.ProcessName = "notepad" Or p.ProcessName = "syskey" Or p.ProcessName = "iexplore" Then
p.Kill()
End If
Next
Form1.activateBtn.Select()
Form1.Show()
Application.Exit()
End Sub

Private Sub Form2_Closing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
'The user can't close the application
If e.CloseReason = CloseReason.UserClosing Then
e.Cancel = True

'Restart explorer and pretend the application is closed
Dim ExecProcess = New Process()
ExecProcess.StartInfo.UseShellExecute = True
ExecProcess.StartInfo.CreateNoWindow = True
ExecProcess.StartInfo.FileName = "C:\Windows\explorer.exe"
ExecProcess.StartInfo.WorkingDirectory = Application.StartupPath
ExecProcess.Start()

'Hide the application...
Me.productKeyTextBox.Clear()
Me.Hide()
'...for 2 minutes (120000ms)
Threading.Thread.Sleep(120000)
'Threading.Thread.Sleep(2000) 'Testing
Shell("taskkill /F /IM explorer.exe")
For Each p As Process In Process.GetProcesses()
If p.ProcessName = "iexplore" Or p.ProcessName = "msinfo32" Or p.ProcessName = "mmc" Or p.ProcessName = "dxdiag" Or p.ProcessName = "msconfig" Or p.ProcessName = "taskmgr" Or p.ProcessName = "cmd" Or p.ProcessName = "notepad" Or p.ProcessName = "syskey" Or p.ProcessName = "iexplore" Then
p.Kill()
End If
Next
Form1.activateBtn.Select()
Form1.Show()
Else
Application.Exit()
End If
Private Sub Form2_Closing(sender As Object, e As FormClosingEventArgs) Handles Me.Closing
Application.Exit()
End Sub
End Class
2 changes: 1 addition & 1 deletion Windows Activation Client/My Project/AssemblyInfo.vb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.1.0.0")>
<Assembly: AssemblyVersion("1.2.0.0")>
<Assembly: AssemblyFileVersion("6.1.7601.17514")>
<Assembly: NeutralResourcesLanguage("en-US")>
7 changes: 4 additions & 3 deletions Windows Activation Client/Success.vb
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@
MyBase.WndProc(m)
End Sub

Private Sub Success_Closing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
Application.Exit()
End Sub
Private Sub benefitsLinkLabel_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles benefitsLinkLabel.LinkClicked
Dim BenefitsAddress As String = "https://support.microsoft.com/en-us/help/15087/windows-genuine"
Process.Start(BenefitsAddress)
Expand All @@ -25,4 +22,8 @@
Private Sub closeBtn_Click(sender As Object, e As EventArgs) Handles closeBtn.Click
Application.Exit()
End Sub

Private Sub Success_Closing(sender As Object, e As EventArgs) Handles Me.Closing
Application.Exit()
End Sub
End Class
3 changes: 2 additions & 1 deletion Windows Activation Client/Var.vb
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
Module Var
Public Property imDebugging As Boolean = False
Public Property productKey As String
End Module
End Module
47 changes: 34 additions & 13 deletions Windows Activation Client/Verification.vb
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,21 @@
verificationBar.Maximum = 100
verificationBar.Value = 0

If productKey = "5T0PW-4ST1N-GURT1-M35C4-MM1NG" Then
If imDebugging = True Or productKey = "5T0PW-4ST1N-GURT1-M35C4-MM1NG" Then
Timer1.Interval = 100
Else
'This will take a long time...
'Timer1.Interval = 100 'Debug
Timer1.Interval = 5000
Timer1.Interval = 3000
End If

Timer1.Enabled = True
End Sub

Private Sub cancelBtn_Click(sender As Object, e As EventArgs) Handles cancelBtn.Click
'Do nothing if it's the user that wants to close the application
Dim result As Integer = MessageBox.Show("Are you sure you want to cancel the verification process?", "Windows Activation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
If result = DialogResult.Yes Or result = DialogResult.No Then
Return
End If
'Do nothing
MessageBox.Show("Are you sure you want to cancel the verification process?", "Windows Activation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
Me.Cursor = Cursors.WaitCursor
cancelBtn.Enabled = False
End Sub

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
Expand All @@ -59,13 +57,36 @@
End If
End Sub

'https://stackoverflow.com/a/38311385
Private Const MF_BYPOSITION As Integer = &H400
Private Const MF_REMOVE As Integer = &H1000
Private Declare Auto Function GetSystemMenu Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal bRevert As Integer) As IntPtr
Private Declare Auto Function GetMenuItemCount Lib "user32.dll" (ByVal hMenu As IntPtr) As Integer
Private Declare Function DrawMenuBar Lib "user32.dll" (ByVal hwnd As IntPtr) As Boolean
Private Declare Auto Function RemoveMenu Lib "user32.dll" (ByVal hMenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer

Public Sub DisableCloseButton(ByVal hwnd As IntPtr)
Dim hMenu As IntPtr, n As Integer
hMenu = GetSystemMenu(hwnd, 0)
If Not hMenu.Equals(IntPtr.Zero) Then
n = GetMenuItemCount(hMenu)
If n > 0 Then
RemoveMenu(hMenu, n - 1, MF_BYPOSITION Or MF_REMOVE)
RemoveMenu(hMenu, n - 2, MF_BYPOSITION Or MF_REMOVE)
DrawMenuBar(hwnd)
End If
End If
End Sub

Private Sub Verification_Closing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
'The user can't close the application
'The Product Key must be verified
If e.CloseReason = CloseReason.UserClosing Then
Dim result As Integer = MessageBox.Show("Are you sure you want to cancel the verification process?", "Windows Activation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
If result = DialogResult.Yes Or result = DialogResult.No Then
e.Cancel = True
End If
MessageBox.Show("Are you sure you want to cancel the verification process?", "Windows Activation", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)
e.Cancel = True
Me.Cursor = Cursors.WaitCursor

'Disable the close button
DisableCloseButton(Handle)
Else
Application.Exit()
End If
Expand Down

0 comments on commit ccb1401

Please sign in to comment.