文章预览
复盘一下强网决赛的Reverse题。 一 S1mpleVM 附件下载: https://xia0ji233.pro/2024/12/11/qwb2024_final_reverse/S1mpLeVM_6d429db3ceeba8f95131c477020ee899.zip 题目名字已经很明显的告诉你了,就是 vm 逆向。 基本分析 入口其实没啥,就是输入 32 长度的 passcode 然后校验,启动方式是 ./secret_box.exe quest 命令行传参。 可以找到最关键的函数 sub_140001D30 就是 VM 入口。 这个函数里面很明显的 vm_handler __int64 __fastcall vmrun (char *input, char *vmcode) { //some defs for local variable v2 = 0LL ; v3 = *vmcode - 16 ; v5 = v48; v6 = vmcode + 1 ; while ( 2 ) { switch ( v3 ) { case 0u : if ( v2 ) { v9 = v2; v2 = (signed int *)*((_QWORD *)v2 + 1 ); v7 = *v9; free (v9); if ( v2 ) { v10 = v2; v2 = (signed int *)*((_QWORD *)v2 + 1 ); v8 = *v10;
………………………………