当前位置: 首页 > news >正文

wordpress登录ftp/沧州seo推广

wordpress登录ftp,沧州seo推广,京津冀协同发展调研报告,苏州模板网站建站8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?知识点本章将通过讨论超过十种的不同的C代码结构来分析不同的汇编代码,帮助我们快速的提升形成恶意代码功能的高级视图的能力全局变量|局部变量&#x…

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

知识点

本章将通过讨论超过十种的不同的C代码结构来分析不同的汇编代码,帮助我们快速的提升形成恶意代码功能的高级视图的能力

全局变量|局部变量:全局变量可以被程序中任意函数访问和使用,局部变量只能在它被定义的函数中访问,在汇编代码中,全局变量通过内存地址引用,而局部变量通过栈地址引用。

识别if语句:有if语句一定存在跳转,但是有跳转不一定是if语句,if语句前有一个cmp指令用于对比条件,之后会有一个jnz指令来决定是否进行跳转。

for循环:for循环是一个C变成使用的基本循环机制。for循环总之有四个组件:初始化、比较、执行命令、变量的递增或递减。

while循环:while循环与for循环的汇编代码类似,但是区别在于while循环没有递增或者递减的代码。当一个cmp指令返回一定的值后while循环就会终止。

switch语句:switch语句通常以两种方式被编译,使用if样式或者使用跳转表。跳转表是编译器对汇编代码做出的优化,一旦很多个cmp指令的数据成等差数列,则编译器会把跳转地址与数据联系起来做成跳转表。

函数调用约定:函数调用约定决定了函数调用发生的方式,这些约定包含了参数被放在栈上或寄存器中的次序,以及是由调用者还是被调用者负责在函数执行完成时清理栈。以下时常见的三种调用约定;cdecl:这是最常用的调用约定之一,此约定下。参数从右至左被压入栈,当函数执行完成后由调用者清理栈。

stdcall:除了被调用者在函数执行完成之后清理栈之外,其他与cdecl约定非常类似。

fastcall:fastcall调用约定跨编译器时变化最多,但是整体上的工作情况时类似的,在此约定中,前一些参数(典型的是前两个)被传到寄存器中,备用的寄存器是EDX和ECX(微软fastcall约定),如果需要的话,剩下的参数再以从右至左的次序被加载到栈上,通常使用fastcall比其他约定更高效。

反汇编数组:在汇编代码中,数组是通过一个基地址作为起始点来进行访问的,每一个元素的大小并不总是明显的,但是可以通过看这个数组是如何被索引的来进行判断。

识别结构体:结构体和数组类似,在IDA中可以使用热键T来建立结构体的识别。

课后练习

Lab6-1

在这个实验中,你将分析在文件Lab06-01.exe中发现的恶意代码。

问题

1.由main函数调用的唯一子过程中发现的主要代码结构是什么?

可以由IDA的图形模式很简单的看出这是一个if语句的结构

c7dc7b40ae0d90ef1b75868740b4af21.png

2.位于0x40105F的子过程是什么?

printf

3.这个程序的目的是什么?

跟着程序的顺序走,先找到main函数:

4a2ddbb5478df609c33c3cc473a48ce5.png

main函数中只有一处函数调用sub_401000,查看该函数的逻辑:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30.text:00401000 sub_401000 proc near ; CODE XREF: _main+4↓p

.text:00401000

.text:00401000 var_4 = dword ptr -4

.text:00401000

.text:00401000 push ebp

.text:00401001 mov ebp, esp

.text:00401003 push ecx

.text:00401004 push 0 ; dwReserved

.text:00401006 push 0 ; lpdwFlags

.text:00401008 call ds:InternetGetConnectedState

.text:0040100E mov [ebp+var_4], eax

.text:00401011 cmp [ebp+var_4], 0

.text:00401015 jz short loc_40102B

.text:00401017 push offset aSuccessInterne ; "Success: Internet Connectionn"

.text:0040101C call sub_40105F

.text:00401021 add esp, 4

.text:00401024 mov eax, 1

.text:00401029 jmp short loc_40103A

.text:0040102B

.text:0040102B loc_40102B: ; CODE XREF: sub_401000+15↑j

.text:0040102B push offset aError11NoInter ; "Error 1.1: No Internetn"

.text:00401030 call sub_40105F

.text:00401035 add esp, 4

.text:00401038 xor eax, eax

.text:0040103A

.text:0040103A loc_40103A: ; CODE XREF: sub_401000+29↑j

.text:0040103A mov esp, ebp

.text:0040103C pop ebp

.text:0040103D retn

.text:0040103D sub_401000 endp

可以从以上内容看到决定jz跳转的是函数InternetGetConnectedState,查阅MSDN发现此函数当存在一个可用的网络连接时返回值为1,ZF标志位为0,jz指令不执行,因此程序调用printf输出"Success: Internet Connectionn"否则输出"Error 1.1: No Internetn"。因此可以得出判断这是一个用于测试网络连接状态的函数。

Lab6-2

分析在Lab06-02.exe中发现的恶意代码。

问题

1.main函数调用的第一个子过程执行了什么操作?

发现这道题的程序跟上一题是一模一样的,就是判断当前是否有网络连接。

2.位于0x40117F的子过程是什么?

还是跟上题一样,printf()

3.被main函数调用的第二个子过程做了什么?

尝试下载http://www.practicalmalwareanalysis.com/cc.htm并解析此网页的注释部分。1.data:004070C40000002FChttp://www.practicalmalwareanalysis.com/cc.htm1

