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
pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


Mindblast posted:

It doesn't require anything out of game to work but the time from user breach to getting your system.loc hacked is suspiciously low. I'd almost burn a few users just to see how fast his system is. Beyond a certain point would definitely hint at augmentation beyond what the game permits.

The dev should be able to notice this and I'm pretty sure external poo poo is bannable.

When it gets late on my end the server always becomes slower and now I'm wondering why.

Likely a memory leak server side. My guess is it doesn't clean up hacked AIs that well and it seems to generate new ones during the day now too not just at reset.

Adbot
ADBOT LOVES YOU

Mindblast
Jun 28, 2006

Moving at the speed of death.


Ah yes that could be it. Maybe user load on top of it. Midnight for me is prime time usa.

Argue
Sep 29, 2005

I represent the Philippines
Okay, I seem to have no idea how to PASS a scriptor to a CON_SPEC lock. So if I run name.conspecscript {s: "foo", d: 1}, it returns the correct value. But when I actually call npc.loc { CON_SPEC: #s.name.conspecscript }, it just gives me the "provide a scriptor" message.

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


You can purchase a few script slots and instead it will ask you to solve a normal puzzle. I don't think anyone has done much into the scriptor version since it is more difficult and buying a few script slots and loading them is cheap.

Example other one Next 3 letters in EFG or next 3 letters in SRQ or GIK. (Forwards, backwards, every other)

Lichtenstein
May 31, 2012

It'll make sense, eventually.

please knock Mom! posted:

Never

Breach

Your

Bank

So I take it, you can't really automate T2?

Doubleumc
Jun 3, 2006

Lichtenstein posted:

So I take it, you can't really automate T2?

You can get close, but not entirely. The two main issues are the acct_nt lock and the sn_w_glock lock.

The acct_nt lock asks for the amount of either a range of transactions between two approximate timestamps or a single transaction with a very rough timestamp -- this means there will be several solutions to try before you can guarantee cracking it. Most importantly, what acct_nt asks for can change if your transaction list changes.

The sn_w_glock lock requires the hacker have a specific account balance for it to take, and if they don't it won't unlock and takes a good chunk of their cash anyway. Solving the sn_w_glock and any locks behind it requires repeated transfers of its required amount of cash, which quickly flood your transaction log.

Both of these are rough individually, but the ultimate "cracker's nightmare" is a sn_w_glock -> acct_nt combo. Solving the sn_w_glock to get at the acct_nt can change the acct_nt's answer -- requiring even more attempts to get through, etc. Most crackers will pass on this sort of lock as soon as they figure it out.

Lichtenstein
May 31, 2012

It'll make sense, eventually.
Yeah, I meant that you can't really automate xfer_gc_from from your other user safely and that kinda rules out auto-glocking.

Or perhaps making a public script on your alt hardcoded to xfer_gc_to an amount passed as an argument to your main would work? Like, remotely force the alt to be xfer_gc_to's caller?

Doubleumc
Jun 3, 2006
Commands are always run from the caller's context. The only one accts.xfer_gc_to can take from is the one who ran the script.

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


Lichtenstein posted:

Yeah, I meant that you can't really automate xfer_gc_from from your other user safely and that kinda rules out auto-glocking.

Or perhaps making a public script on your alt hardcoded to xfer_gc_to an amount passed as an argument to your main would work? Like, remotely force the alt to be xfer_gc_to's caller?

Based on the tutorial I assume this is a planned feature. Since launder bots exist there. But being able to fully automate T2 when T3 isn't yet a thing seems like it would be bad for gameplay. If that command isn't a thing when T3 or shortly after T2 will be a wasteland.

Orange DeviI
Nov 9, 2011

by Hand Knit
The dev also wants non coders to be competitive somehow, so automation can't be too easy-- manual running with automated harvesting seems to be the style he's going for right now. Teamwork, corps, or good old capitalism where harvesters charge a price per loc

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


please knock Mom! posted:

The dev also wants non coders to be competitive somehow, so automation can't be too easy-- manual running with automated harvesting seems to be the style he's going for right now. Teamwork, corps, or good old capitalism where harvesters charge a price per loc

People are closely guarding their T2 crackers because they are the end game right now. I'm sure when T3 is out it will be possible to automate them a bit easier. If not no one will really crack T2 unless T3 has a lock that steals whatever upgrade is in slot 0 and you need the exact thing it's looking for. Then T1/T2 will be needed to farm upgrades. Still T2 is a bit long if T3 gives 1T+ which it should if the pattern holds.

Tolstojevski
Apr 10, 2009
Can anybody who actually does this coding stuff give this thing a once over and tell me if I am doing anything worthy of the coding horrors thread? It is my t1 cracker.
http://pastebin.com/19uXH0Y1
Did not get on the discord yet, mostly in game while in office so I can't use voice comms. Should get to handling t2s during this week I think, will pop in when I do :) .

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


Tolstojevski posted:

Can anybody who actually does this coding stuff give this thing a once over and tell me if I am doing anything worthy of the coding horrors thread? It is my t1 cracker.
http://pastebin.com/19uXH0Y1
Did not get on the discord yet, mostly in game while in office so I can't use voice comms. Should get to handling t2s during this week I think, will pop in when I do :) .

Discord is text. There's voice Chan's on it too but no one uses that, maybe for PvP timing it could be useful?

Superschaf
May 20, 2010

Tolstojevski posted:

Can anybody who actually does this coding stuff give this thing a once over and tell me if I am doing anything worthy of the coding horrors thread? It is my t1 cracker.
http://pastebin.com/19uXH0Y1
Did not get on the discord yet, mostly in game while in office so I can't use voice comms. Should get to handling t2s during this week I think, will pop in when I do :) .

I noticed you defined a lot of functions, but a lot of them don't actually get called more than once. This makes figuring our code flow a lot harder. Then if you look at the lWord, lNumber, lPrime and cSeries functions, you see a lot of code repetition, which you want your functions to prevent, especially since hackmud has a character limit on scripts.

I wrote a t1 cracker in 500 characters (the starting limit) as practice. The end result isn't necessarily pretty since I had to use a lot of ugly tricks to fit everything into the character limit, but it might be interesting. http://pastebin.com/JF0s1fCk

staplegun
Sep 21, 2003

I've been running my head into a wall trying to figure out how I can pass a location with arguments to my script so I wouldn't have to keep on hardcoding params and reuploading the script for it to work.

Right now, my script works appropriately when I invoke it like this:

>sec_chk(o:#s.testloc.test)

that uses hardcoded variables in the script like so
code:
var o = args.o.call({arg1:"foo", arg2:"bar"})
Which isn't really flexible, since every time I switch to a new system I'll have to edit/reup the script. Ideally, I'd invoke my script, like this:

>sec_chk{o:#s.testloc.test{arg1:"foo", arg2:"bar"}}

But I don't think that's gonna be at all viable, probably because of some misconceptions about the function of scriptors, or at the very least just because I can't get the parser to stop freaking out over nested curly braces (which can't be escaped here). So, I started thinking of other ways that I could get a list of arguments the avoid the issue, mainly a loop that iterates through Object.keys(args) to just pull out the variables that I specify in the script and then just reassemble them. That hasn't worked out very well and I'm pretty sure I'm missing a simpler way to do all this, any ideas?

Tolstojevski
Apr 10, 2009

staplegun posted:

I've been running my head into a wall trying to figure out how I can pass a location with arguments to my script so I wouldn't have to keep on hardcoding params and reuploading the script for it to work.

Right now, my script works appropriately when I invoke it like this:

>sec_chk(o:#s.testloc.test)

that uses hardcoded variables in the script like so
code:
var o = args.o.call({arg1:"foo", arg2:"bar"})
Which isn't really flexible, since every time I switch to a new system I'll have to edit/reup the script. Ideally, I'd invoke my script, like this:

>sec_chk{o:#s.testloc.test{arg1:"foo", arg2:"bar"}}

But I don't think that's gonna be at all viable, probably because of some misconceptions about the function of scriptors, or at the very least just because I can't get the parser to stop freaking out over nested curly braces (which can't be escaped here). So, I started thinking of other ways that I could get a list of arguments the avoid the issue, mainly a loop that iterates through Object.keys(args) to just pull out the variables that I specify in the script and then just reassemble them. That hasn't worked out very well and I'm pretty sure I'm missing a simpler way to do all this, any ideas?

Nested curly braces work totally ok, but you can not couple them with the function like that I think. One of my db helper scripts filters by column and the params go like this
code:
{ledger:"something, col:{lock:"EZ_21"}}
No problems at all. So you should have no problems doing
code:
sec_chk{o:#s.testloc.test, fArgs:{arg1:"foo", arg2:"bar"}}
and then you can simply call with
code:
args.o.call(args.fArgs)

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


So stuff has gotten interesting today, t2 seem to be sticking around even the highest ones these ones do not have a Glock making them really quick to crack. I made 1b in about 90 minutes tonight along with a ton of upgrades.

There also seems to be NPCs giving out of with memos about it being for OS upgrades and functions of some NPC corps like suborbital airfare money. No location is given so it's not obvious where you are supposed to go from there.

Or maybe it's a player trying to get you to do a puzzle and steal locs each encounter has had a different loc so far but who knows.

We have a Corp so the real fun is now going to start. If anyone took a break waiting for goons to solve stuff now is a great time to hop back in or to buy into the game I'd you have been waiting. It feels like the next content will be out soon.

staplegun
Sep 21, 2003


Works perfectly, thanks for the help.

I don't think it will really help anyone, but here's the barely functioning script. It'll just run get_access_level and get_level on all the addresses in a given page. The hope is that it will quickly determine for you if there's any script that may have been planted in a bunch of innocuous-looking locations.

code:
function (context, args) {
	//invoke with sec_chk{o:testloc.test, fArgs:{arg1:"foo", arg2:"bar", arg3:"whatever"}}
	var o = args.o.call(args.fArgs)
	
	o = o.toString()
	var entry = o.split(",")
	var ret = ""
	
	for (var i=0;i<entry.length;i++) {
		ret += entry[i]+":\t\t\t"+#s.scripts.get_access_level({name:entry[i]})+"\t\t"+#s.scripts.get_level({name:entry[i]})+"\n"
	}
	return ret
}
I should probably work on making the output less ugly, but at least it's working and I can move on for now

Question Time
Sep 12, 2010



Goonhack corp is now number 4 on the server, and coming up on number 3. Number one and two are so far ahead that the only possible way to catch up would be to breach them, though.

Mindblast
Jun 28, 2006

Moving at the speed of death.


Well they got that wealth for a good portion through the gibson and I doubt it will be the last of its kind. Next time maybe goons can be the first past it.

Usenet Magic-User
Jun 13, 2010
Does this game dump the game console to file, is there a way to do that from in game? Would be nice to parse

Doubleumc
Jun 3, 2006
You can find shell.txt, the console output, in C:\Users\<YourName>\AppData\Roaming\hackmud. You can see your chatlog and scratchpad in there, as well as the ability to edit your macros outside of the game.

Usenet Magic-User
Jun 13, 2010

Doubleumc posted:

You can find shell.txt, the console output, in C:\Users\<YourName>\AppData\Roaming\hackmud. You can see your chatlog and scratchpad in there, as well as the ability to edit your macros outside of the game.

thanks, also i posted in the discord for auth if thats an active thing

So um I guess there isn't a default human easily readable one?
This is mine:
<color=#FFFFFFFF>>><color=#9B9B9BFF>halperyon</color>.<color=#1EFF00FF>helpdesk</color> { <color=#00FFFFFF>password</color>:<color=#FF00ECFF>"sky"</color>, <color=#00FFFFFF>option</color>:<color=#FF00ECFF>"helpdesk_roster"</color>, <color=#00FFFFFF>roster_pass</color>:<color=#FF00ECFF>"lassie"</color> }</color>
<color=#9B9B9BFF>abandoned_ldi221</color>.<color=#1EFF00FF>info_6aiwqp</color>
<color=#9B9B9BFF>anon_anuw21</color>.<color=#1EFF00FF>extern_94a5b3</color>
<color=#9B9B9BFF>uknown_ih72qq</color>.<color=#1EFF00FF>access_h59dn2</color>

<color=#FFFFFFFF>>><color=#9B9B9BFF>anon_anuw21</color>.<color=#1EFF00FF>extern_94a5b3</color> {}</color>
<color=#FF00ECFF>LOCK_ERROR</color>
Missing <color=#00FFFFFF>ez_35</color> unlock parameter. Current parameters {}


I can filter it but it would have been cool to have by default

Usenet Magic-User fucked around with this message at 07:25 on Oct 13, 2016

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


I love this game, I've learned a good bit about actually putting ideas into code. I've never had a goal when I've tried to pickup anything beyond make a powershell script for a 1 time run.

Usenet Magic-User posted:

thanks, also i posted in the discord for auth if thats an active thing


Discord is active, the auth is described at the top it's done like you'd expect

type !authme <YourSAUsername>

I do like your attempt at using in game syntax going to assume the game just fried your brain.

Your name has usenet, think IRC

Ruggan
Feb 20, 2007
WHAT THAT SMELL LIKE?!


Usenet Magic-User posted:

thanks, also i posted in the discord for auth if thats an active thing

So um I guess there isn't a default human easily readable one?
This is mine:
<color=#FFFFFFFF>>><color=#9B9B9BFF>halperyon</color>.<color=#1EFF00FF>helpdesk</color> { <color=#00FFFFFF>password</color>:<color=#FF00ECFF>"sky"</color>, <color=#00FFFFFF>option</color>:<color=#FF00ECFF>"helpdesk_roster"</color>, <color=#00FFFFFF>roster_pass</color>:<color=#FF00ECFF>"lassie"</color> }</color>
<color=#9B9B9BFF>abandoned_ldi221</color>.<color=#1EFF00FF>info_6aiwqp</color>
<color=#9B9B9BFF>anon_anuw21</color>.<color=#1EFF00FF>extern_94a5b3</color>
<color=#9B9B9BFF>uknown_ih72qq</color>.<color=#1EFF00FF>access_h59dn2</color>

<color=#FFFFFFFF>>><color=#9B9B9BFF>anon_anuw21</color>.<color=#1EFF00FF>extern_94a5b3</color> {}</color>
<color=#FF00ECFF>LOCK_ERROR</color>
Missing <color=#00FFFFFF>ez_35</color> unlock parameter. Current parameters {}


I can filter it but it would have been cool to have by default

With a single regex find and replace in Notepad++ you can remove every single color tag. It's about the only reasonable way to go about things.

Marx Headroom
May 10, 2007

AT LAST! A show with nonono commercials!
Fallen Rib
So writing scripts that read shell.txt isn't out of bounds? I thought that was mega haram.

Wompa164
Jul 19, 2001

Don't write ghouls.
I am extremely curious to see if this game can survive people REing the client.

Superschaf
May 20, 2010

Mr. Jive posted:

So writing scripts that read shell.txt isn't out of bounds? I thought that was mega haram.

Those files are only written on shutdown and once every 60 seconds, so not that useful for automation.

Ruggan
Feb 20, 2007
WHAT THAT SMELL LIKE?!


Mr. Jive posted:

So writing scripts that read shell.txt isn't out of bounds? I thought that was mega haram.

No, the whole reason I used it in the first place was for multi-line copying, which wasn't supported last I checked.

DaveKap
Feb 5, 2006

Pickle: Inspected.



Ruggan posted:

With a single regex find and replace in Notepad++ you can remove every single color tag. It's about the only reasonable way to go about things.
Also, FYI, the regex is: <(.*?)>

Question Time
Sep 12, 2010



I now have dozens of duplicates of all useful upgrades, so anyone that needs any upgrades or money to sys.init PM me here or message me on discord and I'll send you some stuff. Everyone trying to PVP should have at least 4 copies of each of the pvp scripts to switch to, for example.

Michaellaneous
Oct 30, 2013

In other news, dtr completely delusional and blames users for bugs in game.

http://pastebin.com/vZ3mKUcb

e: Quick noted.

1. dtr is admin in the official discord
2. Goon used automation to run a legit script in game to hack admin
3. Game is buggy and allowed the script to run multiple times
4. Server almost shits the bed
5. dtr extremely salty and thinks we need to do testing for the game

Michaellaneous fucked around with this message at 19:14 on Oct 22, 2016

theres a will theres moe
Jan 10, 2007


Hair Elf

Michaellaneous posted:

In other news, dtr completely delusional and blames users for bugs in game.

http://pastebin.com/vZ3mKUcb

e: Quick noted.

1. dtr is admin in the official discord
2. Goon used automation to run a legit script in game to hack admin
3. Game is buggy and allowed the script to run multiple times
4. Server almost shits the bed
5. dtr extremely salty and thinks we need to do testing for the game

Does the goon at least get his $13.37 back?

30.5 Days
Nov 19, 2006
The best part of today is when a group of self-absorbed players who thought they had the developer's ear demanded he "do something" about automation, because it had been used to hack them. He said no.

Michaellaneous
Oct 30, 2013

theres a will theres moe posted:

Does the goon at least get his $13.37 back?

It was only a tempban, and this goon is back to hacking the admins again.

pixaal
Jan 8, 2004

All ice cream is now for all beings, no matter how many legs.


Did we get dtr's loc?

Arsonide
Oct 18, 2007

You're breaking my balls here

Michaellaneous posted:

In other news, dtr completely delusional and blames users for bugs in game.

http://pastebin.com/vZ3mKUcb

e: Quick noted.

1. dtr is admin in the official discord
2. Goon used automation to run a legit script in game to hack admin
3. Game is buggy and allowed the script to run multiple times
4. Server almost shits the bed
5. dtr extremely salty and thinks we need to do testing for the game

This is kind of what pisses me off about this game. Last time I played people were spoofing administrators and they decided that was "against the rules". Now this is "against the rules". What kind of sandbox hacking game can this possibly be if anything that gives an unfair advantage is against the rules? The point of hacking is to gain an unfair advantage.

Beyond that point, where are these "rules" posted? I didn't see any going into the game, so I have to assume that "the rules" are an extremely subjective set of opinions that sean holds.

Doubleumc
Jun 3, 2006
To be clear dtr is only an admin of the (un)official discord, he has no control over the game itself. His opinions, good or otherwise, have to filter through the dev the same way ours do.

30.5 Days
Nov 19, 2006

Arsonide posted:

This is kind of what pisses me off about this game. Last time I played people were spoofing administrators and they decided that was "against the rules". Now this is "against the rules". What kind of sandbox hacking game can this possibly be if anything that gives an unfair advantage is against the rules? The point of hacking is to gain an unfair advantage.

Beyond that point, where are these "rules" posted? I didn't see any going into the game, so I have to assume that "the rules" are an extremely subjective set of opinions that sean holds.

He's a delusional player.

There are only four rules, they're mainly centered around giving the developer a break/not making the game be total bullshit:

- All network traffic has to come from the game client itself, no modifying the client or its memory (basically to avoid tying up dev time on "oh my client stopped working... also I corrupted the files on purpose"). The developer wants to lift this in the future once there's a "trusted" API we can hit.
- Don't take advantage of a bug that lets you break script trust (lets you do NILSEC, etc. stuff with the script still reporting FULLSEC, etc.)
- Only gently caress with someone's ability to play the game by tricking them into running a NILSEC (you can do almost anything to someone in a NILSEC script, even taking advantage of bugs to gently caress them)
- No discriminatory language or personal abuse.

That's pretty much it. People are trying to pressure the dev into making other stuff against the rules but the plan seems to be to make the serverside/game mechanics incentivize more interesting play instead.

Adbot
ADBOT LOVES YOU

DaveKap
Feb 5, 2006

Pickle: Inspected.



pixaal posted:

Did we get dtr's loc?
Pretty sure he let's it sit publicly in the loc list bot because he has enough defenses not to worry about it.

30.5 Days posted:

The best part of today is when a group of self-absorbed players who thought they had the developer's ear demanded he "do something" about automation, because it had been used to hack them. He said no.
Y'know, when I complained about an automated hack hitting me, I didn't actually ask Sean to block it or make it go away or ban the user who did it. I asked for a way of testing my scripts that didn't require me to open up my own alts. I feel kinda validated knowing dtr can't even handle being hacked but lowly ol' me with my stolen 100M can understand.

DaveKap fucked around with this message at 07:34 on Oct 23, 2016

  • Locked thread