首页
社区
课程
招聘
[求助]怎么阻止桌面墙纸被修改
发表于: 2009-10-30 14:31 3945

[求助]怎么阻止桌面墙纸被修改

2009-10-30 14:31
3945
一款软件,软件每次启动会修改桌面的墙纸,我破解后不会再出现每次软件启动改桌面墙纸的情况,但是电脑关机后再启动电脑时,桌面墙纸就会被修改。这个软件的原理是随机生成一幅图片(共7幅)放在c:\Windows下,我想不让c:\windows下生成图片,但破解后会弹出一个对话框,十分烦人。请知道的大大指点一下,到底这样弄才能不出现墙纸被修改的情况,而且不出现讨厌的对话框。谢谢各位了!下面是部分代码:

0047F303      B9 8CF44700   MOV ECX,ID_DP0.0047F48C                  ;  ASCII "\sm2100_desktop.bmp"
0047F308      E8 B754F8FF   CALL ID_DP0.004047C4
0047F30D      8B55 F4       MOV EDX,DWORD PTR SS:[EBP-C]
0047F310      8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0047F313   .  8B08          MOV ECX,DWORD PTR DS:[EAX]
0047F315   .  FF51 50       CALL DWORD PTR DS:[ECX+50]
0047F318   .  33C0          XOR EAX,EAX
0047F31A   .  5A            POP EDX
0047F31B   .  59            POP ECX
0047F31C   .  59            POP ECX
0047F31D   .  64:8910       MOV DWORD PTR FS:[EAX],EDX
0047F320   .  68 35F34700   PUSH ID_DP0.0047F335
0047F325   >  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0047F328   .  E8 A343F8FF   CALL ID_DP0.004036D0
0047F32D   .  C3            RETN
0047F32E   .^ E9 314BF8FF   JMP ID_DP0.00403E64
0047F333   .^ EB F0         JMP SHORT ID_DP0.0047F325
0047F335   .  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
0047F338   .  50            PUSH EAX                                 ; /hResource
0047F339   .  E8 7677F8FF   CALL <JMP.&kernel32.FreeResource>        ; \FreeResource
0047F33E   .  B2 01         MOV DL,1
0047F340   .  A1 D8C74600   MOV EAX,DWORD PTR DS:[46C7D8]
0047F345   .  E8 8ED5FEFF   CALL ID_DP0.0046C8D8
0047F34A   .  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
0047F34D   .  33C0          XOR EAX,EAX
0047F34F   .  55            PUSH EBP
0047F350   .  68 BBF34700   PUSH ID_DP0.0047F3BB
0047F355   .  64:FF30       PUSH DWORD PTR FS:[EAX]
0047F358   .  64:8920       MOV DWORD PTR FS:[EAX],ESP
0047F35B   .  BA 01000080   MOV EDX,80000001
0047F360   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0047F363   .  E8 10D6FEFF   CALL ID_DP0.0046C978
0047F368   .  33C9          XOR ECX,ECX
0047F36A   .  BA A8F44700   MOV EDX,ID_DP0.0047F4A8                  ;  ASCII "\Control Panel\Desktop"
0047F36F   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0047F372   .  E8 65D6FEFF   CALL ID_DP0.0046C9DC
0047F377   .  84C0          TEST AL,AL
0047F379   .  74 2A         JE SHORT ID_DP0.0047F3A5
0047F37B   .  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]
0047F37E   .  BA C8F44700   MOV EDX,ID_DP0.0047F4C8                  ;  ASCII "Wallpaper"
0047F383   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0047F386   .  E8 1DD9FEFF   CALL ID_DP0.0046CCA8
0047F38B   .  B9 DCF44700   MOV ECX,ID_DP0.0047F4DC
0047F390   .  BA E8F44700   MOV EDX,ID_DP0.0047F4E8                  ;  ASCII "TileWallpaper"
0047F395   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0047F398   .  E8 0BD9FEFF   CALL ID_DP0.0046CCA8
0047F39D   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0047F3A0   .  E8 A3D5FEFF   CALL ID_DP0.0046C948
0047F3A5   >  33C0          XOR EAX,EAX
0047F3A7   .  5A            POP EDX
0047F3A8   .  59            POP ECX
0047F3A9   .  59            POP ECX

