CTF逆向3

BUUCTF-CrackRTF

1.atoi函数

顾名思义ascii to int 把字符串转化为整型
原理是从字符串第一个数字或正负号开始转换,遇到非数字字符时终止转换
结果返回一个整型。
例子:qwe-1239ii321 结果返回-1239

2.使用CryptoAPI

关键是CryptCreateHash函数的第二个参数代表了加密方式
CryptCreateHash(phProv, 0x8004u, 0, 0, &phHash)
查阅winAPI文档可知道0x8004代表SHA1

int __cdecl sub_401230(BYTE *pbData, DWORD dwDataLen, LPSTR lpString1)
{
   
  int result; // eax
  DWORD i; // [esp+4Ch] [ebp-28h]
  CHAR String2; // [esp+50h] [ebp-24h]
  char v6[20]; // [esp+54h] [ebp-20h]
  DWORD pdwDataLen; // [esp+68h] [ebp-Ch]
  HCRYPTHASH phHash; // [esp+6Ch] [ebp-8h]
  HCRYPTPROV phProv; // [esp+70h] [ebp-4h]

  if ( !CryptAcquireContextA(&phProv, 0, 0, 1u, 0xF0000000) )
    return 0;//取得密钥容器(CSP)句柄
  if ( CryptCreateHash(phProv, 0x8004u, 0, 0, &phHash) )
  			//创建一个Hash对象(关键)
  {
   
    if ( CryptHashData(phHash, pbData, dwDataLen, 0) )
    		//用用户输入的密码产生一个散列
    {
   
      CryptGetHashParam
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值