逆向TraceMe.exe
逆向TraceMe.exe
首先我们得找到关键函数,就是关键跳,修改后能够直接破解成功的步骤,我们知道这个程序是有对话框的,所以我们在window的对话框api上下断点
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image002.jpg)
首先尝试随便输入用户名和序列号
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image004.jpg)
可以看到这个时候触发了断点在0x75D4E290处
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image006.jpg)
直接使用f9跳转到返回的地方,跳过一些api函数后,这里这两个我认为应该都是读取对话框的函数。
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image008.jpg)
我们继续单步运行,这里注意到,当运行到图中所示地址时,eax和edx就出现了我们输入的内容
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image010.jpg)
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image012.jpg)
之后会call 401340这个函数,我认为这个是一个关键函数
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image014.jpg)
经过调试分析,这个函数的大概逻辑如下
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image016.jpg)
0x405030的地方存储的数值如下
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image018.jpg)
继续运行,可以看到ecx=7的时候就跳出了这个循环
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image020.jpg)
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image022.jpg)
执行完之后,貌似得到2675,可能是密钥值,因为之后的函数把string2“ebp:2675“和string1”abcdefg“进行比较了
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image024.jpg)
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image026.jpg)
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image028.jpg)
比较函数过后会来到这个地方,test eax,eax,表示eax为1时跳转,这里我们的eax是0,尝试修改为jne
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image030.jpg)
之后可以看到是成功的,说明这个就是关键跳
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image032.jpg)
我们要写一个注册机程序那就得先逆向他的加密代码,根据我们判断以下的逻辑
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image033.jpg)
写出python脚本代码如下
1 |
|
![img](/2021/05/20/%E9%80%86%E5%90%91TraceMe-exe/clip_image035.gif)
验证
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!,本博客仅用于交流学习,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 文章作者拥有对此站文章的修改和解释权。如欲转载此站文章,需取得作者同意,且必须保证此文章的完整性,包括版权声明等全部内容。未经文章作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。若造成严重后果,本人将依法追究法律责任。 阅读本站文章则默认遵守此规则。