2

3

4

5

6

7

8

9if ( Buffer != '

{

sub_401271(aError23FailToG);

result = 0;

}

else

{

result = v5;

}

4.在这个子过程中使用了什么类型的代码结构?

if语句的结构和数组,以下明显是一个数组的比较过程:

86cbfe068132d72570f182845989e684.png

5.在这个程序中有任何基于网络的指示吗?

程序会尝试下载网页http://www.practicalmalwareanalysis.com/cc.htm

6.这个恶意代码的目的是什么?

连接http://www.practicalmalwareanalysis.com/cc.htm用于远程命令和控制服务器。

Lab6-3

在这个实验中,我们会分析在文件Lab06-03.exe中发现恶意代码。

问题

1.在比较main函数与实验6-2的main函数调用。从main中调用的新函数是什么?

sub_401130

2.这个新的函数的参数是什么?char a1LPCSTR lpExistingFileName从网页中解析出来的命令程序名

3.这个函数包含的主要代码结构是什么?1

2.text:00401150 mov edx, [ebp+var_8]

.text:00401153 jmp ds:off_4011F2[edx*4] ; switch jump

由这个跳转命令可以得知这里主要的代码结构是switch结构,采用跳转表。

4.这个函数能够做什么?

根据获取到的指令来执行不同的操作,比如创建目录C:\Temp、拷贝文件cc.exe至目录C:\Temp、删除文件、休眠100s、打印错误信息、删除文件。

5.在这个恶意代码中有什么本地特征吗?

创建目录C:\Temp,创建文件cc.exe、注册表键SoftwareMicrosoftWindowsCurrentVersionRun

6.这个恶意代码的目的是什么?

根据网页注释中的命令来选择在目标主机上选择执行不同的功能。

Lab6-4

在这个实验中,我们会分析在文件Lab06-04.exe中发现的恶意代码。

问题

1.在实验6-3和实验6-4的main函数的调用之间的区别是什么?

函数地址发生了变化。

2.新的代码结构已经被添加到main中?

实验6-4的main函数中有一个for循环,而实验6-3是一个if判断语句:

db82e4455be3ba0245aad6ac51c4ede3.png

3.这个实验的解析HTML的函数和前面实验中的那些有什么区别?

这个实验中,此函数新增了一个参数作为函数sprintf()的参数

sprintf(&szAgent, aInternetExplor, a1);

4.这个程序会运行多久?(假设它以经连接到互联网)

Sleep函数的参数为

bb73880677412c85de045631ad70d2c7.png

此循环会执行1440次,因此程序会运行1440*60s=1440m=24h=1d

所以此程序会运行整整一天。

5.在这个恶意代码中有什么新的基于网络的迹象吗?

这道题需要细心,之前的HTTP头中的User-Agent使用的是Internet Explorer 7.5/pma,而现在是Internet Explorer 7.5/pma%d

6.这个恶意代码的目的是什么?

在24小时内每一分钟连续尝试从网页上获取命令并执行。

本章结束🎊

http://www.lbrq.cn/news/3187.html

相关文章:

  • 高端品牌网站建设/焊工培训技术学校
  • 如何做网站滚动屏幕/冯耀宗seo课程
  • 征婚网站上拉业务做恒指期货/防止恶意点击软件管用吗
  • wordpress 不能更换主题/seo入门教程seo入门
  • 建立个人网站有什么好处/万网注册域名查询
  • 北京pk10网站开发/百度新版本更新下载
  • 自己做的网站怎么收藏本站/做网站怎么赚钱
  • 网站建网站建设专业/北京seo代理计费
  • wordpress文章在哪个文件夹/搜索引擎优化seo名词解释
  • 织梦可以做论坛网站吗/购买域名的网站
  • 想做个网站报价蔬菜价格怎么做/sem竞价托管公司
  • 自己做网站升seo/免费发广告的网站
  • 南宁网站建设 传导/腾讯云域名
  • 商业授权书/西安seo技术培训班
  • 免费做快闪网站/公司网站建设全包
  • 网站后台编辑器不能正常显示/营销策划方案怎么写?
  • wordpress做社交网站/荆门今日头条新闻发布
  • 做网站花多钱/廊坊百度关键词优化怎么做
  • 宁波网站建设方案联系方式/如何在手机上开自己的网站
  • 视频网站如何推广/惠州seo全网营销
  • 政府门户网站建设管理工作/长春百度网站快速排名
  • 17网站一起做网店潮汕档口/今日新闻最新10条
  • 微网站建设报价/重庆百度小额贷款有限公司
  • wordpress 获取二级栏目/seo优化服务是什么
  • 做网站时间/百度竞价怎么做效果好
  • 网站建设购物车/郑州竞价托管
  • 婚纱摄影网站设计案例/写文章免费的软件
  • wordpress 5.1.1漏洞/网站为什么要seo?
  • 本溪市网站建设/seo搜索引擎优化推广
  • e福州客服人工电话/宁波seo如何做推广平台
  • 【DM数据守护集群搭建-读写分离】
  • 【计算机组成原理】第一章:计算机系统概述
  • 数据结构 二叉树(3)---层序遍历二叉树
  • 拒绝SQL恐惧:用Python+pyqt打造任意Excel数据库查询系统
  • 在C#中判断两个列表数据是否相同
  • 想入门网络编程?——网络通信的基本概念