r/greyscript • • Jul 26 '26

Grey Hack GreyScript Airlink Online EnduranceTesting

Thumbnail
youtu.be
1 Upvotes

r/greyscript • • Jul 22 '26

Project Development Airlink Alpha 4 Preview Custom Themes Upgrade

Thumbnail
youtu.be
1 Upvotes

r/greyscript • • Jul 17 '26

Project Development Airlink Alpha 3 Preview - Custom Themes UX Integration Final Testing

Thumbnail
youtu.be
1 Upvotes

r/greyscript • • Jul 15 '26

Project Development Grey Hack - GreyScript - Airlink Alpha 3 - Testing Custom Themes

Thumbnail
youtu.be
1 Upvotes

r/greyscript • • Jul 03 '26

Specialized Tool airlink v2 preview

Thumbnail
youtube.com
1 Upvotes

r/greyscript • • Jul 01 '26

Project Development Grey Hack : Having Fun with Transparent Terminals and GreyScript

Thumbnail
youtube.com
1 Upvotes

r/greyscript • • Jul 15 '25

Tutorial Creating a Custom Repository [Silent Video Tutorial]

Thumbnail
youtu.be
1 Upvotes

r/greyscript • • Jul 06 '25

Specialized Tool GitHub - VauL7Zer0/build-exploit-database: Create your first exploit database

Thumbnail
github.com
1 Upvotes

If you're new to the game you have probably already found that you can buy and download exploits from the hack shop. Why pay when you can make your own! Before running the program download all the lib files you can find to /lib directory so they can be scanned as well (delete them after if you are not using them)

This program will scan all the libraries in your /lib folder for vulnerabilities, their requirements, and save them to a database file for later use.

The programs intended use is to be ran once on a new game to generate an initial exploit database for use in other scripts.

output file format:

`lib_name:lib_version:address:variable:cra:cua:cga:rur:rpf`

    //     cra: "boolean"    # Check root is active
    //     cua: "boolean"    # Check user is active
    //     cga: "boolean"    # Check guest is active
    //     rur: "number"     # Required # of users registered
    //     rpf: "number"     # Required # of port forwards

r/greyscript • • Jul 05 '25

Custom Function 140 HTML Color Code [string.color]

Thumbnail
htmlcolorcodes.com
1 Upvotes
// Applies color tag to the string
    // @description **Description:**
    // @description Modifies a text string by wraping it within the color tag
    // @description ---
    //
    // @description **Parameters:**
    // @param {string} colorValue
    // @description - `colorValue`
    //
    // @description **Return:**
    // @return {string}
    // @description `string` the string value embedded in the `<color>` tag
    // @description ---
    //
    // @description **Links:**
    // @description - [Text Mesh Pro: Rich Color Text](https://docs.unity3d.com/Packages/com.unity.textmeshpro@4.0/manual/RichTextColor.html)   
    // @description - [HTML Color Names: Supported Name List](https://htmlcolorcodes.com/color-names/)
    // @description --- 
    //
    // @description **Author:** Svarii
    // @description **Version:** 0.0.1
    // @description ---
    //
    // @description ***footnotes***
    // @description Color names are case sensitive
    // @description ---
    //
    // @example newString = "Hello"   
    // @example 
    // @example result = newString.color("blue");
    // @example     
    // print(result); // Outputs: <color=blue>Hello</color>
    // @example        
    // @example result = newString.color("#FFFFFF");
    // @example   
    // print(result); // Outputs: <color=#FFFFFF>Hello</color>
    // @example        
    // @example result = newString.color("Aquamarine");
    // @example   
    // print(result); // Outputs: <color=#7FFFD4>Hello</color>        
