HN user

NtGuy25

122 karma
Posts0
Comments39
View on HN
No posts found.

Recently joined a company with legit soda machines(the fancy ones with exotic stuff like cream sodas), slim jims, ice cream, cookies, cakes and which buys lunch for the engineers every weekend. It's amazing. I came from a place where you had to pay 2 $ for a soda!

It's definitely one of the things that you don't realize when you don't have it, but when you do it's like heaven. It's really helped me get more work done since I can snack away and it encourages me to get up for walks around the office.

Flutter 3 4 years ago

There's definitely competitors opening up and realizing the space is worth the investment. C# Maui for example, especially with Blazor, is extremely cross platform as well(including web), but it has full party support in C#.

It was pretty heavily used in enterprise on applications from around 2006-2012. I still have nightmares of it, as since it's enterprises the code bases got massive and GWT in my experience had a trend of getting a ton of code smells.

Apple is by far the most secure, which is why you rarely see kernel exploits and the market for IOS security researchers are in high demand. While the market for android researchers are hot, it's luke warm in comparison. Even in IOS 13, meaningful iphone exploits are hard to come by, while android it's like candy.

Key point, it's going to be difficult to find a way to unlock the bootloader on an Iphone, or a root on modern versions of IOS. Meanwhile you can buy a android phone day 1 and load your own bootloader and get code running in the kernel. This is exactly what a malicious application does. The security boundaries of apps are pretty strong on both OS's, but Apple makes sure apps can't violate that.

Just like with any government agency, you bid on something called "Small Business Set Asides" and get or say you are a minority woman. This will give you bonus points and contracts that are reserved for these groups. All government bids are open and if you google it, it will take you to websites which has these contracts listed and how to bid.

https://www.sba.gov/federal-contracting This site is pretty good on the process, on that page you can look and see the "Federal Procurment system" and it has a link to it, which shows all open bids on contracts. They also have another link on there which has small business set asides.

This is really the big reason. IOS blocks applications from running dynamic code. The kernel is immutable and replaced on every update, and safeguarding the JS engine is a huge benefit of controlling the OS. Antivirus's really struggle with this on PC because of all the dynamic code being ran that they can't really enforce things like code signing, requiring executable code to be mapped to the disk, etc.

This is going to make everyones phone ALOT less secure. There's a reason android malware and hacks are a big issue and there's almost none on IOS, as the footprint is so low due to things like this.

There's a big difference between moderation on HN and sites like Reddit. Reddit completely shadowbans, filters, or bans anyone who doesn't post with the hivemind. This makes it so you can't have a fair contrarian view and it completely pushes out people and makes an echo chamber. I would say that Reddit takes it to the level of the Soviet Union in wrongthink.

While HN is moderated, you can have pretty much any fair view as long as it contributes to the discussion. Which is nice and the ideal middle ground. Although I will say, I never have any issues with Twitter and the moderation is just fine besides some high profile cases I disagree with. I would say it's even to lax.

There's plenty of other companies that have the other side of the coin in values though that would admire people who stand up. It's very nice to be a good culture fit at a company. I have a Blue Lives Matter flag in the corner of my camera during interviews and it's gotten me some really good offers and I havn't been declined once.

On the flip side, I know many that have been discriminated based on their looks or vocal patterns(trans / lgbt). Alot of companies and people assume these people are a problem because of what goes on at google and decline them due to culture fit.

In regards to memory alignment, it's even worse. Most instructions work on unaligned data. But some instructions require 8 byte, 16 byte, 32 byte, 64 byte and I think there's even some 128 and 256 byte alignment. One of the more common pitfalls someone can find themselves in when coding x86-64 asm.

Government pension is actually very bad. You pay 4 % of your salary per year, and get 1 % * years worked * avg(3 top highest salaries).

You get far more money if you put that 4 % into a 401k or other investment vehicle.

Also, with loans being discharged, you have to have made a ton of payments, to the point that most will pay off their loans before they're eligible in a stem position.

Tinygrad 4 years ago

There's actually alot of research in this topic. You should look into "Genetic Programming" on scholar.google.com and you'll find some good presentations.

For example https://scholar.google.com/scholar?hl=en&as_sdt=0%2C21&q=gen... and that references a paper where they do this with MUGEN (Ai v Ai fighting game) http://irep.ntu.ac.uk/id/eprint/30021/1/PubSub7423_8186_Mart...

Genetic programming sounds like a complicated term, but it's basically an easy way to take successful characteristics and breed them into something else.

This is one of the biggest issues people don't realize. A react dev doing fully frontend stuff is usually paid more than a security guy. Management views this as the developer making a product and giving money. But with insurance no longer covering hacks like they used to, and with the absolute amount of ways into organizations, security people can literally save a company from millions of losses and possible collapse.

