【AZ02】如何清除程序暗桩?第二课【再探弹窗暗桩】
本帖最后由 fenginsc 于 2015-1-30 17:45 编辑上一课我们学习了基本的弹窗暗桩的清除方法,今天我们要介绍的是一种更复杂一点的弹窗暗桩。废话不多说开始正题。
首先这个就是我们今天的主角:(运行分析结果:该程序会在运行几秒后弹窗若干次)
我们打开OD。还像上一节课一样右键扫描ASCII字符串
但是你会发现,什么!没有了?
别急,这就是我今天要教给大家的新方法。
我们在下面的HEX数据框里单击右键,查找→二进制字符串
根据前面弹窗的地址(www.52pojie.cn)在ASCII那里输入。
点击确定以后就会发现搜索到了
然后我们在第一个w那里也就是HEX的第一个77那里右键选择断点→内存访问
ok,按F9运行程序吧
程序运行到这里会停下来
我们F8单步下去
到这里会发现弹出一个窗口,在上面一行下断。为什么要在上面一行下断,这只是一个调用CALL,你只把这里NOP是不行的,如果后面还有这个暗桩也会在这里停下来。
继续F8,可以发现我们出来了
继续F8返回到004010BB。看图片上的分析
可以发现004010B6和004010C0这两个是弹窗CALL。那还有两个CALL(00401199和004011A0)我们也要去分析一下
如图
这两个CALL并没有什么用,只是混淆视听罢了。
我们继续F8.发现跳到循环结构去了,至此暗桩分析完毕
只需把004010B6和004010C0 NOP即可。
00401057 55 push ebp
00401058 8BEC mov ebp,esp
0040105A 81EC 04000000 sub esp,0x4
00401060 68 05000080 push 0x80000005
00401065 6A 00 push 0x0
00401067 A1 58524800 mov eax,dword ptr ds:
0040106C 85C0 test eax,eax
0040106E 75 05 jnz X暗桩2.00401075
00401070 B8 DC7B4600 mov eax,暗桩2.00467BDC
00401075 50 push eax
00401076 68 01000000 push 0x1
0040107B BB 80164000 mov ebx,暗桩2.00401680
00401080 E8 83040000 call 暗桩2.00401508
00401085 83C4 10 add esp,0x10
00401088 8945 FC mov dword ptr ss:,eax
0040108B 6A 00 push 0x0
0040108D FF75 FC push dword ptr ss:
00401090 6A FF push -0x1
00401092 6A 08 push 0x8
00401094 68 04000116 push 0x16010004
00401099 68 01000152 push 0x52010001
0040109E E8 5F040000 call 暗桩2.00401502
004010A3 83C4 18 add esp,0x18
004010A6 8B5D FC mov ebx,dword ptr ss:
004010A9 85DB test ebx,ebx
004010AB 74 09 je X暗桩2.004010B6
004010AD 53 push ebx
004010AE E8 43040000 call 暗桩2.004014F6
004010B3 83C4 04 add esp,0x4
004010B6 E8 13000000 call 暗桩2.004010CE
004010BB E8 D9000000 call 暗桩2.00401199
004010C0 E8 15000000 call 暗桩2.004010DA
004010C5 E8 D6000000 call 暗桩2.004011A0
004010CA 8BE5 mov esp,ebp
004010CC 5D pop ebp
004010CD C3 retn
nop之后:
00401057 55 push ebp
00401058 8BEC mov ebp,esp
0040105A 81EC 04000000 sub esp,0x4
00401060 68 05000080 push 0x80000005
00401065 6A 00 push 0x0
00401067 A1 58524800 mov eax,dword ptr ds:
0040106C 85C0 test eax,eax
0040106E 75 05 jnz X暗桩2.00401075
00401070 B8 DC7B4600 mov eax,暗桩2.00467BDC
00401075 50 push eax
00401076 68 01000000 push 0x1
0040107B BB 80164000 mov ebx,暗桩2.00401680
00401080 E8 83040000 call 暗桩2.00401508
00401085 83C4 10 add esp,0x10
00401088 8945 FC mov dword ptr ss:,eax
0040108B 6A 00 push 0x0
0040108D FF75 FC push dword ptr ss:
00401090 6A FF push -0x1
00401092 6A 08 push 0x8
00401094 68 04000116 push 0x16010004
00401099 68 01000152 push 0x52010001
0040109E E8 5F040000 call 暗桩2.00401502
004010A3 83C4 18 add esp,0x18
004010A6 8B5D FC mov ebx,dword ptr ss:
004010A9 85DB test ebx,ebx
004010AB 74 09 je X暗桩2.004010B6
004010AD 53 push ebx
004010AE E8 43040000 call 暗桩2.004014F6
004010B3 83C4 04 add esp,0x4
004010B6 90 nop
004010B7 90 nop
004010B8 90 nop
004010B9 90 nop
004010BA 90 nop
004010BB E8 D9000000 call 暗桩2.00401199
004010C0 90 nop
004010C1 90 nop
004010C2 90 nop
004010C3 90 nop
004010C4 90 nop
004010C5 E8 D6000000 call 暗桩2.004011A0
004010CA 8BE5 mov esp,ebp
004010CC 5D pop ebp
004010CD C3 retn
下面是课件大家可以练习练习,最后谢谢大家的支持~
===========================================================
如何清除暗桩第一课(AZ01)【弹窗暗桩】:http://www.52pojie.cn/thread-316180-1-1.html
如何清除暗桩第二课(AZ02)【再探弹窗暗桩】:http://www.52pojie.cn/thread-323346-1-1.html
提一个建议,把第几课第几课放在标题的前面,方便大家查找,然后更新后再前一课的帖子里增加下一课的地址,方便大家关联起来!
这个帖子的图前面换个行,我帮你编辑了,可能看起来好看一些,然后代码用代码框处理下会好很多!
给予加精华鼓励,期待教程可以做下去!
很不错的教程 谢谢分享~ 谢谢分享,学习了 谢谢你的教程 这教程好!图文并茂,适合学习! 这图片截得似乎有点多余,接近全屏截图,字相对就小了 蚯蚓翔龙 发表于 2015-1-29 21:45
这图片截得似乎有点多余,接近全屏截图,字相对就小了
截的图都是高清的~可以点击图片来查看哦 fenginsc 发表于 2015-1-29 21:48
截的图都是高清的~可以点击图片来查看哦
我知道,只是每张都要点击一下然后放大。。。我觉得你可以直截一部分的{:301_1004:} 蚯蚓翔龙 发表于 2015-1-29 21:51
我知道,只是每张都要点击一下然后放大。。。我觉得你可以直截一部分的
为了让大家看的更详细,还是截大图好点吧