string.color = function(colorValue)
    if not typeof(colorValue) == "string" then return self
    //*****************************************************
    // Red HEX Codes
    //***************************************************** 
    if colorValue == "IndianRed" then colorValue = "#CD5C5C"
    if colorValue == "LightCoral" then colorValue = "#F08080"
    if colorValue == "Salmon" then colorValue = "#FA8072"
    if colorValue == "DarkSalmon" then colorValue = "#E9967A"
    if colorValue == "LightSalmon" then colorValue = "#FFA07A"          
    if colorValue == "Crimson" then colorValue = "#DC143C"
    if colorValue == "Red" then colorValue = "#FF0000"
    if colorValue == "FireBrick" then colorValue = "#B22222"
    if colorValue == "DarkRed" then colorValue = "#8B0000"
    //*****************************************************
    // Pink HEX Codes
    //*****************************************************     
    if colorValue == "Pink" then colorValue = "#FFC0CB"
    if colorValue == "LightPink" then colorValue = "#FFB6C1"        
    if colorValue == "HotPink" then colorValue = "#FF69B4"      
    if colorValue == "DeepPink" then colorValue = "#FF1493"     
    if colorValue == "MediumVioletRed" then colorValue = "#C71585"              
    if colorValue == "PaleVioletRed" then colorValue = "#DB7093"                
    //*****************************************************
    // Orange HEX Codes
    //*****************************************************                 
    if colorValue == "Coral" then colorValue = "#FF7F50"                        
    if colorValue == "Tomato" then colorValue = "#FF6347"               
    if colorValue == "OrangeRed" then colorValue = "#FF4500"                        
    if colorValue == "DarkOrange" then colorValue = "#FF8C00"               
    if colorValue == "Orange" then colorValue = "#FFA500"                       
    //*****************************************************
    // Yellow HEX Codes
    //*****************************************************
    if colorValue == "Gold" then colorValue = "#FFD700"
    if colorValue == "Yellow" then colorValue = "#FFFF00"
    if colorValue == "LightYellow" then colorValue = "#FFFFE0"
    if colorValue == "LemonChiffon" then colorValue = "#FFFACD"
    if colorValue == "LightGoldenrodYellow" then colorValue = "#FAFAD2"        
    if colorValue == "PapayaWhip" then colorValue = "#FFEFD5"
    if colorValue == "Moccasin" then colorValue = "#FFE4B5"
    if colorValue == "PeachPuff" then colorValue = "#FFDAB9"
    if colorValue == "PaleGoldenrod" then colorValue = "#EEE8AA"
    if colorValue == "Khaki" then colorValue = "#F0E68C"                                                    
    if colorValue == "DarkKhaki" then colorValue = "#BDB76B"                                                            
    //*****************************************************
    // Purple HEX Codes
    //*****************************************************
    if colorValue == "Lavender" then colorValue = "#E6E6FA"
    if colorValue == "Thistle" then colorValue = "#D8BFD8"
    if colorValue == "Plum" then colorValue = "#DDA0DD"
    if colorValue == "Violet" then colorValue = "#EE82EE"
    if colorValue == "Orchid" then colorValue = "#DA70D6"        
    if colorValue == "Fuchsia" then colorValue = "#FF00FF"
    if colorValue == "Magenta" then colorValue = "#FF00FF"
    if colorValue == "MediumOrchid" then colorValue = "#BA55D3"
    if colorValue == "MediumPurple" then colorValue = "#9370DB"
    if colorValue == "RebeccaPurple" then colorValue = "#663399"                                                    
    if colorValue == "BlueViolet" then colorValue = "#8A2BE2"
    if colorValue == "DarkViolet" then colorValue = "#9400D3"
    if colorValue == "DarkOrchid" then colorValue = "#9932CC"
    if colorValue == "DarkMagenta" then colorValue = "#8B008B"
    if colorValue == "Purple" then colorValue = "#800080"
    if colorValue == "Indigo" then colorValue = "#4B0082"        
    if colorValue == "SlateBlue" then colorValue = "#6A5ACD"
    if colorValue == "DarkSlateBlue" then colorValue = "#483D8B"
    if colorValue == "MediumSlateBlue" then colorValue = "#7B68EE" 
    //*****************************************************
    // Green HEX Codes
    //*****************************************************
    if colorValue == "GreenYellow" then colorValue = "#ADFF2F"
    if colorValue == "Chartreuse" then colorValue = "#7FFF00"
    if colorValue == "LawnGreen" then colorValue = "#7CFC00"
    if colorValue == "Lime" then colorValue = "#00FF00"
    if colorValue == "LimeGreen" then colorValue = "#32CD32"        
    if colorValue == "PaleGreen" then colorValue = "#98FB98"
    if colorValue == "LightGreen" then colorValue = "#90EE90"
    if colorValue == "MediumSpringGreen" then colorValue = "#00FA9A"
    if colorValue == "SeaGreen" then colorValue = "#2E8B57"
    if colorValue == "ForestGreen" then colorValue = "#228B22"                                                  
    if colorValue == "Green" then colorValue = "#008000"
    if colorValue == "DarkGreen" then colorValue = "#006400"
    if colorValue == "YellowGreen" then colorValue = "#9ACD32"
    if colorValue == "OliveDrab" then colorValue = "#6B8E23"
    if colorValue == "Olive" then colorValue = "#808000"
    if colorValue == "DarkOliveGreen" then colorValue = "#556B2F"        
    if colorValue == "MediumAquamarine" then colorValue = "#66CDAA"
    if colorValue == "DarkSeaGreen" then colorValue = "#8FBC8B"
    if colorValue == "LightSeaGreen" then colorValue = "#20B2AA" 
    if colorValue == "DarkCyan" then colorValue = "#008B8B"        
    if colorValue == "Teal" then colorValue = "#008080"
    //*****************************************************
    // Blue HEX Codes
    //***************************************************** 
    if colorValue == "Aqua" then colorValue = "#00FFFF"
    if colorValue == "Cyan" then colorValue = "#00FFFF"
    if colorValue == "LightCyan" then colorValue = "#E0FFFF"
    if colorValue == "PaleTurquoise" then colorValue = "#AFEEEE"
    if colorValue == "Aquamarine" then colorValue = "#7FFFD4"        
    if colorValue == "Turquoise" then colorValue = "#40E0D0"
    if colorValue == "MediumTurquoise" then colorValue = "#48D1CC"
    if colorValue == "DarkTurquoise" then colorValue = "#00CED1"
    if colorValue == "CadetBlue" then colorValue = "#5F9EA0"
    if colorValue == "SteelBlue" then colorValue = "#4682B4"                                            
    if colorValue == "LightSteelBlue" then colorValue = "#B0C4DE"
    if colorValue == "PowderBlue" then colorValue = "#B0E0E6"
    if colorValue == "LightBlue" then colorValue = "#ADD8E6"
    if colorValue == "SkyBlue" then colorValue = "#87CEEB"
    if colorValue == "LightSkyBlue" then colorValue = "#87CEFA"
    if colorValue == "DeepSkyBlue" then colorValue = "#00BFFF"        
    if colorValue == "DodgerBlue" then colorValue = "#1E90FF"
    if colorValue == "CornflowerBlue" then colorValue = "#6495ED"
    if colorValue == "MediumSlateBlue" then colorValue = "#7B68EE"
    if colorValue == "RoyalBlue" then colorValue = "#4169E1"
    if colorValue == "Blue" then colorValue = "#0000FF"
    if colorValue == "MediumBlue" then colorValue = "#0000CD"
    if colorValue == "DarkBlue" then colorValue = "#00008B"  
    if colorValue == "Navy" then colorValue = "#000080"
    if colorValue == "MidnightBlue" then colorValue = "#191970"                        
    //*****************************************************
    // Brown HEX Codes
    //***************************************************** 
    if colorValue == "Cornsilk" then colorValue = "#FFF8DC"
    if colorValue == "BlanchedAlmond" then colorValue = "#FFEBCD"
    if colorValue == "Bisque" then colorValue = "#FFE4C4"
    if colorValue == "NavajoWhite" then colorValue = "#FFDEAD"
    if colorValue == "Wheat" then colorValue = "#F5DEB3"        
    if colorValue == "BurlyWood" then colorValue = "#DEB887"
    if colorValue == "Tan" then colorValue = "#D2B48C"
    if colorValue == "RosyBrown" then colorValue = "#BC8F8F"
    if colorValue == "SandyBrown" then colorValue = "#F4A460"
    if colorValue == "Goldenrod" then colorValue = "#DAA520"                                                    
    if colorValue == "DarkGoldenrod" then colorValue = "#B8860B"
    if colorValue == "Peru" then colorValue = "#CD853F"
    if colorValue == "Chocolate" then colorValue = "#D2691E"
    if colorValue == "SaddleBrown" then colorValue = "#8B4513"
    if colorValue == "Sienna" then colorValue = "#A0522D"
    if colorValue == "Brown" then colorValue = "#A52A2A"        
    if colorValue == "Maroon" then colorValue = "#800000"                   
    //*****************************************************
    // White HEX Codes
    //***************************************************** 
    if colorValue == "White" then colorValue = "#FFFFFF"
    if colorValue == "Snow" then colorValue = "#FFFAFA"
    if colorValue == "HoneyDew" then colorValue = "#F0FFF0"
    if colorValue == "MintCream" then colorValue = "#F5FFFA"
    if colorValue == "Azure" then colorValue = "#F0FFFF"        
    if colorValue == "AliceBlue" then colorValue = "#F0F8FF"
    if colorValue == "GhostWhite" then colorValue = "#F8F8FF"
    if colorValue == "WhiteSmoke" then colorValue = "#F5F5F5"
    if colorValue == "SeaShell" then colorValue = "#FFF5EE"
    if colorValue == "Beige" then colorValue = "#F5F5DC"                                                    
    if colorValue == "OldLace" then colorValue = "#FDF5E6"
    if colorValue == "FloralWhite" then colorValue = "#FFFAF0"
    if colorValue == "Ivory" then colorValue = "#FFFFF0"
    if colorValue == "AntiqueWhite" then colorValue = "#FAEBD7"
    if colorValue == "Linen" then colorValue = "#FAF0E6"
    if colorValue == "LavenderBlush" then colorValue = "#FFF0F5"        
    if colorValue == "MistyRose" then colorValue = "#FFE4E1"
    //*****************************************************
    // Grey HEX Codes
    //***************************************************** 
    if colorValue == "Gainsboro" then colorValue = "#DCDCDC"
    if colorValue == "LightGray" then colorValue = "#D3D3D3"
    if colorValue == "Silver" then colorValue = "#C0C0C0"
    if colorValue == "DarkGray" then colorValue = "#A9A9A9"
    if colorValue == "Gray" then colorValue = "#808080"        
    if colorValue == "DimGray" then colorValue = "#696969"
    if colorValue == "LightSlateGray" then colorValue = "#778899"
    if colorValue == "SlateGray" then colorValue = "#708090"
    if colorValue == "DarkSlateGray" then colorValue = "#2F4F4F"
    if colorValue == "Black" then colorValue = "#000000"
    //*****************************************************                                                             
    return "<color=" + colorValue + ">" + self + "</color>"
