Try   HackMD

Jotham

Main should just be virtual address that program was loaded at + offset

0x0000000000001070 <main>:

  • 0x55aeee48a000
    = 0x55aeee48b070

Unsure about the 1026 jump
1026 +

glibc is loaded at 0x7f10f3417000

system@glibc is 0x0000000000001050

Zhao Wei

Q1:
1. Deletion is not supported because the mapping from bits in the bloom filter to elements is not injective, meaning that each bit can be used to identify multiple elements. Resetting bits when "deleting" elements from the bloom filter might result in some other elements being "deleted" as well. An example is as follows:

Suppose our bloom filter starts as [0, 0, 0]. Our hash functions maps element A to h(A) = [0, 1, 1], and element B to h(B) = [1, 1, 0]. After inserting both A and B, our bloom filter is now [1, 1, 1]. Let's say that we now delete element A, resetting the first two bits in the bloom filter, resulting in the state [0, 0, 1]. As a result, we have also erroneously deleted element B from the bloom filter.

2.  One modification would be to store counters instead of simply bits at each index. In our earlier example, this would mean that after inserting elements A and B, the bloom filter would become [1, 2, 1]. Now, when deleting element A, the bloom filter becomes [0, 1, 1], indicating that element B is still in the bloom filter. One clear compromise of this approach is the increased space usage from O(1) per index to O(log n) per index.

Q2:

  1. main starts at 0x55a81cef2000 + 0x0000000000001070 = 0x55a81cef3070.

(maybe?)
2. the instruction reads from address 0x55a81cef2000 + 0x102c + 0x2f8c?