[原创]2017CTF第二题_lelfei攻击手法
在xp里调试运行上传的攻击脚本,然后在00401257这个地址(push "WELL DONE!")下普通断点,等待程序跑到这个地址断下来就穷举出结果
说明:这个攻击脚本是在原来程序上,直接修改exe内容,通过汇编代码修改程序流程,来达到优化后穷举的目的,
主要分2大步骤,第一步:修改exe使得程序可以自行穷举,第二步:优化使得穷举变快,其中优化是关键
优化的地方:
1)nop掉GetTickCount,跟GetTickCount相关的保存结果,和结果保存后,将来再进行运算的代码都可以nop掉,因为分析代码得出结论GetTickCount并没有什么影响到注册码的判断
2)sub_401A60里的从(00401A8B到00401AA8)的这个循环可以被优化掉,完全是废代码,此处费代码会在循环里调用sub_4019E0,此处浪费时间非常多,将循环优化掉后,就完全不计算GetTickCount相关的代码了,IDA分析如下:
int __thiscall sub_401A60(void *this)
{
void *v1; // esi@1
signed int v2; // eax@1
char *v3; // edi@1
char *v4; // ecx@1
int v5; // edx@2
signed int v6; // ebp@3
int v7; // ebx@4
int v8; // eax@4
int result; // eax@5
int v10; // ecx@5
signed int v11; // edx@5
int v12; // esi@6
{
void *v1; // esi@1
signed int v2; // eax@1
char *v3; // edi@1
char *v4; // ecx@1
int v5; // edx@2
signed int v6; // ebp@3
int v7; // ebx@4
int v8; // eax@4
int result; // eax@5
int v10; // ecx@5
signed int v11; // edx@5
int v12; // esi@6
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
复制成功