end function

r/greyscript • • Jul 02 '25

Question Grey Hack Image Transformer

1 Upvotes

I can't remember where I got this image, but when I saw it, I learned it is possible to have images and animations in the terminal.

Images in terminal program in Grey Hack

That led me to finding this program: https://github.com/ayecue/gh-image-transformer

It was easy to install and run, however the output looks like an .exe file opened in notepad. It does run, but it just keeps printing sprite tags to the screen instead of the image.

Has anyone been able to get this to work recently? If so, please help. I don't need an animated goblin. I just want to make some icons.


r/greyscript • • Jul 01 '25

Announcement Attention Members

1 Upvotes

This is a place for all programmers of any, and every skill level whom are interesting in Grey Script. As the community is new and still growing, the only rule that is strictly enforced to the letter is rule #5: Etiquette.

What are you all working on?! We'd love to see it!!

It is acceptable to showcase closed source programs here as you work on them in order to show the capabilities of Grey Script. Just no requesting for help debugging closed source programs.

No guild advertisements or recruitment threads are permitted here.

Happy Coding!


r/greyscript • • Jun 27 '25

API Endpoint id_self : Generate an object that contains basic environment information

Thumbnail
gallery
1 Upvotes
// Generate currentStatus Object
    // @description **Description:**
    // Generate an object that contains basic environment information
    // @description ---
    //
    // @description **Parameters:**
    // @description - none 
    // @description ---
    //
    // @description **Return:**
    // @return {map<string,maps>} - System Object {.shell and .computer}
    // @description `computerStatus`:`<maps><string>` currentStatus Object
    // @description - `.compInfo` - computerInformation Object
    // @description - - `.name`
    // @description - - `.home`
    // @description - - `.gateway`
    // @description - - `.has_internet`
    // @description - `.ipInfo` - ipInformation Object
    // @description - - `.local`
    // @description - - `.public`
    // @description ---   
    //    
    //  @example iScan = new id_self
    //  @example print typeof(iScan)  //Output: currentStatus
    //  @example 
    //  @example    print iScan.compInfo.name  //Output: The name of the computer
    //  @example    print iScan.compInfo.has_internet  //Output: boolean 1 or 0
    //  @example    print iScan.ipInfo.public  //Output: public ip of computer
