逆向工程——自行分析1

题目说明

该题目由en1code.exe一个文件组成。该文件是一个简单的加密程序,如果你输入了一个正确的字符串,它将返回给你一个加密后的字符串cip。

请大家运行该程序,并获得cip即为成功。如果你不知道应该怎么办,请看看你有没有装debug工具?

解题步骤:

1. 打补丁

修改一下条件语句

image.png

这样就可以直接跳过判断的部分

image.png

2. 逆向工程

由于之前出现问题的点就在于Test al,al后的JE分支判断

image.png

我们就看一下之前修改过Al的部分,判断al是0还是非0(那么也就是说,我只有将al设为非零才可以通过)我们看到最近的call指令前,有一个将eax向外赋值的操作,所以推断在call en1code.0040139D中对eax进行了修改。

image.png

我们跳到相关子程序部分,看到在004013CE部分进行了对eax赋零的操作,正确的路径应该是跳过着一条语句。我们往上看会发现,只要004013c2语句应该cmp生成0:这就需要eax(dword ptr ss:[ebp-C])和dword ptr ss:[ebp-10]相等。

从子程序的开头出,可以看到dword ptr ss:[ebp-10]被赋值为0A(10)。我们看一下004013B7的子程序

image.png

其他位置导致的no Wrong lenth…输出,所以意味着字符串长度应为10

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容