吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18786|回复: 28
收起左侧

[分享] 一些简单的花指令的解析(含Intel指令集)

  [复制链接]
659525 发表于 2019-12-5 17:03
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 659525 于 2019-12-11 09:46 编辑
前言:

​        花指令是,由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。经典的是,目标位置是另一条指令的中间,这样在反汇编的时候便会出现混乱。花指令有可能利用各种指令:jmp, call, ret的一些堆栈技巧,位置运算,等等----摘自百度百科。
​        我最近遇到了几个花指令,现记录整理如下:

第一种花指令:

特征:先有一个push 操作,然后jmp到一个Call,Call后面跟一个POP

56 EB 27 2B A6 F1 CC 7E 25 31 96 23 39 7D B0 18 5A 1B D7 5E CB 5E FF E6 2B A6 F1 CC 7E 25 31 96 23 39 7D B0 18 5A 1B D7 5E CB E8 E6 FF FF FF 5E

01

01

原理:        

​        push D(寄存器)   1.先push esi(使用一个参数,保留环境,这里也可以push eax-edi等寄存器)

​        jmp C(偏移)         2.通过EB xx的jmp偏移指令,跳转至精心构造的偏移xx处,也就是Call

​        call B()                 3.特定E8的Call指令回退调用(Call => 1.push 下一条指令的地址A        2.jmp 函数地址B)

​        pop D,jmp D        4.此时pop esi 就把地址A从堆栈中push出来,然后jmp esi就跳转至地址A

​        pop D                  5.再次pop esi 的目的在于还原环境

解决方案:单步跟踪时,只需要F8即可过掉。(想在IDA内看结构,就把它们全部NOP掉就好了)

变通点:B C D都可以变换,导致特征码不好定位,暂时没想到好的批处理方法

第二种花指令:

特征:

​        无效指令:如CLC,CLD,FNOP。

​        无效跳转:

​                mov 寄存器,A;

​                cmp 寄存器,A;

​                JNZ 迷惑跳转;

02

02

解决方案:这种比较简单,迷惑跳转不用管,直接nop填充即可,调试跟踪的时候也可以当当乐子

第三种花指令:

特征:

​        push ss

​        pop ss

​        待执行指令

​        有效OPCODE 16 17

03

03

push ss;向堆栈压入16字节内容

04

04

pop ss;

05

05

原理:在执行push ss,pop ss语句后,会自动执行下一条语句,当下一条为jmp或着Call是就会跑飞/关键功能丢失

Intel32指令集解释pop SS.png

解决方案:如果pop ss后面跟的是Call,在Call入口下断即可。如图:

07

07

第四种花指令(来源于GrandCrab5.3的一个样本):

08

08

1.mov ecx,0x1C3D2(给ecx赋值)        有效OPCODE:B9

09

09

2.Call XXxx(将下一条语句作为返回地址push入栈,然后跳转至偏移)有效OPCODE:E8 0B 00 00 00(Call XXxx)

0A

0A

3.add [esp],0x12; 修改返回地址        有效OPCODE:83 04 24 12

add [esp] ,0x12.png

4.loopd short 循环跳转 ,然后cmp ecx,XXXX(由于之前赋值的是较小数一定会跳转)最后retn返回至被修改过的函数返回地址,结束        有效OPCODE:E2 EF(loopd short) 81 F9 XXxx( cmp ecx,XX) 78 F0(JS short) C3(retn)

0C

0C

解决方案:

​        利用010去花指令:花指令特征码为B9 D2 C3 01 00 E8 0B 00 00 00 81 F9 58 FF FE 01 78 F0 79 F8 E9 83 04 24 12 E2 EF E8 替换为EB 1A,后面随便填充即可,如:EB 1A 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90

去花对比:

0D

0D
去花后:

去花后.png

总结:

1.前三种花指令都是来自于最近看的一个VB样本的ShellCode内,没能太大阻碍分析过程。第四个来源于很早之前看的一个GrandCrab5.3勒索病毒,解决花指令能有效利用IDA对其快速分析,帮助还是挺大的(当OD分析花指令时候一定要灵活利用ctrl+↑和ctrl+↓手动矫正反编译结果)。

2.花指令就是一个消耗分析人员耐心的行为(主要考验分析人员的汇编功底),分析的多了自然就熟练了(一般加花的话,像上面的有效OPCODE就很难变动)写下此贴目的之一就是告诫自己要耐心耐性

3.我们也可以通过上面的有效指令,构造属于我们的花指令(具体怎么操作就靠大家发散了),然后添加到代码的任意位置,略微增大分析难度


附1:GrandCrab5.3的样本在附件内(密码52pojie),前三个的花指令存在ShellCode就不贴上去了
附2:Intel指令集(上传限制所以用百度云)
链接:https://pan.baidu.com/s/1rMb71ICzCuGZHh4QoeU1vg
提取码:4q6z
复制这段内容后打开百度网盘手机App,操作更方便哦

GrandCrab5.3勒索.rar

52.93 KB, 下载次数: 21, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 19威望 +1 吾爱币 +26 热心值 +15 收起 理由
_默默_ + 1 + 1 谢谢@Thanks!
0xFF + 1 + 1 用心讨论,共获提升!
idiots + 1 谢谢@Thanks!
chenshiyiya + 1 + 1 我很赞同!
Hmily + 1 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
夏雨微凉 + 2 + 1 谢谢@Thanks!
XueSec0re + 1 + 1 鼓励转贴优秀软件安全工具和文档!
chomosuke + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
schoolyears + 1 + 1 谢谢@Thanks!
dreamlivemeng + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
mchankun + 1 + 1 用心讨论,共获提升!
2Burhero + 1 热心回复!
anszyeah + 1 热心回复!
椎名牧 + 1 + 1 谢谢@Thanks!
dongfang155 + 2 热心回复!
乄落日乀 + 1 + 1 谢谢@Thanks!
Ravey + 1 + 1 谢谢@Thanks!
又红又专 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
FleTime + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

花好s月圆 发表于 2019-12-6 06:26
这都被你发现了。。。
 楼主| 659525 发表于 2019-12-6 10:55
wyr5201314 发表于 2019-12-6 10:30
有点难  看半天没看懂

通常恶意程序(病毒/木马)会更多的使用花指令/混淆/反调试技术,你对这个感兴趣的话可以看看后面的附件病毒,多单步理解汇编意思了花指令也就可以摘掉了
gunxsword 发表于 2019-12-5 18:56
头像被屏蔽
袁煜914 发表于 2019-12-5 19:50
提示: 作者被禁止或删除 内容自动屏蔽
xctdxctd 发表于 2019-12-5 20:04
可以啊,有点意思
Jigsawoft 发表于 2019-12-5 20:34
值得学习,感谢分享!
wh7115 发表于 2019-12-5 22:46
太厉害了,虽然还是啥味不懂的小白,支持
夜步城 发表于 2019-12-5 23:35
有年代感
anszyeah 发表于 2019-12-6 00:36
收藏了,有空学习一下,多谢分享!
2Burhero 发表于 2019-12-6 00:53
厉害厉害
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 13:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表