Queenie  Davis

Queenie Davis


Sliver Keylogger Written Mostly As A Learning Exercise for C++

Sliver Keylogger

This extension to sliver was written mostly as a learning exercise into how sliver handles extensions.

I would like to thank the entire Sliver team for there work on this public implant framework. I would especially like to thank @rkervell for answering many of my questions related to how sliver handles it extensions

how does this work

Basically it uses raw input. This has advantages and disadvantages to other common keylogging methods.

I like it because it doesn't require injecting into other binaries, nor does it require polling a given call frequently and potentially missing results.

This code is some of my own work and some of a mash of examples found around the internet.

how to build it

open the solution file using visual studio 2019, and build the x86 and x64 releases

how to load / install it

Until this is potentially included in the armory it can be built on a windows system. then the resulting $(solutiondir)\bin folder can be placed on the sliver client and extensions install <path to folder> can be run to install the extension. you may need to restart or also run extensions load <path to folder>


raw_keylogger <cmdid>

the following cmdid's are valid

0 = stop
1 = start
2 = get keystrokes

if everything goes well it will look like this Screen Shot 2022-06-17 at 3 05 09 PM

lessons learned

Sliver's api has the following two main parts

typedef int (*goCallback)(const char*, int);

extern "C" {
	__declspec(dllexport) int __cdecl entrypoint(char* argsBuffer, uint32_t bufferSize, goCallback callback);

the implant will call the "entrypoint" as defined in the .json file. it points to your entrypoint function (doesn't have to have that name, just follow the signature)

goCallback is a function for returning output to go. its called like callback(string, string_length)

When coding the extension for now the "name" and "command_name" must match, otherwise the implant will reload your extension on every call.

As of this writing non-BOF extensions don't support strongly typed arguments, so everything provided on the cli after the command name will be sent down as a string. you have to handle it from there on the extension's native code side.

Author: trustedsec
Source code: https://github.com/trustedsec/SliverKeylogger
License: MIT license


What is GEEK

Buddha Community

Sliver Keylogger Written Mostly As A Learning Exercise for C++
Julie  Donnelly

Julie Donnelly


Should you learn C in 2020/2021?

When working with embedded systems that depend on speed or have a minimal amount of memory, C is a perfect language of choice. This is a short paper about why you should learn C and the benefits of doing so.

To add some credibility to this story, let me introduce myself. My name is Eric and I am a computer science student in Sweden. I have been programming for quite some time now and I feel like it is time to share some of my opinions about C, one of the best programming languages to learn.

Background story

C is an old language, to be formal, it appeared the first time in 1972. The language was developed to combines the capabilities of an assembly language with the feature of high-level language.

Despite its age, the language is still widely used today because of its power and ease of use.

When working with embedded systems that depend on speed or have a minimal amount of memory, C is a perfect language of choice.

Because of its age, many individuals claim that C is not necessary, that newer languages could replace it. However, every language has its purpose and that is what I would like to explain to you.

#c #why-learn-c #learning-to-code #programming-languages #coding #c++

Shaylee  Lemke

Shaylee Lemke


Object Oriented Programming in C++ | C++ OOPs Concepts | Learn Object Oriented C++

C++ is general purpose, compiled, object-oriented programming language and its concepts served as the basis for several other languages such as Java, Python, Ruby, Perl etc.

The goal of this course is to provide you with a working knowledge of C++. We’ll start with the basics, including syntax, operators, loops, and functions. This Course will explain you how to use data structures and create your own Functions. This Course will show you the details of the powerful object and template systems so you can create useful classes and objects.

Youtube channel: ProgrammingKnowledge - https://www.youtube.com/watch?v=_SH1T3y_D7o

#c #c# #c++ #programming-c

Tamale  Moses

Tamale Moses


How to Run C/C++ in Sublime Text?

C and C++ are the most powerful programming language in the world. Most of the super fast and complex libraries and algorithms are written in C or C++. Most powerful Kernel programs are also written in C. So, there is no way to skip it.

In programming competitions, most programmers prefer to write code in C or C++. Tourist is considered the worlds top programming contestant of all ages who write code in C++.

During programming competitions, programmers prefer to use a lightweight editor to focus on coding and algorithm designing. VimSublime Text, and Notepad++ are the most common editors for us. Apart from the competition, many software developers and professionals love to use Sublime Text just because of its flexibility.

I have discussed the steps we need to complete in this blog post before running a C/C++ code in Sublime Text. We will take the inputs from an input file and print outputs to an output file without using freopen file related functions in C/C++.

#cpp #c #c-programming #sublimetext #c++ #c/c++

Dicey Issues in C/C++

If you are familiar with C/C++then you must have come across some unusual things and if you haven’t, then you are about to. The below codes are checked twice before adding, so feel free to share this article with your friends. The following displays some of the issues:

  1. Using multiple variables in the print function
  2. Comparing Signed integer with unsigned integer
  3. Putting a semicolon at the end of the loop statement
  4. C preprocessor doesn’t need a semicolon
  5. Size of the string matters
  6. Macros and equations aren’t good friends
  7. Never compare Floating data type with double data type
  8. Arrays have a boundary
  9. Character constants are different from string literals
  10. Difference between single(=) and double(==) equal signs.

The below code generates no error since a print function can take any number of inputs but creates a mismatch with the variables. The print function is used to display characters, strings, integers, float, octal, and hexadecimal values onto the output screen. The format specifier is used to display the value of a variable.

  1. %d indicates Integer Format Specifier
  2. %f indicates Float Format Specifier
  3. %c indicates Character Format Specifier
  4. %s indicates String Format Specifier
  5. %u indicates Unsigned Integer Format Specifier
  6. %ld indicates Long Int Format Specifier

Image for post

A signed integer is a 32-bit datum that encodes an integer in the range [-2147483648 to 2147483647]. An unsigned integer is a 32-bit datum that encodes a non-negative integer in the range [0 to 4294967295]. The signed integer is represented in twos-complement notation. In the below code the signed integer will be converted to the maximum unsigned integer then compared with the unsigned integer.

Image for post

#problems-with-c #dicey-issues-in-c #c-programming #c++ #c #cplusplus

Learn C# Basics - Complete C# Tutorial For Beginners

In this C# tutorial for complete beginners you will learn C# programming from scratch. We hope you enjoy our C Sharp beginners tutorial!
tutorialsEU offers you free video tutorials about programming and development for complete beginners up to experienced programmers.
This C# tutorial for complete beginners teaches you the fundamental basics of C# (C Sharp) and the powerful .NET framework. If you want to get into IT, develop games, apps or desktop applications this is the perfect place for you.

Youtube channel: tutorialsEU - https://www.youtube.com/watch?v=UKaZ2S4AJAA

#c #c# #c++ #programming-c