加载图片代码:
0047F140      83F8 07       CMP EAX,7
0047F143      0F87 8E000000 JA ID_DP0.0047F1D7
0047F149  |.  FF2485 50F147>JMP DWORD PTR DS:[EAX*4+47F150]
0047F150  |.  D7F14700      DD ID_DP0.0047F1D7                       ;  分支表 被用于 0047F149
0047F154  |.  70F14700      DD ID_DP0.0047F170
0047F158  |.  7FF14700      DD ID_DP0.0047F17F
0047F15C  |.  8EF14700      DD ID_DP0.0047F18E
0047F160  |.  9DF14700      DD ID_DP0.0047F19D
0047F164  |.  ACF14700      DD ID_DP0.0047F1AC
0047F168  |.  BBF14700      DD ID_DP0.0047F1BB
0047F16C  |.  CAF14700      DD ID_DP0.0047F1CA
0047F170  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]            ;  Case 1 of switch 0047F140
0047F173  |.  BA 10F44700   MOV EDX,ID_DP0.0047F410                  ;  ASCII "wall_7"
0047F178  |.  E8 DB53F8FF   CALL ID_DP0.00404558
0047F17D  |.  EB 58         JMP SHORT ID_DP0.0047F1D7
0047F17F  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]            ;  Case 2 of switch 0047F140
0047F182  |.  BA 20F44700   MOV EDX,ID_DP0.0047F420                  ;  ASCII "wall_1"
0047F187  |.  E8 CC53F8FF   CALL ID_DP0.00404558
0047F18C  |.  EB 49         JMP SHORT ID_DP0.0047F1D7
0047F18E  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]            ;  Case 3 of switch 0047F140
0047F191  |.  BA 30F44700   MOV EDX,ID_DP0.0047F430                  ;  ASCII "wall_2"
0047F196  |.  E8 BD53F8FF   CALL ID_DP0.00404558
0047F19B  |.  EB 3A         JMP SHORT ID_DP0.0047F1D7
0047F19D  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]            ;  Case 4 of switch 0047F140
0047F1A0  |.  BA 40F44700   MOV EDX,ID_DP0.0047F440                  ;  ASCII "wall_3"
0047F1A5  |.  E8 AE53F8FF   CALL ID_DP0.00404558
0047F1AA  |.  EB 2B         JMP SHORT ID_DP0.0047F1D7
0047F1AC  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]            ;  Case 5 of switch 0047F140
0047F1AF  |.  BA 50F44700   MOV EDX,ID_DP0.0047F450                  ;  ASCII "wall_4"
0047F1B4  |.  E8 9F53F8FF   CALL ID_DP0.00404558
0047F1B9  |.  EB 1C         JMP SHORT ID_DP0.0047F1D7
0047F1BB  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]            ;  Case 6 of switch 0047F140
0047F1BE  |.  BA 60F44700   MOV EDX,ID_DP0.0047F460                  ;  ASCII "wall_5"
0047F1C3  |.  E8 9053F8FF   CALL ID_DP0.00404558
0047F1C8  |.  EB 0D         JMP SHORT ID_DP0.0047F1D7
0047F1CA  |>  8D45 E4       LEA EAX,DWORD PTR SS:[EBP-1C]            ;  Case 7 of switch 0047F140
0047F1CD  |.  BA 70F44700   MOV EDX,ID_DP0.0047F470                  ;  ASCII "wall_6"
0047F1D2  |.  E8 8153F8FF   CALL ID_DP0.00404558
0047F1D7  |>  68 78F44700   PUSH ID_DP0.0047F478                     ;  ASCII "wallpaper"; Default case of switch 0047F140
0047F1DC  |.  8B45 E4       MOV EAX,DWORD PTR SS:[EBP-1C]
0047F1DF  |.  E8 8C57F8FF   CALL ID_DP0.00404970

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
2
软件修改的是 HKEY_CURRENT_USER\Control Panel\Desktop 下的Wallpaper 键值

你调过它的修改就可以。
2009-10-31 13:23
0
雪    币: 97
活跃值: (70)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
谢谢已经弄好了哈!
2009-10-31 17:47
0
雪    币: 97
活跃值: (70)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
看雪的回复率不是很高啊!只有自己想了,昨天已经弄好了!
2009-10-31 17:51
0
雪    币: 93
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
也许是因为描述不够清楚吧,
而且没有恶意灌水的~~~
2009-11-1 01:02
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
能不能说说你是怎么解决的,以及你的思考过程。谢谢。
2009-11-1 09:36
0
雪    币: 97
活跃值: (70)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
应楼上的要求,我把我的思路说一下。一开始这个软件是每次启动都修改墙纸的。后来我NOP了关键CALL就解决了。本以为大功告成,第二天启动电脑墙纸被改了。我发现这个软件每次启动都会在c:\windows下生成一张图片,而这张图片就是修改的墙纸。开始想只要不让它放图片到c:\windows下就可以了,直接nop关键call,但重启发现墙纸还是被修改了。后来我又想,既然是启动电脑墙纸被修改,那么应该与注册表有关,也就是北极狐狸说的HKEY_CURRENT_USER\Control Panel\Desktop 下的Wallpaper 键值,于是顺藤摸瓜,来到下面关键代码:
84C0          TEST AL,AL //比较当前墙纸是否被修改
0047F379   .  74 2A         JE SHORT ID_DP0.0047F3A5 //如果已被修改,跳转;未被修改,将墙纸压入
0047F37B   .  8B4D F4       MOV ECX,DWORD PTR SS:[EBP-C]
0047F37E   .  BA C8F44700   MOV EDX,ID_DP0.0047F4C8                  ;  ASCII "Wallpaper"
0047F383   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0047F386   .  E8 1DD9FEFF   CALL ID_DP0.0046CCA8
0047F38B   .  B9 DCF44700   MOV ECX,ID_DP0.0047F4DC
0047F390   .  BA E8F44700   MOV EDX,ID_DP0.0047F4E8                  ;  ASCII "TileWallpaper"
0047F395   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0047F398   .  E8 0BD9FEFF   CALL ID_DP0.0046CCA8
0047F39D   .  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]
0047F3A0   .  E8 A3D5FEFF   CALL ID_DP0.0046C948
0047F3A5   >  33C0          XOR EAX,EAX

将JE改成JNE搞定。文字叙述有点长,主要是想尽可能的阐述我的思路,希望对楼上的有帮助, 呵呵!
2009-11-1 10:04
0
雪    币: 97
活跃值: (70)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
8
不会吧,我描述的还不够清楚啊!
2009-11-1 10:06
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
多谢。相当清楚。
2009-11-1 10:51
0
雪    币: 110
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
留个脚印
2009-11-1 21:46
0
游客
登录 | 注册 方可回帖
返回
//