转载请注明出处。https://rhirufxmbcyj.gitlab.io
从看雪一篇帖子上看到的这个程序,没什么难度,就是比较绕。拿下来试一试。
程序:https://rhirufxmbcyj.gitlab.io/files/give_a_try.rar
准备工作
- 首先,打开程序看一看这是个什么类型的程序,是个name+password类型还是serial类型,心理也好有个底,这个程序只有一个编辑框,也就是个serial类型的。
- 然后使用PEiD等工具 进行查壳、查语言、查算法。
- 有壳先脱壳,尽量不干扰正常分析程序,能用工具脱就用工具脱,此程序无壳。
- C类语言大多都一样,不需要特殊的工具,像Delphi或VB或Net就需要使用特定的工具去分析了,这个程序是汇编写的,更容易分析,怪不得函数那么少。
- 使用PEid的插件Krypto ANALyzer查一下算法,也算是分析的时候考虑算法有个偏向。
分析
程序拖入IDA看一看,发现未知的函数只有几个,其他都是API,直接用IDA的f5一个函数一个函数看就找到了程序的校验算法那块,也就是sub_401103(char *a1),猜测参数1这个char *就是输入的字符串了。
这个是IDA的关键算法的伪代码。