Are you trying to run your own business? Me, my friends, and all of my coworkers have to live in the shadows because recruiters hunt us. Like, my buddy posted on Indeed and not has 5 unsolicited phone calls and 12 emails a day.

If you really can't find work in this market, you should really try fixing your resume since you most likely aren't selling your skills or have a red flag. Some of my older coworkers only put their last 12 years experience, or don't list dates on them to avoid age discrimination at the resume filter stage.

I was recently looking for positions and it seems like most of these companies are hiring you as a filler until they get someone just as good. So you're 100 % right.

Without sounding controversial. Most promotions and good things at a job come from people skills rather than technical. And if you can get into the "Good old boys" club or just make friends, then you usually succeed. WFH doesn't really have those options, so not only does the company not want you to WFH, you also arn't making connections and relationships.

After hearing some horror stories from people who took the jump earlier in Covid, I decided against it, since it's exactly what you said. 100 % stagnation.

Although, the only people I have heard doing well are our sysadmins/IT friends. They are very asynchronous and can easily work 3 jobs with no conflicts and are doing very well.

If you're trying to enter the field I would highly suggest ARM. Mobile malware is the wild west and they really need analysts and hire a bunch of people with no experience out of college. X86/64 is alot harder to enter the field in since theres alot more saturation so the barrier to entry is higher.

Had this issue with a coworker who uses a decade old version of Linux and refuses to install anything other than base packages cus it's "Stable". Well I made an in house tool, and it's not stable, since his glibc had a bug that's been fixed for a decade that made it so pthreads would break. Everytime I tried telling him it's his system before someone else found the bugfix, he would go "YOU JUST DON'T KNOW HOW TO WRITE MULTITHREADED CODE! MAKE IT SINGLETHREADED AND FIND THE BUG!"

You want to use C anyhow as you want to make sure you have control over the code that is output.

For example the following code you know what the assembly is going to be.

strcmp(char* a, char* b);

strcmp(str1,str2);

If you do the above as a template you can run into some weird issues that you may not be expecting. So while tedious, you would need to make your own wscmp. You also have to be very careful so that you don't pull in ANY libraries. Since your code needs to be 100 % independent and do the loading itself.

C++ exceptions are implemented at the OS level in windows. C++ exceptions using SEH, while there's also VEH and unhandled exceptions. You can easily use SEH for your shell code, it's just not documented well. But sadly you have to manually set this up by having something like

SetExceptionHandler(curAddr,Handler) // Where curaddr can be found by doing something like call $+5 so you remain position independent.

You do end with modules having the same address in every process if untampered though. This is due to Copy on Write windows implements internally with DLL's to save space. So while not guaranteed. On X64 you can be certain that because of COW the module will have the same address.

QEMU 6.2 5 years ago

Here's the really simple explanations.

Emulations is pretty much literally just mapping instructions between processors. So there may be an instruction in my custom chipset called "Add4", which adds 4 inputs. I would emulate ADD4 RAX, 0x1234, 0x2345, 0x3456 that by

ADD RAX, 0x1234; ADD RAX, 0x2345; ADD RAX, 0x3456;

It gets a bit more complicated with architecture differences like memory configurations. But that all emulation is.

When you're virtualizing, you pretty much just need to manage hardware. The hypervisor does this for you by managing which resources go to where. You could virtualize it by just running it like a program. But that's really painful and tedious, so you rely on the CPU to support it. Each chip has it's differences, but it's effectively just like a syscall. You have VMCALL and VMEXIT instructions. And then you have a handler in your vmexit table, which is exactly like a syscall table. So if(exitreason == CPUID_EXIT) cpuid_handler();

For a good book you can look up "Hardware and software support for virtualization" https://www.amazon.com/Hardware-Software-Virtualization-Synt... . It's honestly the only good resource i've found on what really makes this work.

It depends, but most consumer AV's upload. And alot of EDR's are implimenting cloud based detections, with the option for companies with IP risks to run an on prem version of their cloud server.

A good example is this hackernews post from not long ago detailing how Windows Defender uploaded a beacon he made from a VM with no internet access (But connected to a LAN with his main computer) and exfiltrated it from there to Redmond and ran it, most likely in some automated scanner. https://news.ycombinator.com/item?id=21180019

It's not. Binary protection is easy and you won't be able to stop high level attackers. It's similar to the EDR field where it's monitoring heuristics and trying to correlate those to attacks. And it's also similar in that normally it functions off of a whitelist, but they get a bit more coverage since they only care about a singular program which they control.

Companies get most of it from either filter drivers or ETW. Which effectively give a callback and notification for every handle or handle operation (So Networking, File, Registry, InterProcess, etc...). The good way to do this is ETW which gives you events and doesn't allow changing of these events, unlike a filter driver that can modify these requests. And this stops 99 % of people. ETW even runs in usermode as opposed to a driver.