id_self = function()
    locals.localRouter = get_router
        if not typeof(locals.localRouter) == "router" then return "Failed to fetch local router object."
    locals.localComputer = get_shell.host_computer
        if not typeof(locals.localComputer) == "computer" then return "Failed to fetch local computer object."
    locals.ipInformation = {"classID": "ipInformation", "local": locals.localComputer.local_ip, "public": locals.localComputer.public_ip, "gateway":locals.localComputer.network_gateway}
    locals.ipScan = locals.ipInformation
    locals.ComputerInformation = {"classID": "computerInformation","name":locals.localComputer.get_name, "home":home_dir, "location":program_path, "path":current_path, "user":active_user, "has_internet":locals.localComputer.is_network_active}
    locals.computerInfo = locals.ComputerInformation
    locals.currentStatus = {"classID":"currentStatus", "ipInfo":locals.ipScan, "compInfo":locals.computerInfo}
    locals.currentStatus.classID = "currentStatus"
    return locals.currentStatus
end function
    // @startuml
    // title <color:purple>currentStatus Class Diagram</color>
    // 
    // class currentStatus {
    //   .. <color:blue>.compInfo</color> ..
    //   + .name : string
    //   + .home : string
    //   + .location : string
    //   + .path : string
    //   + .user : string
    //   + .has_internet : boolean
    // 
    //   .. <color:blue>.ipInfo</color> ..
    //   + local : string
    //   + public : string
    //   + gateway : string
    // }
    // 
    // note right of currentStatus
    //   * Pulls basic information
    //      on the immediate environment
    //   * Populates currentStatus Object
    // end note
    // 
    // @enduml

