首页
论坛
课程
招聘
『原创』调戏 SkinSharp
2011-4-12 17:10 22640

『原创』调戏 SkinSharp

2011-4-12 17:10
22640
最近想玩一下软件界面,百度了半天,发现 SkinSharp 挺强的。可是以前写的好多程序都懒得改源码了,所以想调戏一下 SkinSharp ,在没有源码的情况下,让任何一个 EXE 都可以使用 SkinSharp。本人是很尊重知识产权的,发这个贴子完全是出于技术交流的目的。如果你想使用 SkinSharp 请到官网 http://www.skinsharp.com/htdocs/index.htm 购买。这里玩的 SkinSharp 是1.0.6.6 版的。

    为了实现目的,往 PE 文件里注入代码是必须的。注入的方法谁都会,程序里用的是扩展最后一个节的方法。

    SkinSharp 的换肤功能是在 SkinSharp.dll 里实现的,通过调用导出的接口:SkinH_AttachEx 就可以为当前进程更换皮肤。可是 EXE 跑起来时还得带个 SkinSharp.dll 这个累赘,就不好玩了。所以得想办法手动把 SkinSharp.dll 映射到内存里。映射的方法也是谁都会。说得啰嗦的话就是这几个步骤(详见源码):
      1、申请内存,把 SkinSharp.dll 中的数据按内存对齐映射到内存里;
    2、修复重导入表;
    3、修复重定位表;
    4、修改映像的内存保护属性;
    5、调用  SkinSharp.dll  的入口(如果写得通用一点的话,在调用入口之前,先处理一下 TLS);
    6、收工。

     SkinSharp 的皮肤数据是放在 *.she 文件中的,程序跑着还得带个 *.she 文件,那就更没鸟意思了!所以得想办法让皮肤数据只出现在内存里,而不会创建在磁盘上。用 IDA 瞅了一眼 SkinSharp.dll ,发现偏移 000161D0H 处是读取皮肤数据的:



这个函数很简单,传进来一个皮肤文件名,把这个文件读入后,调用偏移 00016290H 处的函数把皮肤数据保存下来。所以自己写了点代码替代了这个函数,不管传入的文件名是什么,都用内存中的皮肤数据去调用偏移 00016290H 处的函数,SkinSharp 把皮肤数据保存起来。详见代码。

  给看雪节省点版面,就啰嗦这么多。

  成品:
   成品.rar

  汇编源码:
   调戏SkinSharp.rar

2022 KCTF春季赛【最佳人气奖】火热评选中!快来投票吧~

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (23)
雪    币: 1481
活跃值: 活跃值 (146)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
cntrump 活跃值 13 2011-4-12 17:29
2
0
方便。
雪    币: 71
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xiaoxyz 活跃值 2011-4-12 17:55
3
0

之前用过一次
竟然发现有泄漏。。。
莫非版本太低?
雪    币: 44
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
coocoody 活跃值 2011-4-12 18:55
4
0
好东西,学习。。
雪    币: 0
活跃值: 活跃值 (24)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
tihty 活跃值 2 2011-4-13 02:03
5
0
感觉SkinSharp不太好看.
雪    币: 201
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
storaenso 活跃值 2011-4-13 13:55
6
0
看来还是软件有漏洞
雪    币: 81
活跃值: 活跃值 (493)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
Nisy 活跃值 5 2011-4-13 14:20
7
0
强大 纯汇编打造 修改PE有点像写shell的操作了
雪    币: 311
活跃值: 活跃值 (10)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
雨耕山 活跃值 1 2011-4-13 16:22
8
0
这个dll有bug,是自身的,和“调戏”无关。
    如果一台主机接2个以上显示器,有皮肤的程序在另一个显示器中运行时,弹出的菜单会在主显示器中,直接造成无法控制在另一个显示器中程序。
   
    语文没学好,表达的不清楚,有的朋友可能看不懂我说的是啥。
雪    币: 321
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
pandaforum 活跃值 2011-4-13 17:04
9
0
很强悍 谢谢
雪    币: 100
活跃值: 活跃值 (15)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
夜凉如水 活跃值 3 2011-4-15 12:52
10
0
hoho  看下 某人的作品啊
雪    币: 33
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
anglic 活跃值 2011-4-15 19:23
11
0
嘿嘿 学习了 谢谢楼主
雪    币: 636
活跃值: 活跃值 (283)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Rprop 活跃值 2011-4-16 19:26
12
0
很想知道如何加载PE
雪    币: 1011
活跃值: 活跃值 (1663)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Mxixihaha 活跃值 2011-4-16 20:13
13
0
牛B,,,   ............
雪    币: 239
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cjteam 活跃值 2011-9-25 20:09
14
0
很强的技术,不错,谢谢提供
雪    币: 8668
活跃值: 活跃值 (1099)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
cvcvxk 活跃值 10 2011-9-25 20:19
15
0
好大的一张图~~~
雪    币: 130
活跃值: 活跃值 (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zzcc 活跃值 2011-9-27 08:20
16
0
怪了,有时候会出现程序退出后,
但是进程还在
雪    币: 40
活跃值: 活跃值 (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
catface 活跃值 2011-9-27 09:52
17
0
学习下先 谢谢了
雪    币: 671
活跃值: 活跃值 (191)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
FishSeeWater 活跃值 11 2011-9-27 10:17
18
0
学习:) 综合知道很扎实呀:)
雪    币: 250
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hacknr 活跃值 2011-9-27 10:47
19
0
360提示病毒 晕
雪    币: 206
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
无聊仔 活跃值 2011-9-29 02:11
20
0
可惜作者很久都不更新了,试了一下有不少问题
雪    币: 109
活跃值: 活跃值 (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
pushebp 活跃值 2011-9-29 10:49
21
0
这样不好,一下子就被误报了
雪    币: 329
活跃值: 活跃值 (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yangjh 活跃值 2011-12-8 10:12
22
0
太强大了,可惜的是,在win7中无法运行,XP倒是可以。
雪    币: 11387
活跃值: 活跃值 (765)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
SnowRen 活跃值 2012-3-9 15:20
23
0
弟台的功力确实令人佩服
雪    币: 262
活跃值: 活跃值 (16)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
LuckyG 活跃值 2012-5-21 22:17
24
0
正好前几天想要这样的功能·······
游客
登录 | 注册 方可回帖
返回