- Take any binary that has OpenSSL functions listed in
collect.js
- Open
lldb /path/to/binary
- Do
disas -n function-name
for each function incollect.js
- Choose some offset near the end of the function
- Subtract
0x1000000000
to get file offset - Put the number in
collect.js
- Run
node collect.js /path/to/binary | node filter.js > log
- Let it run for some time to collect enough information
- Do something with the information
Just a sequence of 4-bit values. Possible bit values:
- 0x8 -
BN_mod_mul_montgomery
- 0x4 -
BN_uadd
- 0x2 -
ec_GFp_simple_add
- 0x1 -
ec_GFp_simple_dbl
Some zeroes may be preserved to get insights into the timing.