Go语言逆向随想录
Go语言逆向随想录
启动
主函数名叫main_main
,以main_
开头的函数即为用户函数,后半函数名即为真实函数名。启动从os_init
函数初始化。
标准输入输出
输出
函数名叫fmt_Fprintln
,第一个参数为(__int64)&go_itab__ptr_os_File_comma__ptr_io_Writer
,第三个参数为结构体变量例如(__int64)v1
。v1
结构如下:
1 | v1[0]=(__int64)&PTYPE_string; |
输入
函数名叫fmt_Fscanln
,第一个参数为(__int64)go_itab__ptr_os_File_comma__ptr_io_Writer
,第三个参数为结构体变量例如(__int64)v1
。v1
结构如下:
1 | v1[0]=(__int64)&RTYPE__ptr_string; |
p_string
的定义如下:
1 | p_string=(string *)runtime_newobject((__int64 *)&RTYPE_string); |
输入后取指针:
1 | ptr=p_string->ptr; |
ptr
即指向输入内容,长度为p_string->len
。
字符串
字符串比较
函数为runtime_memequal
。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 The Blog of Monoceros406!