line 标记
有了这个标记可以指定报错/调试的行数和文件名
Nightjs
第一处修改:bytebuffer 类的 [ ]
运算符可以越界
[[nodiscard]] u8& operator[](size_t i)
{
// VERIFY(i < m_size);
return data()[i];
}
第二处更改:删去了 toblock 长度检查
// 4. Let toSize be the number of bytes in toBlock.
// auto to_size = to_block.size();
// 5. Assert: toIndex + count ≤ toSize.
// VERIFY(to_index + count <= to_size);
Gdb
查看记号 info functions
gdb 更改符号表目录,虽然符号表里面的路径是别人的,但是也可以在自己的电脑上找到源文件
逆天逆天,在 gdb 还没有 run 的时候下断点是无法找到文件位置的,但是 run 之后就可以找到了,ekngui 因为多文件的符号表是递归查找的,只有 run 起来才能找到更多?
pwndbg> file -readnow js
Reading symbols from js...
Expanding full symbols from js...
pwndbg> b /home/giacomo/ctf/serenity/Userland/Libraries/LibJS/Runtime/ArrayBuffer.cpp:188
No source file named /home/giacomo/ctf/serenity/Userland/Libraries/LibJS/Runtime/ArrayBuffer.cpp.
但是 run 之后就可以正常下断点楽…
info args
p/x *(zval*)(*(var_entries*)var_hashx.first).data[0]
wsl 文件系统
在编译的时候看见楽这个提示
WSL2 filesystem performance for IO heavy tasks (such as compiling a large C++ project) on the host
If it’s at all possible, store your projects in the Linux file system in WSL2.
感觉 wsl 和本地磁盘传文件确实极其慢