• 6 Posts
  • 13 Comments
Joined 1 year ago
cake
Cake day: July 22nd, 2023

help-circle
  • When it comes to installing stuff, I’m very trigger-happy. So, from experience…

    Installing stuff on Windows (safely)

    • Hope it’s on Chocolatey (choco install)
    • If not, search for the website online
    • Scroll past the AI slop and suspicious Softonic downloads
    • Click the website
    • Find the correct download button
    • Download
    • Scan with MalwareBytes (don’t want an STI)
    • Run setup.exe
    • Verify PATH and wanted feature set
    • I do not want to bundle Candy Crush or McAfee
    • skim the Privacy Policy to see if they’ll grind my bones to dust
    • Install Microsoft C++ Redistributable 2014-2018 (wtf? I already have 4 of these)
    • Wait
    • Sort the installation shortcuts into my folders

    Installing stuff on Linux (safely)

    • paru some_software
    • If on AUR, skim PKGBUILD
    • If not packaged at all (rare), git clone it and either skim the install.sh or Makefile
    • Done




  • Not fishy at all! It’s like a lockpicking fan asking about locksport.

    If you’re looking for examples, GitHub has a lot of CVE proof-of-concepts and there are lots of payload git repos across git hosts in general, but if you’re looking for a one-stop-shop “Steal all credentials,” or “Work on all OSes/architectures just by switching the compile target,” then you’ll have a harder time. (A do-one-thing-well approach is more maintainable after all.)

    If you want to make something yourself that still tries to pull off the take-as-much-as-you-can, you should just search up how different apps store data and whether it’s easy to grab. Like, where browsers store their cookies, or the implications of X11’s security model (Linux-specific), or where Windows/Windows apps’ credentials and hashes are stored. Of course, there’s only much a payload can do without a vulnerability exploit to partner with (e.g. Is privilege escalated? Are we still in userland? is this just a run-of-the-mill Trojan?).

    Apologies if my answer is too general.






  • Obligatory Linux comment (Lemmy moment):

    Windows is used often for its compatibility and defaultness but Linux is interesting in the sense that everything is patchable, everything is tinkerable and configurable. The low resistance to tinkering makes lots of Linux users tinkerers – including tinkering via code.

    I’m not saying wipe your hard drive or even dual-boot. Maybe an older computer or VM could help, depending on what you have. But just in the past week I’ve screwed around in low-to-medium-difficulty Linux projects that configured my lockscreen with C, that implemented mildly usable desktop GUIs with TypeScript, among others – just not-too-committal stuff that has a return value I literally see every time I lock my computer.

    Windows equivalent projects can be harsher on the beginning-to-intermediate curve (back when I first tried out Linux Mint, I’d been struggling to make a bookmark inspector in Visual Studio – ended up Pythoning it instead) – not to say that Windows fun is by any means out-of-reach.


  • My friends Leetcoded and Codeforced quite a lot. Advent of Code is up there too, with the interesting caveat that Advent of Code also teaches you refactoring (due to the two-part nature of every problem).

    However, when I was younger I had contempt for the whiteboard-problem-esque appearances of these, but everyone is different.

    If you look hard enough there is always a project at medium difficulty – not way too hard, like a huge project you feel won’t give you returns – not way too easy, like some cowsay clone. Ever tried making a blog? You can host for free on most Git pages implementations (codeberg, github, gitlab…).

    As for programming books, consider trying security books like Art of Exploitation – in the same strain, CTFs can use a decent amount of code, and they’re fun in terms of raw problem-solving. I started with the Bandit wargame, which does Linux problem solving from any machine that has SSH.

    I’m not by any means a l33t hax3r but I found them pretty fun in my learning journey.


  • According to tab autocomplete…

    $ git
    zsh: do you wish to see all 141 possibilities (141 lines)?
    

    But what about the sub options?

    $ git clone https://github.com/git/git
    $ cd git/builtin
    # looking through source, options seem to be declared by OPT
    # except for if statements, OPT_END, bug checks, etc.
    $ grep -R OPT_ | grep --invert-match --count -E \
    "OPT_END|BUG_ON_OPT|if |PARSE_OPT|;$|struct|#define"
    1517
    

    Maybe 1500 or so?

    edit: Indeed, maybe this number is too low. git show has a huge amount of possibilities on its own, though some may be duplicates and rewords of others.

    $ git show --
    zsh: do you wish to see all 489 possibilities (163 lines)?
    $ man git-show | col -b | grep -E "^       -" --count
    98
    

    An attempt at naively parsing the manpages gives a larger number.

    $ man $(find /usr/share/man -name "git*") \
    | col -b | grep -E "^       -" -c 
    1849
    

    Numbers all over the place. I dunno.


  • Click to view diffs is super ergonomic; on the other hand, I actually have a story about the Git CLI trumping the GUI (spoiler: reflog).

    In high school we had gotten the funding to build a robot, and one of the adults in charge – guy was brilliant – was using GitHub Desktop to conduct a feature merge with the student who served as team lead. The thing was, he was used to older codebases, so all of his experience was with CVS instead of Git – so when the two slightly messed up the git merge, they discussed recloning everything instead of wasting time plumbing the error (relevant xkcd).

    That was one of the earliest times I had the cajones to walk up to a superior and say “No, you’re doing this totally wrong. You don’t have to do that.”

    He looked at me and nodded. “What would you do instead?”

    “Reflog.”

    “Reflog? I’ve never heard of it before. Can you show us?”

    I hopped onto the laptop and clicked around GitHub Desktop, but couldn’t manage to find any buttons related to reflog… so I went straight to cmd.exe instead.

    git reflog
    git reset --hard "HEAD@{7}"
    

    “Done. We can continue rebasing.”

    And after that, the advisor complimented me for using the command line tool!

    “Lots of GUI apps are just limited frontends to the real meat and potatoes, the command line. Nice job!”

    I felt like a wizard! And so I became the team’s Git-inator.

    edit: pruned story







  • It’s scientifically defined (Woods, 2023).

    https://doi.org/10.1080/03626784.2023.2272988

    I propose a definition of shitposting that embodies four distinct elements: a reliance on absurdity or “meaninglessness,” the critique or disruption of online discourses, the employment of an “internet ugly” aesthetic, and the use of meta-languaging.

    Meaninglessness/absurdity - There’s no intrinsic meaning in the content, but there is in said content’s circulation. Shitposts “mock”, “denigrate”, “construct an image of authenticity”, and “accrue social capital” (he probably means upvotes or Discord reactions)

    Disruption - It can be used politically, e.g. the alt-right drowning out opponents, or just plain derailment, using “ironic references… to confound commentary or analysis” (he uses a Twitter example in the article – i.e. among the “Here’s what I did today!” there’s a Jon Arbuckle of in of out, and it disrupts your train of thought)

    Internet ugly aesthetic - Kinda obvious. Motion blur on a plastic bag sort of stuff. But he diagnoses an internet-queasiness I didn’t know I had: “[shitposting] provides a critique of the overly streamlined information ecosystem of the internet… an imposition of messy humanity… on smooth gradients, blemish correcting Photoshop, and AutoCorrect”

    Meta-languaging - Well, memes evolve. It’s part of their meaningless-content meaningful-use interaction. Like a meme with a random Subway sandwich on it, obviously insanely edited over repeatedly.

    Actually a really interesting read. The man quotes dril and talks about how he started a small movement where “corncobbing” was an insult.