吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 37984|回复: 138
收起左侧

[PC样本分析] [原创] 我的第一个PC勒索病毒样本分析

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

之前逛论坛的时候  看到了一个帖子  帖子地址  [可疑样本] 勒索病毒   提交了病毒样本  求分析  

下载样本大概看了一下  很简单   很适合我这种新人学习 所以就打算动手写一份   样本分析发上来  

病毒逻辑很简单  重点是遇到问题的解决思路 以及 这是我第一次分析PC 病毒样本  以此留恋

点击此处可到B站查看视频详细版本分析   (我还做了其他的视频哦)
首先拿到样本   名字为  阴阳师外挂(电脑版).zip   两次解压之后  得到  阴阳师外挂(电脑版).exe



查壳 得出为 upx 压缩壳  直接用  工具脱壳




脱壳完毕   运行试试   



Emmm 正常运行  nice 我们的机器 成功的被锁了


这一步该怎么办 ?   

试试 ctrl + alt +delete   任务管理器   不行 几秒钟后 就被 关闭了 任务管理器

尝试按了一下 win键    windows 的菜单栏居然还可以打开  


瞬间明白了    其实这个病毒是创建了一个  窗口  最大化 铺满电脑屏幕  并且位置 一直为 最前

并且我在之前 尝试 打开 任务管理器   的时候 发现 任务管理器   可以启动 但是 过了几秒就 又被关闭了

注意 这里是 没有禁止启动 任务管理器   而是 任务管理器   启动以后 就 隔了几秒终止 任务管理器      

此处有2个想法 在我心里浮现   
第一 这个病毒 作者水平可能还没我这么菜的人高  
第二点 这个软件 很可能是E语言写的  (事实证明  看OD丢进去看也确实是E写的 )

说明   整个 病毒 最少有 1个时钟事件 用来不停的终止 任务管理器   的进程 并且把自己设为 窗口 最前

接下来开始构思解决方案     

并且基于 以下几点
1. 我从来没分析过PC病毒样本  足以说明我 各方面都不行
2. 我2周之前连OD 怎么用也不知道   大部分快捷键都是 骚猪教我的 @感冒的猪baby   
3. 汇编指令 它认识我 我不认识它
4. 病毒是通过 E语言来实现的 窗口 每隔一段时间就 置前

碰巧发现 精易编程助手可以  强制窗口置前




所以接下来 运行  精易编程助手  把 置顶 勾上

然后再去运行病毒样本   

尝试 按alt+tab     ----》 成功  精易编程助手 成功出现在屏幕上面

接下来  拖动  左上角的放大镜 选择 病毒程序   然后 修改它的 窗口大小  


用 E debug 调试 得出  有2个时钟周期事件  和 一个按钮事件




00401377  和 00401479  应该就是  终止任务管理器   和窗口一直置前 的 时钟周期任务了   
OD 进端首  ret 即可

接下来去分析 按键事件   004010B9

打开OD  附加   病毒   ctrl+g 跳转到 004010B9


