Elvith Ma'for

Former Reddfugee, found a new home on feddit.de. Server errors made me switch to discuss.tchncs.de. Now finally @ home on feddit.org.

Likes music, tech, programming, board games and video games. Oh… and coffee, lots of coffee!

I � Unicode!

  • 1 Post
  • 308 Comments
Joined 2 年前
cake
Cake day: 2024年6月21日

help-circle





  • Not OP. I’m dual booting Windows and Fedora. Fedora supports secure boot, so everything works out of the box. The only thing that annoys me are the Nvidia drivers. Those need a kernel module that you need to compile yourself. And all kernel modules need to be signed for secure boot.

    In theory, it’s still easy: At first, Fedora boots with a precompiled and signed nouveau driver, that supports secure boot - so you can use your PC after the install. When you install the NVidia Driver, akmods etc gets setup automatically. Also they automatically generate a key pair for you and mokutil allows you to send that key to your UEFI, so that you can install it on the next boot. So it’s just reboot, load the key once in the UEFI and after the reboot the official driver is running. After every kernel upgrade akmods should automatically recompile the module, sign it with your key (now known by your UEFI) and it just works.

    In practice… For me it’s a 50:50 if the akmods auto build works. So, after a kernel upgrade, I usually reboot, wait for the build to fail to a Desktop in 1024×768 and then have to open a terminal and type akmods --rebuild --force. After the build and an additional reboot everything works again.





  • Im inclined to answer with “Yesn’t”

    Yes, the problem is readability. You can get “better” code of you know the exact tooling and settings for compilation, as you can then better guess what optimisations and tricks were used (by the compiler) and you may be able to “undo” them. There are so many places where this will only let you make guesses. You write a loop in your code, the compiler removes the loop and replaced it with another construct that may be a bit faster to execute, but may be way harder to understand - or tedious to change if you need to edit it especially if it’s not a simple change (character can now run faster!) but needs new functionality that would completely break this optimisation (but it’d be trivial to add in the original code).

    Also all context is removed. You won’t work with code like this:

    (Both pseudocode, not bothered to make a real example that maybe even compiles)

    if keyPressed(MOVE_RIGHT){
      player.speed = min(player.MAX_SPEED, player.speed + player.acceleration*frametime)
    }
    else{
       player.speed = player.speed * player.MOVEMENT_DAMPENING * frametime
    }
    

    You’d get something like this:

    int *fi93836290= 0x7363728
    int *fi22425 = &fi93836290+0x23
    fi22425 = fun7362782(0x63627)? fun42638(...)
    //and so on
    

  • I don’t know.

    The gist is… When you write a program/game/… You write source code and then compile it - that means translating the source code into machine readable code. While certain things do usually get lost in this process (e.g. function names, variable names, etc.) you can see the resulting machine code and make a valid assumption about how the original code looked like. This is not a 1:1 reconstruction, but will yield code that should compile to the (basically) same result as the original game.

    If you hit a Jackpot, you find a version of the program/game that was used for testing. Those often contain many pieces of information that would otherwise be stripped from the end result (e.g. aforementioned variable names, function names and so on). If not, it’s a puzzle solved with guess work and experience.

    If you know some specifics about the game (which language was it written in, what compiler was used in which version,…) you can get some better results, as you can take patterns in the machine code and translate them back into what the original code was probably looking like based on the tools used.

    In the end it’s sadly almost everytime still a manual process in which you look at the resulting source code, make some educated guesses based on patterns that are usually used when programming and specific functions that are probably contained in a game and then check those assumptions by changing the code and see if your changes affect the part of the program you thought you were dealing with.

    Say you assume a specific variable/value is the maximum walking speed of the character. Then you change it and try to play the game and see if you can walk faster now. If so, label this value accordingly and go on to the next unknown piece of the puzzle.






  • And don’t listen to the promises of big companies with billion-funds, they cook with water like the rest of us.

    Oh, yeah, I remember when one of our super important core systems was migrated to SaaS. My system was interfacing with it, so I got notified about the migration to make a plan. I basically told them: “We’re using $API to connect to your system. Tell me the new hostnames and IP ranges and ports and I will configure the firewall on our end. Also, our connector for your migrated system will be deployed in $IP-range so please allow these inbound connections in your firewall.”

    Half a year later I got a message: “Yeah, we just found out, that $SaaS-provider never configured the firewall after our tickets and everything is reachable from the public internet. We’re forcing them to lock down the system now. Can you please tell us again from where you connect to us?”


  • If you put any data anywhere, assume it will be contained in a breach in the future. Blue teaming is hard. You have to be perfect every time. Red teaming is easy. You just have to wait till the blue team makes a simple mistake…

    Mails sent to a company? Their or your mail account will be breached one day.

    Account details on a webpage? Their user database will be leaked.

    Your cloud drive, ect.

    Even your data on your NAS at home or on your PC could get accessed in one way or another, you’re just a zero day and an unfortunate click away from disaster.

    On the upside, as long as you do not have a target on your back, patch your stuff in a timely manner and keep some hygiene in configs, secops … You should be fine, as most automated attacks aren’t that high level and target the low hanging fruits. But that doesn’t make you completely safe.


  • I wonder… How does gravity affect you inside the earth?

    In very simple thoughts: You fall down to the middle of the earth and accelerate (ok, friction would get you to the stated terminal velocity) and the decelerate on your way “up” on the other side.

    A bit more complicated: But this is just a hole, meaning there’s mass all around us. So this attracts us. But right in the center, we should be attracted by all mass around us in all directions. So I guess it pulls is into the center of mass? Or maybe it cancels all out and there is no gravity?