• 75 Posts
  • 739 Comments
Joined 1 year ago
cake
Cake day: June 9th, 2023

help-circle


  • So Flash memory works in blocks called pages. The pages contain a header that ends in a few bytes that says what the rest of the page maps to.

    If the file was encrypted, you’re probably SOL. If it was not encrypted it may be possible to to recover some parts of the files. This is extremely advanced level data recovery. I only know the abstract basic principals and would likely struggle to figure this out and recover my own stuff if I ever needed to do this. I’ve only programmed microcontrollers and flash memory devices.

    A micro SD card contains a small microcontroller and some blocks of flash memory, although the microcontroller is transparent to the user and operating system… unless hacking with needle probes in a lab.

    So here’s the basics. Writing flash involves taking an entire Page of memory and zeroing it first. There is a tiny voltage booster circuit on the card that allows the page to get pulsed up and down in voltage a few times in order to completely zero the entire page without any remaining residuals. Once this is done and the entire page has been zeroed, only then is it possible to write the data into the bytes of the page.

    If you want to change a single byte level value in an address that already contains a value, first the entire page is copied to a blank page in another location, then the old page is pulsed a few times, then each value is transferred back into the old page except that the new value that needed to be changed is now set to the new values.

    This is the proper way to write flash at a basic level. If the power is lost in the middle of this cycle, the worst case scenario is that the new updated value was not written. The page in question should never be “missing” because the header record should always point to either the original or copied page. One of the two should always be present and complete… in a proper setup. Obviously, it might be faster to simply use some RAM to hold the page, erase the old page and rewrite it. I have no idea what size pages are in modern SD cards, but on hobby class microcontrollers I have used the pages were 4096 bytes, IIRC. My understanding is that most SD cards use an 8051 clone micro, so it is probably a similar size.

    So here’s the thing, the bulk of the data is always there. Somewhere deep down inside you likely already knew this. It is why you’re supposed to overwrite an entire drive instead of the “quick” erase in most formatting tools. The quick erase is simply deleting a tiny header file that says what exists where on the drive. Similarly, some part of your SD card there is a page or few where the header has been screwed up. Your OS is looking at this header info and seeing a mismatch of garbled junk and saying f-that bs.

    Generally, recovery would involve dumping the raw contents of the flash memory as hexadecimal, being super familiar with what you’re looking at and knowing how to find the page that is causing the error. Generally I assume you’d need to replace the bad page with a good header and it would then work. There are services for this kind of operation; data recovery. In practice, this has a few more layers of complication. Pages can be placed in different locations that enable wear leveling so one area of memory is not over utilized. There is also a table of bad blocks/pages that the micro knows to skip, and there is usually a bit or address in the page that is used to detect errors that may have occurred.

    This is pretty much everything I know on the subject. Hopefully it helps you understand the abstract nature of what is happening. In the simplest of terms, flash memory is like writing a long essay with an ink pen and where you can not make mistakes or use whiteout. If you need to make a change, you must write out the entire page all over again. This process is what is so time critical that you must “eject” the drive.




  • I don’t trust AliEx any more after I took the loss of 3 orders for ~$60 in 2020. When I called, they hung up on me at random every time. After the 3rd try I washed my hands and walked away. Stealing from me once is on them, twice would be my own fault. Prior to that experience I spent a few thousand dollars on the platform for odds and ends.

    I expect something like this to be an emulator and nowhere near the quality of a real Nintendo product, but I could be wrong. I would buy used or a homebrew project that is well documented and might cost a little more.




  • I just don’t bother trying. Someone probably has a solution for the proprietary garbage inside the laptop that is undocumented. I could go in and monitor the registers that are being changed. I’ve only ever used it once, and I was there to blacklist the Mac address in my router’s outbound filter because the worst hackers are corporate stalkerware pirates that limit my access to information and sell my data to those that wish to manipulate me in healthcare, insurance, banking, and politics.

    The proprietary code is running on a microcontroller and there is no telling what else it is doing or connected to. It is present in the UEFI memory space. So naturally, I want to be able to monitor its native behavior at any time as well. I have logged an unknown Mac trying to dial out occasionally that is not the windows Mac, but I whitelist everything I wish to connect to via a 3rd party device I fully control. That level of ownership certainly is peak Linux.


  • I don’t know hardware/systems like this. I’m an abstract thinker. I like to break down and distil complicated subjects to a level I intuitively understand.

    Secure boot uses a Trusted Protection Module (TPM) chip. It is usually a dedicated chip, although there is a sketchy way it can be implemented in software. The idea is that the TPM chip is not connected internally to your computer at all. The chip can issue a new key that is only hashed with an internal key on the chip. There is never a point where that internal key on the chip is present in your computer. If any key present in your computer is generated from a TPM module, there is no way for anyone to swap, modify, or access the private key pair inside the TPM.

    Secure Boot is using this key to check that the bootloader and all kernel code hashes against the TPM secret key. Running SB with a TPM keyset is essentially saying no part of the chain is trusted, so we’re making an extra sandboxed place that we can trust and making it exist in a space with no possible connections in software. There are possible exploits in an electronics lab with physical access to the hardware, but that is well outside of the average person’s reasonable security model.

    If anyone modifies the bootloader binary, it is extremely difficult to detect after it is compromised.


  • It is because of Secure Boot. Windows is doing exactly what it is supposed to do. The UEFI Secure Boot keys are not part of Linux.

    Your bootloader is the biggest attack surface on most modern computers. You can foolishly turn off secure boot, but windows may require SB to work at all. I think W10 may have had an option to turn off the SB requirement, but I know W11 must have SB.

    You can manually sign your own keys and replace them. I’m not going to just explain it all rn, but you can ask if you really need the help.

    If you want the easy path, just run any Fedora or vanilla Ubuntu. They both have a special key that is signed by m$ called a shim. It can coexist with Windows easily without any problems. I have a w11 partition just for adjusting my RGB keyboard sitting beside Fedora all the time on the same drive.

    Secure boot is designed to delete all unsigned bootable code. If you run a signed OS with SB this will always happen regardless of what other software is present. Self signed Linux would delete unsigned Windows just the same.



  • Not sure. There was some controversy with some of the devs making alt front ends and admins complaining about the slowness. I’ve seen mention of one of the two devs learning Rust just to participate. So it is not entirely a walled garden. The front end devs wanted to make an alt from scratch but in something like JavaScript although I don’t recall the details exactly. There were a lot of red flags related to privacy and understanding the community at large in the posts I saw from them. When asked why they weren’t adding pull requests with Rust in order to address their complaints I got no reply.

    All that said, I’m no dev. I can read in to around half the code I come across if I really try, and can successfully modify maybe half of that if I spend a few days on it, but I suck at clever code and the DRY cult types. I haven’t tried to look into Lemmy in any depth beyond figuring out the basics.


  • The Lemmy algorithm:

    https://join-lemmy.org/docs/contributors/07-ranking-algo.html

    The instances communicate between each other using special bots in the background that transport info between instances. Dot world is too big and makes too many requests to other instances. Most instances are reducing the number of transport bots back to dot world right now. There is supposed to be a fix in the next Lemmy version, but the code base is somewhat slow moving due to only two devs and it is written in Rust. Rust is a hard language like C, and not too many here are able to contribute to it, even though it is like the new gold standard of code.

    So you might see a delay between posting and replies or the interaction may come in bursts that correspond with the transport bots carrying content between instances as the host admin have configured their instance.









  • I don’t think Jesus ever existed. Show me 12 guys that experience something absolutely world changing, and none of them write anything about it for decades and then tell me they were factually motivated. This is the premise we’re dealing with.

    We were all stupid gullible little kids learning this stuff. Most people are only doing it for the social network, but don’t understand it as such. The bias of disregarding all the opposing evidence causes cognitive dissonance and most of the bad behaviors of present society.

    Pragmatically, a group of nobodies managed to survive Rome destroying their civilization because of stupidity and rebellious nationalism. This diaspora was a refugee crisis everywhere else. No one wanted them and their religion was a joke. They had no where to go, owned nothing, and were not even citizens of the lands they inhabited. Most were likely slaves. After a few decades, some started rebuilding a life. It was the perfect opportunity to fabricate some new religious thing if you were a displaced nobody. That diaspora wanted meaningful purpose to make them feel nostalgic over their religious past. The gospels are the tales of some nobodies that didn’t have to work because they sold themselves as the product that filled the niche needs of the more successful among that diaspora. They got put up in people’s houses and fed well. They likely did so until they got caught by some Romans while trying to grow their religious support base, or because they were overstaying their welcome everywhere they went. Like Paul was probably put on a boat knowing that he wouldn’t be able to return, probably a boat likely to sink, and one sent into a storm on purpose.

    It is easy to say all the things that “thousands witnessed” when all those thousands are dead or displaced and unable to dispute anything you’ve said. None of them wrote down any part of their accounts for several decades. What kinds of reliable stories can you tell after several decades. To top that off, there are elementary school level copying errors that are blatant in nature. They are exactly what I expect from a con. You don’t have a case where there are 12 unique accounts or 11 if you want to be pedantic. I can easily picture myself in this circumstance, and I can easily see myself performing this exact con if my alternative was starving to death. There is nothing remarkable about the story. At the time, there were very few people that supported or believed it. A couple hundred years later it picked up steam. That too is obvious. Polytheism is like an anarchic political party. Any fool can conjure a political movement that has potential to overthrow governments using an obscure god of convince and a plausible story that feeds what others want to hear… Look at Julius Caesar. He largely used his religious role as pontifex maximus to gain power as a populist. Monotheism is far easier to control. The true purpose of religion is quite simple. It is a self sustaining way to suppress the peasantry. This is the common thread throughout all of history. Religion functions as a morality police system with a corpus that is just long enough to occupy the minds of the average person. It is a source of tribal isolation. It is not a meritocracy, so it will not evolve much with time. Conservative sadism and ignorance are an effective way to oppresses or suppress progressive societal elements that might question the corruption and ineptitude of the upper class. Religion creates little gullible pockets of people that are easily manipulated by the upper class and authority.

    So no, there is no evidence for anything more than opportunistic cons and pragmatic government if you really strip away all the layers and look at it objectively. It is a system of feelings over logic because feelings disregard facts and make up their own like imaginary friends no one has ever talked to, or a magical future if you just go about your insignificant life while telling you it will be better next time. Or shit, how about we really rub it in: in the next life “the meek will inherit the earth.” That’s right, act as low as you can little peasants, and be happy about it. It will be better next time. Your imaginary friend said so about this place no one has ever seen or been to. The majority of humans believe shit like this. If you know this stuff well, you know I did too.

    You can’t fix stupid in anyone else; only within yourself. Fighting or arguing with anyone that places emotionally derived belief over fundamental logic is a pointless and destructive waste of time. Sharing reasonable logic with those on the edge can be helpful, but like, I came up with all of this on my own completely independent of external sources.