Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
LordSaturn
Aug 12, 2007

sadly unfunny

So can I not get out of 0000? 0000 is awful.

Adbot
ADBOT LOVES YOU

LordSaturn
Aug 12, 2007

sadly unfunny

Lemon posted:

chats.leave { channel:"0000" }

I'll try that.

So do I need to do a sys.init after the firewall before I can hack t1s? Where do I get the GC for that, besides Haunty Mall?

LordSaturn
Aug 12, 2007

sadly unfunny

Ciaphas posted:

Ahh, interesting

Is said security checker recursive or do you have to pray there's not some double blind callback bullshit going on

You can be assured there's no double blind callback poo poo going on, since all security checks are recursive.

EXCEPT.

If a function takes a "scriptor" argument, of the form #s.user.script, it will be able to make you execute that script without inheriting its security levels.

Some of the tutorial scams I see in public chat trick you into scriptoring yourself into the open. Use get_level on anything you're about to pass as a scriptor.

Also, I mashed together something to simplify the NPC grind process:

code:
function(context, args)
{
	// 1) Call as: user.scriptname{ dir:#s.npc.dir }
	// 2) Copy and paste the output to crack an NPC
	// 3) If you get another output, go to 2
	// 4) If it times out, go to 1
	
	// You can get npc directories from ada.fullsec.
	// This relies heavily on dbrickshaw.free_t1_cracker and ada.scrape_t1.
	// If either of those become unsuitable, replace them with correct calls below.
	 
	if ("tgt" in args)
	{
		// Replace as needed
		#s.dbrickshaw.free_t1_cracker({t:args.tgt});
	}
	
	do
	{
		// Replace as needed
		var scraped = #s.ada.scrape_t1({s:args.dir});
		var level = #s.scripts.get_level({name:scraped});
	} while (level != 4)
	
	var output = context.this_script + "{ tgt:#s." + scraped + ", dir:#s." + args.dir.name + " }";
	
	return {ok:true, msg:output};
}

LordSaturn
Aug 12, 2007

sadly unfunny

Doctor_Acula posted:

So I tried using Lord Saturn's script, and I can't figure out how to make it work.
This game makes me feel humble.

Are you past the firewall?

If so, do #help, and see what that does for you.

EDIT: And once you get installed, do ada.fullsec, and mash any of the results into it as described in the comment. The breaching part only works if you're in hardline mode, which ytou will have done in the tutorial.

LordSaturn
Aug 12, 2007

sadly unfunny

Doctor_Acula posted:

Yeah, I'm in the main game. I am doing fine at finding dead accounts manually, but I'm trying to see how to up my game.
I *think* I'm doing it right. I really have no JS background and am just learning what I can as I go. It's returning a.s.call is not a function, if that helps.

Do it exactly like this: user.scriptname{ dir:#s.npc.dir }

Replace user with your name, scriptname with whatever you uploaded it as, and npc.dir with the NPC directory you want to scrape from. Leave the #s where it is.

#s isn't a javascript thing, it's a hackmud thing. It lets scripts do things at the command prompt.

LordSaturn
Aug 12, 2007

sadly unfunny

Don't give up on T1s just because 0000 tells you to. Be persistent, change networks. The script I posted above does one additional helpful thing, which is that it checks each loc with scripts.get_level - this has the side effect of making sure that the subject exists. If it doesn't find one, it'll scrape another, in a loop...

LordSaturn
Aug 12, 2007

sadly unfunny

Ciaphas posted:

Cool, now I've got a good reason to write scripts for myself to harvest and crack T1s rather than flub about with T2s and QRs on an unupgraded user.

(Yes I know there's plenty of scripts already public for T1 but loving lol if I trust any of them)

Your paranoia is generally commendable, but misguided. A fullsec script can only do you harm if 1) you pass it a scriptor to a non-fullsec script or 2) it makes you say dumb stuff in chat. If a cracker says it's fullsec, the worst it can do is make you blab advertisements, and I've never seen one that does.

dbrickshaw's cracker is open source - if you call into it with no arguments it'll give you a pastebin link to source you can use to make your own.

Scrapers appear to be a harder problem, and I can't figure how one would work, given that the different directories all have slightly different parameters. I guess some of it is spammable...

Once you have both of those, you can write a "glue" script to crack the passed-in scriptor, then scrape a new scriptor, then return a copy-and-pastable script call to start over. There is no way for a script to take the name of a script, as a string, and call that script. This would make it pretty easy to violate the earlier security model, and would also make it possible to automate scraping and cracking. Instead, we rely on the user copy-and-pasting with a scriptor we format for them.

LordSaturn
Aug 12, 2007

sadly unfunny

Ciaphas posted:

Bleh, that makes perfect sense. Funny, I can understand System.Reflection and things like that nearly intuitively but something simple like JSON and parameter passing in JavaScript eludes me.

Just practice, I know, but still, :saddowns:

Javascript is a hideously permissive language. Dictionaries, classes, and associative arrays are all the same thing and can be used interchangeably. If foo.bar = 3, then foo["bar"] = 3 as well, guaranteed. It's psycho - but handy.

Ciaphas posted:

By the way, has anyone figured out yet what the different security levels of scripts represent?

Hit up dtr.man.

Adbot
ADBOT LOVES YOU

LordSaturn
Aug 12, 2007

sadly unfunny

I wrote a t1 scraper. Basically, a billion regexes.

The event log and mission statement links are always the only two words on the homepage separated by " | ".

You can get the nav keyword and employee directory link by calling with empty arguments and looking for x:y where y doesn't have < or > in it.

In the mission statement, the pw is always the word following "strategy ".

In the event log, project names follow one of about five distinct phrases. Lost a lot of character count listing them out, but false positives are a bummer.

Now you can iterate through project names, fetching the employee list for each, filtering out any entries with < or > in them. But! You're likely to time out maybe 25 projects in.

I solved THIS problem with a database. Knowing that the project list is stable and cheap to compute, all I keep in my db are the next loop index to run, and a running table of every single NPC I find. I updated my attack script to read-and-delete one target off that table rather than hit up a public NPC scraper.

My first full run took about five hits to cover all of nuutec, about 1650 targets. I doubt I'll get them all before they reset, but every single one I tried attacking was a hit.

I suppose I should load up a public slot, figure out escrow, and start letting newbies buy targets for their hard-earned pennies...

  • Locked thread