hashcat 1.3 运行函数

本文介绍了hashcat工具的运行流程,重点关注outerloop函数。文章详细解析了从日志输入、dictstat_read到EVENT及outerloop的过程。outerloop是进行实际攻击的函数,包括hashconfig_init和hashes_init_filename等步骤,涉及OpenCL源代码的使用。
摘要由CSDN通过智能技术生成

只有这一行最重要,前边都是和OpenCL的交互等。

rc_final = hashcat_session_execute (hashcat_ctx);

在这里学到的新东西是 __attribute__,https://blog.csdn.net/guozhiyingguo/article/details/53079154 

是GNU里特有的,检查一下有没有什么输入错误啥的,还能精简函数篇幅,挺有用。下面开始正文:

1.开始日志文件输入

第一行是开始时间计时

第二行就是把秒和微秒输入到topid中

第三行就是检查一下往日志文件hashcat.log里输出的“START”对不对,如果不对,就要输出警告。

  // start logfile entry

  const time_t proc_start = time (NULL);

  logfile_generate_topid (hashcat_ctx);

  logfile_top_msg ("START");

 可以看看hashcat.log文件里的输出,看到START了吧~

  下面是一样的,就是user_options的具体值,都记录在上面的文档中了。


  // add all user options to logfile in case we want to debug some user session

  user_options_logger (hashcat_ctx);

2.dictstat_read

// read dictionary cache  
dictstat_read (hashcat_ctx);

这个在dictstat.c文件里,根据1.2节的代码,可以知道读取的是hashcat.dictstat2这个文件。

文件第一个宽字符通过一个函数读取并转为Base64编码,测试了一下,读出来的v 值是0x6863646963743201

#include <stdio.h>
#include <stdint.h>
typedef uint64_t u64;

u64 byte_swap_64 (const u64 n)
{
    return __builtin_bswap64 (n);
}

int main(void) {
    u64 v;
    FILE *fp = fopen ("hashcat.dictstat2", "rb");
    fread (&v, size
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值