Tattoo

An application written in rust that inserts device information into the computers registry for later forensics.

Workflow Status

Repository: https://github.com/ofgrenudo/tattoo/tree/master

Tattoo is the first complete program that I have written in rust. It consists of two parts, a library and the binary. One of the challenges I experienced when writing this application was the lack of abbility to include files outside of module’s folder that I was writing in. While I understand now why you should not do so and the kinds of compiler problems you would encounter. I think that forcing me to write a library to manage my goals was very benificial for me.

This is the first library that I have had to write that actually does something. Something more than one plus one, or something simple you make when you learn C. This library was immediately applicable to my needs. It also helped me keep my programs logically seperate from eachother. The UI was allowed to get input from the UI and handle that. The backend was able to take the information from the UI and transcribe it into the database. This way of seperating the program made a dream like fusion for me when it came to keeping things clean.

Writing the library also forced me to leverage the rust documentation feature. Really cementing the whole experience together.

Overall, I really enjoyed the experience making this application and hope to have many more safe adventures with rust :)

Description

Tattoo is a program designed to automatically collect device information on run, and insert it into the registry of the device. This information is intended for archival purposes and will remain there for later inspection. Some of the bennifits of storing information in the registry is that it provides a static and proctected way to maintain information like,

  • The day the computer was deployed.
  • The task sequence used when you deployed the computer.
  • The asset tag assigned.
  • The device name when deployed.
  • The serial number of the device.
  • The device model.
  • The device make.

Requirements

  • Windows >=10, or Windows Server 2016.
  • PowerShell 5.1 or later

Running

In order to run tattoo.exe you will need at a minimum, the following file along side the executable.

tatto.exe.manifest

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
    version="1.0.0.0"
    processorArchitecture="*"
    name="app"
    type="win32"
/>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>

Otherwise it will throw an error exit code: 0xc0000139, STATUS_ENTRYPOINT_NOT_FOUND when trying to run the program. This is a bug with the native windows gui API that has not been resolved.

Example Screenshots

tattoo-ui

Licensed under GNU General Public License v3.0
Built with Hugo
Theme Stack designed by Jimmy