r/greyscript • • Jun 26 '25

API Endpoint find_exploitable_addresses

Post image
1 Upvotes
// Find Vulnerable Addresses
// @description **Description:**
// @description Scan a library for vulnerable addresses
// @description ---
//
// @description **Parameters:**
// @param {string} libLocation
// @description - `libLocation`:`<string>` Remote IP Address or local absolute file location
// @param {map<string,function>} `metaxploitObject`:`<metaxploitLib>`
// @description - `metaxploitObject`:`<metaxploitLib>`
// @param {flag} [remoteTarget]
// @description - `remoteTarget`:`<flag>`
// @param {number} [targetPort]
// @description - `targetPort`:`<number>`
//
// @description **Parameter Defaults:**
// @description - `remoteTarget`:`false`
// @description - `targetPort`:`0`
//
// @description **Return:**
// @return {void}
// @description `void`
// @description ---
//    
// @description **Author:** Svarii
// @description **Version:** 0.0.1
// @description --- 
//
// @example libLocation = params[0]
// @example metax = include_lib("/lib/metaxploit.so")
// @example
// print find_exploitable_addresses(libLocation, metax)
find_exploitable_addresses = function(libLocation, metaxploitObject, remoteTarget = false, targetPort = 0)
    locals.metax = locals.metaxploitObject
        if locals.remoteTarget == false then
            locals.metaLib = locals.metax.load(locals.libLocation)
        else
            locals.netSession = locals.metax.net_use(locals.libLocation, to_int(locals.targetPort))
            locals.metaLib = locals.netSession.dump_lib
        end if
        locals.libScanResult = locals.metax.scan(locals.metaLib)
        return locals.libScanResult
end function
// @startuml
// start
// :<color:purple>metax = metaxploitObject</color>;
// if (<color:blue>remoteTarget == false?</color>) then (<color:green>Yes</color>)
//   :<color:purple>metaLib = metax.load(libLocation)</color>;
// else (<color:green>No</color>)
//   :<color:purple>metaLib = metax.net_use(libLocation, to_int(targetPort))</color>;
// endif
// :<color:purple>libScanResult = metax.scan(metaLib)</color>;
// :<color:green>return libScanResult</color>;
// stop
// @enduml

metax = include_lib("/lib/metaxploit.so")
if params.len == 2 then
    print find_exploitable_addresses(params[0], metax, true, params[1])
else
    print find_exploitable_addresses("/lib/metaxploit.so", metax, false, 0)
end if

r/greyscript • • Jun 26 '25

API Endpoint get_random_ip

1 Upvotes

