hu1y40's blog

hu1y40'blog
天堂的穹空遍布地狱之火的颜色,但也是天堂。
  1. 首页
  2. 书籍阅读
  3. 正文

加密与解密 第2章实验

2023年10月7日 993点热度 0人点赞 0条评论

0x01 OD

实验环境

推荐使用的环境 备注
操作系统 Windows 10
编译器
编译选项
build版本
调试器 OD 1.10

实验前准备

  1. 去下载书籍配套资料。
  2. 用OD打开。

实验过程

由于要取文本框内的字符串,需要调用API函数GetDlgItemTextA,可以在左下方bp GetDlgItemTextA下断点,或者ctrl+g跳转到这个函数处下断点。

UINT GetDlgItemText(
HWND hDlg, //对话框的句柄,即对话框的窗口句柄
int nIDDlgItem, //要获取文本的控件标识符(ID)
LPTSTR lpString, //指向接收文本字符串的缓冲区指针
int nMaxCount //接收文本字符串缓冲区的大小,以字符为单位
);

fig:

下图的call 00401340是验证函数。

fig:

对应的代码为GenRegCode。

如果eax返回值为1,test eax, eax不会是的ZF=0,从而je不会跳转。这里不跳转的话会弹出成功的结果,所以直接将这里的跳转指令nop掉就crack成功了。

fig:

下面是对计算序列号的算法的分析,详细见注释。

fig:

看了看我发现,如果输入的用户小于4,也就是算上%00的用户名小于5,最后根本不会进入到计算序列号的函数,序列号直接为0。所以如果更改了判断用户长度的指令,那么同样可以crack成功了。如下图

fig:

fig:

这里建议自己根据汇编翻译成伪代码,以下是原版代码

/*-------------------------------------------------------------*/
/* GenRegCode - 注册算法主函数 */
/*-------------------------------------------------------------*/
BOOL GenRegCode( TCHAR *rCode, TCHAR *name ,int len)
{
int i,j;
unsigned long code=0;

for(i=3,j=0;i<len;i++,j++)
{if(j>7) j=0;
code+=((BYTE)name[i])*Table[j];
}

wsprintf(name,TEXT("%ld"),code);
if(lstrcmp(rCode, name)==0) //比较真假序列号,这里为了省事,直接比较了
return TRUE;
else
return FALSE;

}

0x02 x64dbg

实验环境

推荐使用的环境 备注
操作系统 Windows 10
编译器
编译选项
build版本
调试器 X64DBG

实验前准备

  1. 去下载书籍配套资料。
  2. 用X64DBG打开。

实验过程

实验和之前差不多,就随便写写了。

fig:

fig:

这里直接将两个字符串的地址,输入的code,计算好的code分别用lea指令取地址到了rdx,rcx参数中。rdx存放的是计算的也就是name,rcx是rcode输入的。应该是__fastcall调用约定。

0x03 Windbg

实验环境

推荐使用的环境 备注
操作系统 Windows 10
编译器
编译选项
build版本
调试器 WinDBG

实验前准备

  1. 去下载书籍配套资料。
  2. 用WinDBG打开。

实验过程

暂时留空

标签: 实验 总结
最后更新:2023年10月7日

hu1y40

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
文章目录
  • 0x01 OD
    • 实验环境
    • 实验前准备
    • 实验过程
  • 0x02 x64dbg
    • 实验环境
    • 实验前准备
    • 实验过程
  • 0x03 Windbg
    • 实验环境
    • 实验前准备
    • 实验过程

分类目录

  • 0day安全
  • Bypass
  • C++Prime
  • CTF
  • DoS
  • DoS
  • FUZZ
  • iot
  • JSONP
  • MISC
  • MISC
  • PHP伪协议
  • Python
  • REVERSE
  • sqli-labs
  • SQL注入
  • Trick
  • UAF
  • WEB
  • WEB
  • XXE
  • 书籍阅读
  • 二进制
  • 代码阅读
  • 信息搜集
  • 信息泄露
  • 加密与解密
  • 双重释放漏洞
  • 反序列化
  • 命令执行
  • 命令执行
  • 堆溢出
  • 密码学
  • 弱加密
  • 提权漏洞
  • 整数溢出
  • 文件上传
  • 未分类
  • 栈溢出
  • 格式化字符串漏洞
  • 模型
  • 汇编语言
  • 渗透测试
  • 漏洞分析
  • 漏洞利用
  • 漏洞战争
  • 漏洞挖掘
  • 病毒分析
  • 越界读取
  • 路径遍历
  • 逻辑漏洞
  • 配置不当
  • 钓鱼
  • 靶场
最新 热点 随机
最新 热点 随机
加密算法 2023年度总结 RTSPServer StackOverflow Vulnerability FUZZ 总览篇 MP4Box 无限循环漏洞 CVE-2023-40477 Winrar RCE漏洞分析
CVE-2013-1347 Microsoft IE CGenericElement UAF漏洞 Git使用及ctf实战 CVE-2019-13990 Quartz XXE漏洞 加密与解密 第2章实验 2023年度总结 bugku 闪的好快

COPYRIGHT © 2023 hu1y40's blog. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鄂ICP备2021009673号-1