For the guy pirating software....
Students are often doing the best they can with what they have. Sometimes the software you give them legally through the class isn't working for them. So, they go pirate a full software suite or something. (EG: had some folks in my IS grad that pirated full versions of SAS & Tableau).
As long as they're getting the work done for the class, and it meets the standards of the exercise(s), then let it slide.
But, email them and let them know that in the working world, using pirated software is going to be a major issue.
Projects in the working world are designed to generate profit. If all your profit (and then some) is eaten up by a lawsuit for using pirated / illegally licensed / etc software, code libs, etc... then "that guy" is not going to be employed for very long.
In the working world, I've seen folks get stuck with some garbage software their company gave them, so they pirated a software suite to secretly do better work. (EG: back when internet first showed up, some guys at a job site were stuck using notepad & ms paint as their web-design tool for a dept's intranet. They pirated a version of Dreamworks & Fireworks to create the intranet site for the dept.)
The person using the pirated / illegal software has to take it upon themself to know when they're crossing the line.
IE: using a pirated one-off software to do something real fast.. ok, fine. But, including a pirated piece of software as Standard Operating Procedure at the company.. not gonna fly if someone does a software audit.
EG: if someone pirated the full version of winZip, and used it to unzip something. Ok, whatever. But, if they use it to script a solution where they get some zipped-up data transfer files, use winZip scripting to automate an unzip and pass-off to another process as part of their ETL (extract, transform, load) data process they kit-bashed together... yeah, that could potentially be a lawsuit or fine waiting to happen.
So, just warn the student that using pirated software is ok as long as they get the assignments done, but be more careful / diligent in the working world.
For the folks sharing the software... I'd ask that they prove they each did their own work.
That might be hard if it's an assignment where everything should look the same.
EG: we did SAP homeworks in info sys class. Everyone's outcome, if done properly, would look the same. But, everyone had to use their own modules and stuff, so prof could easily see who was doing the work and not.
If it's some code, you'll just naturally have folks in coding classes sharing code. It's ok if folks brainstorm together on some code. That's how programmers work.
What's NOT ok, is if one student is doing all the work, and then a bunch of other students are expecting them to hand it off to them so they can turn it in as their own.
Had a major issue of that in a java class, where some foreign exchange students were treating one of the students like their slave labor. When everyone shows up with the same code, same variable names, etc... yeah, that's not gonna fly.
But, if those two students have to share the software, b/c one of them can't get it to run on their computer, or doesn't have a computer with specs good enough to run it, etc... well,... again, students gotta do what they gotta do to get by. Students aren't made of money, and often they're choosing the "least crappiest" situation, not the best situation to get things done in.
Ideally, the software you're making them use would be loaded on the computer lab computers, but I'm guessing computer lab's shut down due to COVID.
So, students gotta do what they gotta do to pass the class.
These are extraordinary times that require a little extra leeway.