004010B9  /.  55            push ebp
004010BA  |.  8BEC          mov ebp,esp
004010BC  |.  81EC 30000000 sub esp,0x30
004010C2  |.  6A FF         push -0x1
004010C4  |.  6A 08         push 0x8
004010C6  |.  68 37000116   push 0x16010037
004010CB  |.  68 01000152   push 0x52010001
004010D0  |.  E8 A8140000   call 1.0040257D                          ;  取识别码
004010D5  |.  83C4 10       add esp,0x10
004010D8  |.  8945 FC       mov [local.1],eax
004010DB  |.  68 04000080   push 0x80000004
004010E0  |.  6A 00         push 0x0
004010E2  |.  8B45 FC       mov eax,[local.1]
004010E5  |.  85C0          test eax,eax
004010E7  |.  75 05         jnz short 1.004010EE
004010E9  |.  B8 9C604800   mov eax,1.0048609C
004010EE  |>  50            push eax
004010EF  |.  68 01000000   push 0x1
004010F4  |.  BB 50284000   mov ebx,1.00402850
004010F9  |.  E8 67140000   call 1.00402565
004010FE  |.  83C4 10       add esp,0x10
00401101  |.  8945 F8       mov [local.2],eax
00401104  |.  8B5D FC       mov ebx,[local.1]
00401107  |.  85DB          test ebx,ebx
00401109  |.  74 09         je short 1.00401114
0040110B  |.  53            push ebx
0040110C  |.  E8 66140000   call 1.00402577
00401111  |.  83C4 04       add esp,0x4
00401114  |>  DB45 F8       fild [local.2]
00401117  |.  DD5D F0       fstp qword ptr ss:[ebp-0x10]
0040111A  |.  DD45 F0       fld qword ptr ss:[ebp-0x10]
0040111D  |.  DC0D 9D604800 fmul qword ptr ds:[0x48609D]
00401123  |.  DD5D E8       fstp qword ptr ss:[ebp-0x18]
00401126  |.  DD45 E8       fld qword ptr ss:[ebp-0x18]
00401129  |.  DC25 A5604800 fsub qword ptr ds:[0x4860A5]
0040112F  |.  DD5D E0       fstp qword ptr ss:[ebp-0x20]
00401132  |.  68 01060080   push 0x80000601
00401137  |.  FF75 E4       push [local.7]
0040113A  |.  FF75 E0       push [local.8]
0040113D  |.  68 01000000   push 0x1
00401142  |.  BB 50284000   mov ebx,1.00402850
00401147  |.  E8 19140000   call 1.00402565
0040114C  |.  83C4 10       add esp,0x10
0040114F  |.  68 01030080   push 0x80000301
00401154  |.  6A 00         push 0x0
00401156  |.  50            push eax
00401157  |.  68 01000000   push 0x1
0040115C  |.  BB 302A4000   mov ebx,1.00402A30
00401161  |.  E8 FF130000   call 1.00402565
00401166  |.  83C4 10       add esp,0x10
00401169  |.  8945 D8       mov [local.10],eax
0040116C  |.  6A FF         push -0x1
0040116E  |.  6A 08         push 0x8
00401170  |.  68 07000116   push 0x16010007
00401175  |.  68 01000152   push 0x52010001
0040117A  |.  E8 FE130000   call 1.0040257D
0040117F  |.  83C4 10       add esp,0x10
00401182  |.  8945 D4       mov [local.11],eax
00401185  |.  8B45 D8       mov eax,[local.10]
00401188  |.  50            push eax
00401189  |.  FF75 D4       push [local.11]
0040118C  |.  E8 8BFEFFFF   call 1.0040101C
00401191  |.  83C4 08       add esp,0x8
00401194  |.  83F8 00       cmp eax,0x0
00401197  |.  B8 00000000   mov eax,0x0
0040119C  |.  0f94c0        sete al
0040119F  |.  8945 D0       mov [local.12],eax
004011A2  |.  8B5D D4       mov ebx,[local.11]
004011A5  |.  85DB          test ebx,ebx
004011A7  |.  74 09         je short 1.004011B2
004011A9  |.  53            push ebx
004011AA  |.  E8 C8130000   call 1.00402577
004011AF  |.  83C4 04       add esp,0x4
004011B2  |>  8B5D D8       mov ebx,[local.10]
004011B5  |.  85DB          test ebx,ebx
004011B7  |.  74 09         je short 1.004011C2
004011B9  |.  53            push ebx
004011BA  |.  E8 B8130000   call 1.00402577
004011BF  |.  83C4 04       add esp,0x4
004011C2  |>  837D D0 00    cmp [local.12],0x0
004011C6  |.  0F84 E0000000 je 1.004012AC                            ;  确定按钮关键跳
004011CC  |.  68 04000080   push 0x80000004
............  此处省略 
004012AC  |>  8BE5          mov esp,ebp
004012AE  |.  5D            pop ebp
004012AF  \.  C3            retn


在OD 中结合看这几处代码

我也是一个一个查手册才知道的 是 什么 意思

|.  E8 66140000   call 1.00402577
00401111  |.  83C4 04       add esp,0x4
00401114  |>  DB45 F8       fild [local.2]
00401117  |.  DD5D F0       fstp qword ptr ss:[ebp-0x10]               // [ebp-0x10]   值 为   程序显示的识别码
0040111A  |.  DD45 F0       fld qword ptr ss:[ebp-0x10]
0040111D  |.  DC0D 9D604800 fmul qword ptr ds:[0x48609D]      //  dd  0x48609D 值为  433.00000000
00401123  |.  DD5D E8       fstp qword ptr ss:[ebp-0x18]
00401126  |.  DD45 E8       fld qword ptr ss:[ebp-0x18]
00401129  |.  DC25 A5604800 fsub qword ptr ds:[0x4860A5]   //       dd  0x4860A5 值为   75.00000000
0040112F  |.  DD5D E0       fstp qword ptr ss:[ebp-0x20]
00401132  |.  68 01060080   push 0x80000601
00401137  |.  FF75 E4       push [local.7]



最终得出
(识别码 乘以 433)再减去 75 = 解锁密码
  额 有小伙伴问是怎么得出  这个结果的 其实有我的锅存在   怪我太菜 没写详细  最后贴出来的 这部分 代码里面  的变量的  值