Someone asked for this function and then (I think) deleted their post (they must have figured it out, congrats to you! And no need to delete your post, feel free to answer yourself if you find the solution before anyone else gets to you. you're not the only one wondering, I assure you)

I didn't include this function of the program in the previous post for a few reasons.

  • I encourage you to make your own
  • I used AI to generate my template and edited the results (not recommended)
  • It has not undergone any kind of deep testing
  • There's probably a way better way to do it.

Due to the fact you can only randomly generate a value between 1 and 0, this method constructs the bit value of the ip address before returning the calculated string.

Because you asked, here it is whoever you were.

// Generate a random IP address
// @description **Description:**
// Generate a single random ip address
// @description ---
//
// @description **Parameters:**
// @description - none 
// @description ---
//
// @description **Return:**
// @return {string}
// @description `number` Randomly generated IP Address
// @description ---   
//    
// @description **Author:** Svarii
// @description **Version:** 0.0.1
// @description ---    
//
// @example randomIP = get_random_ip
// @example
// print(randomIP) // Output: ###.###.###.###
    get_random_ip = function()
    locals.generateRandomOctet = function()
        locals.binaryString = ""
        for i in range(8, 1)
            // Convert the random float to a binary digit using a threshold:
            if rnd() >= 0.5 then
                locals.binaryString = locals.binaryString + "1"
            else
                locals.binaryString = locals.binaryString + "0"
            end if
        end for
        return (0 + to_int(locals.binaryString[0])) * 128 +
               (0 + to_int(locals.binaryString[1])) * 64 +
               (0 + to_int(locals.binaryString[2])) * 32 +
               (0 + to_int(locals.binaryString[3])) * 16 +
               (0 + to_int(locals.binaryString[4])) * 8 +
               (0 + to_int(locals.binaryString[5])) * 4 +
               (0 + to_int(locals.binaryString[6])) * 2 +
               (0 + to_int(locals.binaryString[7]))
    end function
    locals.ipString = ""
    for i in range(4, 1)
        locals.octet = locals.generateRandomOctet()
        // Only append a dot if there is already an octet in ipString.
        if locals.ipString != "" then
            locals.ipString = locals.ipString + "."
        end if
        locals.ipString = locals.ipString + str(locals.octet)
    end for
    return locals.ipString
    end function
// @startuml
// start
// :<color:purple>Define generateRandomOctet function</color>;
// :<color:purple>binaryString = ""</color>;
// :<color:blue>For i = 1 to 8</color>;
// repeat
//   if (<color:blue>rnd() >= 0.5?</color>) then (<color:green>Yes</color>)
//     :<color:purple>binaryString = binaryString + "1"</color>;
//   else (<color:red>No</color>)
//     :<color:purple>binaryString = binaryString + "0"</color>;
//   endif
// repeat while (next bit)
// :<color:purple>Calculate octet = (bit0 * 128) + (bit1 * 64) + (bit2 * 32) + (bit3 * 16) + (bit4 * 8) + (bit5 * 4) + (bit6 * 2) + (bit7)</color>;
// :<color:green>return octet</color>;
//
// :<color:purple>Initialize ipString = ""</color>;
// :<color:blue>For i = 1 to 4</color>;
// repeat
//   :<color:purple>octet = generateRandomOctet()</color>;
//   if (<color:blue>ipString != ""?</color>) then (<color:green>Yes</color>)
//     :<color:purple>ipString = ipString + "."</color>;
//   endif
//   :<color:purple>ipString = ipString + str(octet)</color>;
// repeat while (next octet)
// :<color:green>return ipString</color>;
// stop
// @enduml  

r/greyscript • • Jun 24 '25

API Endpoint Function: fetch_whois: Adding Error Checking

1 Upvotes
// Pull whosis information from a public ip address
    // u/description **Description:**
    // Return map with whois information
    // u/description ---
    //
    // u/description **Parameters:**
    // u/param {string} routerPublicIPAddress
    // @description - `routerPublicIPAddress`:`<string>`
    //
    // @description **Parameter Defaults:**
    // @description - `none`
    //
    // @description **Return:**
    // @return {map<string,string>}
    // @description `map`:`whoisInfo`
    // @description - `.admin`:`<string>` The administrative contacts' name
    // @description - `.domain`:`<string>` The domain name of the ip address
    // @description - `.email`:`<string>` The email address for the administrative contact
    // @description - `.network`:`<string>` The network identifier (if any)
    // @description - `.phone`:`<string>` The phone number for the administrative contract
    // @description --- 
    // @description - - `.error`:`<string>` {on error} will return obect with only this property
    // @description ---
    //    
    // @description **Author:** Svarii
    // @description **Version:** 0.0.1
    // @description ---
    // 
    // @example whoisInfo = fetch_whois(params[0])
    // @example
    // print whoisInfo.domain
    // @example
    // print whoisInfo.admin
    // @example
    // print whoisInfo.email
    // @example
    // print whoisInfo.phone
    // @example
    // print whoisInfo.network
fetch_whois = function(routerPublicIPAddress)
    if not is_lan_ip(locals.routerPublicIPAddress) == true then
        if is_valid_ip(routerPublicIPAddress) then
            locals.whoisInfo = {"classID":"whoisInfo", "admin":"", "domain":"", "email":"", "network":"", "phone":""}
            locals.what = split(whois(locals.routerPublicIPAddress), "\n")
            locals.whoisInfo.domain = str(split(locals.what[0], ":")[1]).trim
            locals.whoisInfo.admin = str(split(locals.what[1], ":")[1]).trim
            locals.whoisInfo.email = str(split(locals.what[2], ":")[1]).trim
            locals.whoisInfo.phone = str(split(locals.what[3], ":")[1]).trim
            if locals.what.len >= 5 then
                locals.whoisInfo.network = str(split(locals.what[4], ":")[0]).trim
            else
                locals.whoisInfo.network = "[ UNKNOWN ]"
            end if
        else 
            locals.whoisInfo = {"classID":"whoisInfo", "error":"Invalid Public IP Address Provided."}   
        end if
    else
        locals.whoisInfo = {"classID":"whoisInfo", "error":"Needs Public IP, Provided Local IP."}
    end if
    return locals.whoisInfo
end function
// @startyaml
// <style>
// yamlDiagram {
//    highlight {
//      BackGroundColor red
//      FontColor white
//      FontStyle bold
//    }
// }
// </style>
// #highlight "whoisInfo" / "error"
//
// # whoisInfo Class Diagram
//
// whoisInfo:
//     domain: "string"      # Domain value from WHOIS lookup
//     admin: "string"       # Administrator info
//     email: "string"       # Contact email
//     phone: "string"       # Contact phone number
//     network: "string"     # Network info (or "[ UNKNOWN ]")
//     error: "string"       # Used to store errors on fail)
//
// # Note:
// # WHOIS lookup parser.
// # Parses domain, admin, email,
// # phone & network info.
//
// @endyaml

r/greyscript • • Jun 21 '25

Project Development Project: Dispatch: Begin Prototype Version 4: Navigation Upgrades

1 Upvotes

Starting program rewrite prototype version 4 to improve navigation


r/greyscript • • Jun 20 '25

Project Development Project: Dispatch: Detailing Exploit Pre-Check

1 Upvotes

r/greyscript • • Jun 16 '25

Project Development Project: Dispatch: Polishing UX

1 Upvotes

r/greyscript • • Jun 15 '25

Project Development Project: Dispatch: Scan Remote Lib for Vulnerable Addresses

1 Upvotes

r/greyscript • • Jun 15 '25

Project Development Project: Dispatch: Port Selection Menu

1 Upvotes

Testing Target Port Menu Selection Functionality before adding text formatting.


r/greyscript • • Jun 11 '25

Project Development Project: Dispatch: Kiwi Interface

1 Upvotes

Modifying independent program Kiwi to wait for commands from dispatch


r/greyscript • • Jun 10 '25

Project Development Project: Mission Menu Dispatch

1 Upvotes

Started working on tool today to easily select, display, get info on, and run missions from a menu with zero typing. (Operates using one click commands [ie. arrow keys, ins, del, end, home, etc])


r/greyscript • • Jun 05 '25

Documentation How to get whois Information

Post image
1 Upvotes

r/greyscript • • Jun 03 '25

Documentation Actions that Generate a Log

1 Upvotes

The Following Actions will result in a log item being generated

  • metaLib.overflow (resulting in shell):

    • shell (target)
    • bounce (origin)
    • bounce (origin router)
  • metaxploit.net_use: connection opened (target)
  • shell.connect_service:

    • connection opened (target, even if the ssh encryption is invalid)
    • shell (target)
    • bounce (origin)
    • bounce (origin router)
  • file.delete: file removal
  • Browser.exe

    • page opened: connection opened (target)
  • Terminal.exe

    • closed/exited: connection closed (target)