HackerTrans
トップ新着トレンドコメント過去質問紹介求人

KirillPanov

no profile record

コメント

KirillPanov
·3 年前·議論
To use the Mastodon web application, please enable JavaScript. Alternatively, try one of the native apps for Mastodon for your platform.
KirillPanov
·3 年前·議論
Permits.
KirillPanov
·5 年前·議論
On SoCs with an on-chip modem, the modem can write to any part of host memory it likes. No IOMMU.

On the (very) few remaining phones that use two separate chips, what do you think the odds are that the host OS is hardened against attacks originating from its own modem? That is a hideously complicated protocol spoken between the modem and the host processor. Plenty of validation+overflow footguns. Finding exploits here isn't going to get security researchers promoted, if they can find them at all. "Exploit is available only to modem manufacturer" does not engender a high CVE score.

Oh, and, just to top it off, that interface between the modem and the host processor when they aren't on the same chip is... drum roll... USB. As in, BadUSB. As in, Mr. Phone says: "wow, somebody plugged in a USB keyboard! And a USB mouse!".

But hey, the modem doesn't even need to own the CPU. It can record and exfiltrate your GPS location quite happily via LTE, all on its own. And buffer up a nearly unlimited amount of location data on that private NAND flash it has in case you're out of cell range. All while pinky-swearing that location services are definitely absolutely turned off, promise. I don't know why people believe that location-tracking is ever turned off on a phone; it's just absurd to think that.
KirillPanov
·5 年前·議論
Targeting those is for n00bs.

Backdooring the modem firmware is far more useful, and reliable. Not to mention undetectable -- not only is the user unable to recompile or replace this firmware, they can't even get a checksum of it. Qualcomm's modem chips get their own private NAND flash that they can use as they please.
KirillPanov
·5 年前·議論
I wish there were a name for the generic type Foo<T> such that a rope is exactly a Foo<Char>. In other words, a rope-of-non-character primitives (like bytes or floats).

Generalizing even further, I wish there were a name for the generic type Bar<T,M> which is a b-tree of T-values, plus a monoid [1] M over T, where each non-leaf b-tree node stores the M-sum of its descendents [2]. This lets you quickly compute the M-sum of arbitrary ranges or search for an element by the M-sum of its predecessors. Ropes are essentially Bar<Char,(0,+)> so the monoid gives you the number of characters in a range.

If you let M=(0,max) or M=(0,min) you can get the min/max value in arbitrary ranges in O(log n) time. This is extremely useful for all sorts of things, from algorithmic trading (order books) to VLSI (plotting waveforms from gigantic simulations). If M1 and M2 are monoids, then $M1\cross M2$ is a monoid, so these "range summaries" are very modular -- you can mix and match them.

In the functional programming community there is a data structure called a finger tree [3] which are a specific case of Bar<T,M> implemented as an immutable data structure. Immutable data structures are nifty, they have benefits, but also costs. I don't know what to call Bar<T,M> implementations which are non-immutable (i.e. ephemeral or update-in-place) data structures.

If anybody knows of generally-accepted names for these (or wants to suggest some) please reply. I plan to add this functionality into (a fork of) LMDB.

[1] https://en.m.wikipedia.org/wiki/Monoid

[2] actually you want to store the M-sum of the descendents of each child node alongside the pointer to that child node

[3] https://en.m.wikipedia.org/wiki/Finger_tree
KirillPanov
·5 年前·議論
Emacs uses a much less advanced data structure called a "gap buffer":

https://www.gnu.org/software/emacs/manual/html_node/elisp/Bu...

https://news.ycombinator.com/item?id=15199642

It's basically just two stacks of lines, where a line is an array of characters. One stack has the lines before the cursor, the other has the lines after the cursor (in reverse order).

I use emacs, but ropes are a much better way to go if you're starting from scratch.
KirillPanov
·5 年前·議論
> An alternative which is more in keeping with the spirit is to just make a new account every now and then.

This is what I do. I wish HN allowed you to have your username redacted automatically from all messages older than 6 months, so I wouldn't need to.

The idea is that the text of all your comments remains, but the username changes to [redacted] once the comment is six months old. All six-month-old comments by all users who have enabled this feature all appear to have come from one huge account called "[redacted]". This would preserve the discussions, while removing attribution and linkability between comments. There's really no need for abuse/spam management on six-month-old posts (if it wasn't flagged in six months it doesn't need to be flagged).

Probably the only downside is that up/downvotes to ancient posts couldn't affect the post-owner's super-important InternetPoints(tm) count, since if they did it would be possible to wiggle the upvote on a comment and then scan to see which account got a point-bump. So [redacted]'s comments wouldn't have up/down-vote arrows.
KirillPanov
·5 年前·議論
It is literally just plain vanilla debian. See

   man debootstrap
for details. Debootstrap is the tool that generates a "minimum bootable rootfs". You can use any existing debian install (even a non-mips architecture) to do the debootstrap.

You will need to build your own kernel. Check the OpenWRT project for patches, although only a very very few Ubiquiti devices (USG-3 for example) need kernel patches. For other devices (EdgeRouter-4) the OpenWRT packages make things nicer, like getting the network device names to match what's printed on the front of the case.

Put the kernel and rootfs on a USB stick, plug it into the router, attach the serial console (nice easy RJ45 jack on the front!) and boot. Once it's up you can migrate stuff to the internal soldered-down emmc.

Octeons are awesome.
KirillPanov
·5 年前·議論
> It seemed to me Ubiquiti would never allow customers the option to install their own OS

I run plain-vanilla Debian on all my Ubiquiti boxes, six or seven of them at this point.

    debootstrap --arch=mips
Octeons are awesome. Ubiquiti hardware is the bomb. I hear their software is junk, but I wouldn't know anything about that, I always erase it right after unboxing the device.
KirillPanov
·5 年前·議論
> a lot of that is junk and meaningless. "Dead code", so to speak

... so far as we currently know.

DNA is only mostly software; it's also a physical molecule. Many of the columns in a DRAM chip look like a waste of capacitance until you know what alpha particles are and what ECC does.

> the blind spot in our eyes, which is there for no real reason

It's there for a very good reason, the optic nerve connection. Only cephalopods have figured out a better solution, and it's not at all clear that it would work for humans.

Our eyes have to tolerate a lifetime of much-higher UV exposure than sea-creatures, for starters. Cephalopods' optic nerves grow in from the retina toward the brain, and there's a huge bundle of complicated connections to make where they "meet in the middle". Vertebrate optic nerves grow out from the brain and embed themselves in the retina, so there's no wiring problem to solve.
KirillPanov
·5 年前·議論
> enforcing interoperability.

It's called "common carrier immunity".

Telephone companies have had it for decades, maybe even centuries. It works great. They're not responsible for words spoken on their telephone network as long as they don't regulate that content in any way.

Section 230 simply should have offered common carrier immunity to websites when they act as common carriers. Problem solved.
KirillPanov
·5 年前·議論
> https://support.google.com/groups/thread/61391913

"This question is locked and replying has been disabled."

Gee, lovely.
KirillPanov
·5 年前·議論
Qualcomm.
KirillPanov
·5 年前·議論
That's what gl.inet is (weird name though).