经过  @smile1110  老哥提醒 特地 补充了一下帖子
并且过程中遇到一些不懂的问题 感谢  @asd9988 大佬的热心帮助

我没有  贴出来         

首先  
00401117   中   [ebp-0x10]  为程序显示的 识别码
0040111D    fmul qword ptr ds:[0x48609D]      //  dd  0x48609D 值为  433.00000000        fmul  是 ST0的值和  [0x48609D] 相乘   得就是  程序识别码 X 433

00401129    fsub qword ptr ds:[0x4860A5]      //       dd  0x4860A5 值为   75.00000000  fsub   是 ST0的值减   [0x4860A5]      就是   (程序识别码 X 433)-75

所以最终 算法 应该是   (识别码 乘以 433)再减去 75 = 解锁密码

啥是ST0 ?   

看图。。。。


吃水不忘挖井人   如果你觉得这个帖子对你有用的话  
麻烦点一下 免费的热心和 CB   这也是对我以后再次发帖的鼓励


免费评分

参与人数 40吾爱币 +51 热心值 +33 收起 理由
lefeng + 1 用心讨论,共获提升!
fengzai + 1 谢谢@Thanks!
吃瓜瓜的子夕 + 1 + 1 我很赞同!
豪气扳 + 1 + 1 我很赞同!
香港廉政公署 + 1 用心讨论,共获提升!
凌乱的断奏 + 1 我很赞同!
luziye233 + 1 + 1 谢谢@Thanks!
饥渴的鲨鱼 + 1 + 1 已经处理,感谢您对吾爱破解论坛的支持!
迷雾v + 1 我很赞同!
gongyong728125 + 1 + 1 热心回复!
appss + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
niflheimr + 1 用心讨论,共获提升!
XQplayer + 1 + 1 用心讨论,共获提升!
并不是触手 + 1 + 1 我很赞同!
a2612995 + 1 + 1 很有学习价值
wubin159 + 1 谢谢@Thanks!
sxc1203 + 1 + 1 用心讨论,共获提升!
孤云 + 2 热心回复!
盛世玫瑰 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
叼烟的声音 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
willJ + 9 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
xhrfree2008 + 1 + 1 谢谢@Thanks!
ted322 + 1 想币想疯了
yaoxuefeng888 + 1 + 1 我很赞同!
lices + 1 + 1 这算法我也是醉了。。。再怎么也搞个log什么的啊
雷爵大大 + 1 + 1 用心讨论,共获提升!
BugLon + 1 + 1 我很赞同!
毛新航 + 1 + 1 用心讨论,共获提升!
zjs1998 + 1 用心讨论,共获提升!
LASSAFEVER + 1 + 1 用心讨论,共获提升!
西门吹菠萝啤 + 1 + 1 我很赞同!
fantuan830 + 1 + 1 谢谢@Thanks!
iamoutdoors + 1 我很赞同!
瑟瑟发抖小菜虾 + 1 + 1 我很赞同!
haungyexingdong + 1 + 1 我很赞同!
冷沐晨 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
Hmily + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
朱朱你堕落了 + 1 + 1 师傅威武霸气!
z06260 + 1 谢谢@Thanks!
smile1110 + 3 + 1 艾滋病体验员写的太监文章

查看全部评分

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

smile1110 发表于 2019-4-28 00:16
太监文章哦

点评

大佬就是不一样 哈哈哈  发表于 2019-4-28 09:23
 楼主| 连晋 发表于 2019-4-29 00:24
王大泥巴 发表于 2019-4-28 22:51
请问楼主最后是怎么发现规律是X433-75的

最后贴出来的 那部分 代码里面  的变量的  值 我没有  贴出来         
不过没数值也可以根据代码看出

是一堆浮点数 值的 运算 分别 是

分别是   类型转换   乘    和减   你可以下载样本 然后自己去那部分代码 下断点 走一遍
 楼主| 连晋 发表于 2019-4-28 00:22

      能力不足  努力学习 争取以后可以 向大佬看齐
FioreZ 发表于 2019-4-28 00:34
学习一下,万一用的上!
zxcnny930 发表于 2019-4-28 00:36
初學反編譯
感謝大神分享
knxmy 发表于 2019-4-28 00:46
感谢楼主分享,学习
wjqok 发表于 2019-4-28 00:55
看看,学习一下
呦哎我去 发表于 2019-4-28 00:59
?什么意思
拉风丶 发表于 2019-4-28 01:05
感谢楼主分享,学习
星辰物语呀 发表于 2019-4-28 01:07
看一下楼主的分析
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

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

GMT+8, 2024-4-19 00:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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