They also do malware techniques such as loading shellcode over the wire so it's difficult to audit the actual malicious stuff they're doing.

There's zero reason for them to need anything like what Riot does with Vanguard and it's a joke that consumers allow this. It's them trying to jump to the top of the stack and abuse Kernel. But they're engineers are to stupid to realize this opens up complexity in the architecture and makes it easier to break and bypass.

One thing to remember, is just like AV's, it's the norm for them to literally upload random archives, documents and whatever else to "Scan". There's a reason pretty much every Anglo country doesn't recommend Kaspersky for this reason. It makes you wonder the risk of China owning 100 % of Riot and the data gathering potentials. And since it's the standard industry practice, the American engineers won't even blink an eye when designing it. It's truly a national security and IP risk that alot of people don't realize.

Now I will say as someone who makes tools for and reverses their products(All in fairy land in the kingdom of tacobell in my dreams). They have pretty unobtrusive anticheat in League of Legends and mainly only hammer a whitelist. For example if you install Itunes, they will get really obtrusive with anything related to Bonjour. As well as with anything that injects into the module list.

With Vanguard, they get EXTREMELY intrusive and scan network drives, and I found VM memory pages being scanned, but i'm unsure if it's intentional or not as I didn't go to deep into it, since I don't really play shooters and mainly did it as a quick audit, unlike League of Legends. They do shut it off when you say shut it off though.

EDIT:

One thing to keep in mind. Is if they make a kernel driver which subverts the OS's control schemes(For example making a CreateFile, ReadFile, Memory write primitive, Memory read primitive. If you see this, REPORT IT. Microsoft bans these types of implementation and you can do that here. https://www.microsoft.com/en-us/wdsi/driversubmission . It's a MASSIVE security risk and they will REVOKE the driver certification and deny loading it on Windows! Do not let them rootkit your system, know what Microsoft allows and doesn't. They do care, they've fucked over AV products before, and they will do it again. The OS Security team at Microsoft is extremely good and genuinely cares about you as a user.

So firstly, the people asking you to open source so they can "Audit" are dumb. Your app is android, android is EXTREMELY easy to audit and decompile. Especially with no obfuscation during compiletime. Things like Android and .Net you can almost literally dump the sourcecode for the app automatically, to the point is basically compiles out of the box. Especially .Net.

What I would recommend if you release an executable using native code. You should look into distributing debugging symbols. The private symbols contain function names, sometimes variable names, and all library calls, but not the source code. This means auditing is extremely easy, but stealing it is a bit hard. It also lets them run your stuff under a debugger extremely easy or make patches through instrumentation.

There's some wsl fedora distro''s like this. https://github.com/WhitewaterFoundry/Fedora-Remix-for-WSL . Don't get the store image, it's not updated and is paid, which this is free.

BUT, I urge you to just download ubuntu on wsl. It's way more integrated and has alot more support. There's effectively no difference besides some library names which can be translated with "whatprovides" and apt vs dnf. As a Fedora desktop user at work and Ubuntu hater, with WSL it has the Microsoft "Stamp of approval" and gets all the new features and official support.

I also had an issue with not being able to wear glasses. It was my fourth Sans cert and never had the issue before. The proctor also was sabotaging me by saying I requested "Technical support" 5 times during the exam, each time the timer running and some dude distracting me, despite me telling him I have no tech issues and to let me continue my exam. They would spend 5 minutes verifying that I indeed had no issues and then leave...

Very unprofessional, if not illegal due to discrimination and even though it was one of Sans's entry level certs, I barely passed, versus 90 + on all of their advanced ones without these issues.

Their reasoning was "The rules say no facial obstructions, your glasses block your face.". They have to hire the dumbest people to do these proctors.

I've never had any issues with other proctoring services, and things like pearson for Comptia and Microsoft were actually enjoyable. With proctoru each proctor seems to find some issue and you have to argue with them since it's completely unreasonable.

Why computer science? You can learn alot of it on the job. And the job is probably going to be programming, which is a far jump from Computer Science.

I would recommend a channel 9 series called "C# for absolute beginners". It's free, and really helps you get to the level of programming something. Then I would try to build websites using Spring and Node, or ASP.net and Node. Once you have some proof of concepts, you can try looking for an entry level job and learn on the job. Just try to make sure you question why you're doing something and if there's a better way when you code. Like Modulo, or a switch statement being the common hang ups.

Be careful with C++, Python or other languages. You're going to want to solely learn Javascript and C# or Java. Those are where the entry level no degree jobs are. And where alot of enterprise tech is. It's not fancy, but it's good to get your foot in the door.

Goto (2007) 5 years ago

If you have a dispatcher or an infinite state machine, say an emulator. Or even just anything in general with cleanup, you use goto to "goto ERRORCLEANUP". So you have one exit condition to clean up. This is recommended in CERT c.