Pitou的虚似DGA算法分析(二)

访客4年前黑客资讯946

DGA优化算法

这节应用以前剖析中的輸出对DGA开展反向,实际能够参考Pitou的虚似DGA算法分析(一)。进行反向后,利用Python对DGA开展再次完成。该脚本 *** 能够对于一切给出日期形成相匹配的DGA域名。

DGA调用器

要了解DGA,务必更先查询调用VM的当地编码:

在图中的顶端,能够见到虚似DGA的调用与在调用全过程中传送的五个主要参数:

r8d:当今天(day),如2意味着本月的第二天;

edx:当今月份(month),如三月为3;

ecx:当今年代(year),如2019;

rsi:域名序号,从0开始;

r9:储存形成域名的内存地址。

在截屏的之一行中,域名总数rsi设定为r12d,而r12d为0。直至rsi做到20,该循环系统正好形成20个域名。

IDA Pro图形界面

方式2中的动态性二进制转换形成的汇编程序个数比虚似命令数小80%。殊不知,DGA依然较长,如下边的二张照片所显示。他们表明了DGA,及其其调用的一个涵数,该涵数获得根据日期的種子。

DGA主方式

DGA优化算法:

DGA種子

根据日期的種子:

根据IDA的反编译图能够非常容易地剖析该DGA,因为它展现了涵数的构造和操纵步骤。殊不知,这类状况下,IDA在的真实优点是Hex Rays反编译器。像前边提到的,DGA应用了很多提升的整数除法,即说白了的不会改变整数除法。这种测算在反编译中是很不便的,可是利用Hex Ray的反汇编软件能够非常好的解决。

IDA Pro Hex Rays

此次DGA的反向是彻底根据Hex Ray反编译器的。

更先剖析DGA调用的日期種子涵数。它接受到主要参数的根据下边的设置:

r8d:从1逐渐,因此 每月的之一天为1;

edx:从0开始,因此 一月为0,十二月为11;

ecx:四位数的年代。

月份从0开始的设置是不正确的。真正的月份应该是从1逐渐的,因此 一月应当为1。这节的之一部分在主要参数恰当的设置上剖析这一涵数。而第二一部分研究月份中有误的值对本方式的危害。

更先看一下Hex Rays详细輸出,在其中掩藏了变换和申明:

signed __int64 __usercall days_since_epoch@(int month@, int year@, int day@)

{

//[COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-" " TO EXPAND]

retaddr=v4;

month_o=month;

extra_years=month / 12;

year_f=extra_years year;

month_fixed=(-12 * extra_years month_o);

if ( month_fixed 0 )

{

month_fixed=(month_fixed 12);

--year_f;

}

month_fixed_2=month_fixed;

day_0_based=(day - 1);

if ( day - 1 0 )

{

year_plus_1900=year_f 1900;

do

{

month_fixed=(month_fixed - 1);

if ( --month_fixed_2 0 )

{

month_fixed=11LL;

--year_f;

--year_plus_1900;

month_fixed_2=11LL;

}

is_leap_year=!(year_plus_1900 % 4)

&& (year_plus_1900 !=100 * (year_plus_1900 / 100) || year_plus_1900==400 * (year_plus_1900 / 400));

*(&stack_ - 125)=a5;

a5=*(&stack_ - 125);

day_0_based=(month_lengths_common_year[month_fixed_2 12 * is_leap_year]day_0_based);

}

while ( day_0_based 0 );

}

month_f=month_fixed;

year_f_plus_1900=year_f 1900;

while ( 1 )

{

year_div4_=year_f_plus_1900 % 4;

leap_year=year_div4_

|| year_f_plus_1900==100 * (year_f_plus_1900 / 100) && year_f_plus_1900 !=400 * (year_f_plus_1900 / 400) ? 0LL : 1LL;

*(&stack_ - 125)=a5;

tmp=*(&stack_ - 125);

if ( day_0_based 12 * leap_year])

break;

leap_year_=!year_div4_

&& (year_f_plus_1900 !=100 * (year_f_plus_1900 / 100)

|| year_f_plus_1900==400 * (year_f_plus_1900 / 400));

相关文章

查别人通话记录怎么查询

短暂的春天刚来,火热的太阳就开始发威了,颜颜现在出门都要从树荫下过,防止被晒黑。不然还没到夏天就黑了,还怎么穿吊带衫!所以,尽管夏天还没到,但是小仙女们防晒可以做起来了。很多精致的小仙女,可是一年四季...

CF外挂全网最便宜 ,功能最全不封号!

CF外挂全网最便宜 ,功能最全不封号!

封号原因1:名称违规 有些人喜欢恶搞名称,殊不知这是违规的!比如起名叫“温馨提示”或者客服,又或者自称为腾讯员工来诈骗玩家的(小编曾经就处理过一起玩家自称掌火小编售卖CDK的案件,最后骗子被...

如何利用黑客进入别人手机(要怎么样才能成为黑客进入别人的手机)

如何利用黑客进入别人手机(要怎么样才能成为黑客进入别人的手机)

本文导读目录: 1、用手机黑进别人的手机? 2、黑客是怎样入侵手机的 3、看黑客如何侵入你的手机 4、用手机黑进别人的手机 5、能不能黑进别人手机?? 用手机黑进别人的手机? 别人和...

怎么禁用一些php风险函数

 phpinfo()  功用描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。  风险等级:中  passthru()  功用描述:答应履行一个外部程序并回显输出,类似于 exec()。...

黑客犯罪所涉及的罪名(黑客的行为是犯罪吗)

黑客犯罪所涉及的罪名(黑客的行为是犯罪吗)

本文导读目录: 1、网络犯罪种类的刑法规定有哪些 2、黑客行为触犯了什么法律 3、雇佣黑客攻击合法网站平台,罪名有多大? 4、哪些黑客行为属于犯罪和非犯罪 5、电脑“黑客”需负什么法律...

王者荣耀神秘商店有仲夏夜之梦吗 神秘商店稀有皮肤介绍

王者荣耀神秘商店有仲夏夜之梦吗 神秘商店稀有皮肤介绍

王者荣耀官宣5月1日会开启神秘商店,这个也算是五五开黑节的福利,因为5月5日开始开黑节,但活动实际上从本周就算开始了,五一假期自然也包含在内,神秘商店是随机刷新英雄、皮肤和折扣供玩家购买,那么神秘商店...