首先PEID看下文件
无壳VB编写 可以用VB Decompiler直接反编译
但这里使用了OD分析,题目很简答,固定字符串比较,没有算法。
找到了字符串
进去下断点,找到了两个比较函数。其一分析name是否为空
其二 与55555比较
这里注意一下,只有NEG 0 c = 0 其余c = 1,sbb是带进位减。下面代码是处理strcmp结果的使用 NEG指令将结果分成了两类。
0040572B . 8BF0 MOV ESI,EAX
0040572D . 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18]
00405730 . F7DE NEG ESI
00405732 . 1BF6 SBB ESI,ESI
00405734 . 46 INC ESI
00405735 . F7DE NEG ESI
所以 结果就是 serial = 55555
同时这题也可以使用IDA来解,找到注册成功的提示语句,发现决定值是 v17 。
v17的值有strcmp决定 TAB回去看汇编