HandyGeek Posted September 17, 2022 Share Posted September 17, 2022 Hello Not sure if I am missing something, but every time I try and use $_RANDOM_INT I get just a $ to print out instead of a random integer. I have been trying to figure it out for a bit now and just realized with the update to Studio Pro that it is a Deprecated syntax. I checked and I do have Allow DEPRECATED Duckyscript 1.0 Fallback Syntax checked and with it unchecked it does not even recognize the syntax. I have not read anywhere about updated syntax for Random in the documentation, and it seems a lot of the Random Variables do not work in the same way. I am sure I am missing something just unsure what If anyone has an idea it would be super helpful 🙂 thank you Link to comment Share on other sites More sharing options...
dark_pyrro Posted September 17, 2022 Share Posted September 17, 2022 You have to provide some portions of your payload code to be able to see if something is wrong in how you use the randomization feature or not. Link to comment Share on other sites More sharing options...
dark_pyrro Posted September 17, 2022 Share Posted September 17, 2022 Did a payload test now including $_RANDOM_INT and it works. Link to comment Share on other sites More sharing options...
HandyGeek Posted September 17, 2022 Author Share Posted September 17, 2022 Duh sorry lol I added the REMs for the post I have tried several different ways REM Function to have the program randomly select a number REM FUNCTION CHOOSE_A_NUMBER() REM $_RANDOM_INT REM END_FUNCTION REM List of Variables and Constants REM VAR $MACHINE_NUMBER = $_RANDOM_INT REM $_RANDOM_INT and with the new 1.2.0 of Payload studio it shows just using the internal variable with a exclamation triangle that says Deprecated Syntax will only (sic) the first character: $ If I turn off Allow DEPRECATED Duckyscript 1.0 Fallback Syntax That warning turns to an Error "Unrecognized syntax - Key not found in language file: $_RANDOM_INT I get that warning/error with all RANDOM variables it seems except MIN and MAX. I have Persist language file enabled and Display DUCKY_LANG above editor off. But changing those setting does not fix the error Thank you for Replying Link to comment Share on other sites More sharing options...
HandyGeek Posted September 17, 2022 Author Share Posted September 17, 2022 I am wondering if I need RANDOM in that config file under the languages. I do not have it currently Link to comment Share on other sites More sharing options...
dark_pyrro Posted September 17, 2022 Share Posted September 17, 2022 You can't "call" $_RANDOM_INT standalone on a line by itself, you have to assign it to a variable. $_RANDOM_INT needs to know where to put the generated value. Link to comment Share on other sites More sharing options...
HandyGeek Posted September 17, 2022 Author Share Posted September 17, 2022 I believe that is what I was trying to do first This is the code I wrote that will successfully compile but where $MACHINE_NUMBER is called it just prints a $ REM Attackmode, Startup Delay, and LED Set to Off REM ATTACKMODE HID STORAGE REM DELAY 2000 REM LED_OFF REM $_RANDOM_MIN = 1 REM $_RANDOM_MAX = 10 REM Button Def to Restart the Payload REM BUTTON_DEF REM RESTART_PAYLOAD REM END_BUTTON REM List of Variables and Constants REM VAR $MACHINE_NUMBER = $_RANDOM_INT REM Opens Notepad with Windows Run Command and Makes it Full Screen REM GUI r REM DELAY 200 REM STRINGLN notepad REM DELAY 1000 REM ALT SPACE REM DOWNARROW REM DOWNARROW REM DOWNARROW REM DOWNARROW REM ENTER REM Prompt for user input REM STRINGLN I'm thinking of a number between 1 and 10 REM DELAY 1000 REM STRINGLN Try and guess the number I have selected. Please type one number REM between and 10 now. REM DELAY 2000 REM $MACHINE_NUMBER Thanks again for your time 🙂 Link to comment Share on other sites More sharing options...
dark_pyrro Posted September 17, 2022 Share Posted September 17, 2022 You can't just echo out the variable since it's not a string, it's still a variable containing an integer value. You will have to "force" it to print a string. There are functions available that I've used to echo out strings based on what a variable is containing. Check this post for some possible inspiration. I said before that you have to assign the output of $_RANDOM_INT to a variable, but that's not entirely true. You could use it without doing that in a function but it's not documented as far as I know. Link to comment Share on other sites More sharing options...
HandyGeek Posted September 17, 2022 Author Share Posted September 17, 2022 That is a bit out of my league lol I am super new I am taking the course and it has an example of something similar that I was trying to do for the assignment. REM Example Random Integer Example with Range REM LED_OFF REM $_RANDOM_MIN = 20 REM $_RANDOM_MAX = 50 REM VAR $A = $_RANDOM_INT REM WHILE ($A > 0) REM LED_G REM DELAY 500 REM LED_OFF REM DELAY 500 REM END_WHILE Is it because the variable is being called as a parameter in the While loop that it works there? Link to comment Share on other sites More sharing options...
dark_pyrro Posted September 17, 2022 Share Posted September 17, 2022 Well, I guess you got some answers on Discord. $_RANDOM_MIN and $_RANDOM_MAX isn't really the same as $_RANDOM_INT and that's why you can use $_RANDOM_MIN and $_RANDOM_MAX in the payload code in a different way than $_RANDOM_INT. $_RANDOM_MIN and $_RANDOM_MAX just "sets the scene" for $_RANDOM_INT, and $_RANDOM_INT does more than just hold some values since it is doing the actual randomization and returns a randomized value. You were correct on Discord about needing to decrement $A, otherwise the while loop will run forever (which I previously had commented about on Discord). Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.