首页
社区
课程
招聘
『原创』调戏 SkinSharp
发表于: 2011-4-12 17:10 24428

『原创』调戏 SkinSharp

2011-4-12 17:10
24428

最近想玩一下软件界面,百度了半天,发现 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


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (23)
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
2
方便。
2011-4-12 17:29
0
雪    币: 71
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

之前用过一次
竟然发现有泄漏。。。
莫非版本太低?
2011-4-12 17:55
0
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好东西,学习。。
2011-4-12 18:55
0
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
5
感觉SkinSharp不太好看.
2011-4-13 02:03
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
看来还是软件有漏洞
2011-4-13 13:55
0
雪    币: 167
活跃值: (1574)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
7
强大 纯汇编打造 修改PE有点像写shell的操作了
2011-4-13 14:20
0
雪    币: 334
活跃值: (70)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
8
这个dll有bug,是自身的,和“调戏”无关。
    如果一台主机接2个以上显示器,有皮肤的程序在另一个显示器中运行时,弹出的菜单会在主显示器中,直接造成无法控制在另一个显示器中程序。
   
    语文没学好,表达的不清楚,有的朋友可能看不懂我说的是啥。
2011-4-13 16:22
0
雪    币: 321
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
很强悍 谢谢
2011-4-13 17:04
0
雪    币: 136
活跃值: (105)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
10
hoho  看下 某人的作品啊
2011-4-15 12:52
0
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
嘿嘿 学习了 谢谢楼主
2011-4-15 19:23
0
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
很想知道如何加载PE
2011-4-16 19:26
0
雪    币: 4343
活跃值: (4328)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
牛B,,,   ............
2011-4-16 20:13
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
很强的技术,不错,谢谢提供
2011-9-25 20:09
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
15
好大的一张图~~~
2011-9-25 20:19
0
雪    币: 243
活跃值: (247)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
怪了,有时候会出现程序退出后,
但是进程还在
2011-9-27 08:20
0
雪    币: 49
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
学习下先 谢谢了
2011-9-27 09:52
0
雪    币: 768
活跃值: (530)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
18
学习:) 综合知道很扎实呀:)
2011-9-27 10:17
0
雪    币: 250
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
360提示病毒 晕
2011-9-27 10:47
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
可惜作者很久都不更新了,试了一下有不少问题
2011-9-29 02:11
0
雪    币: 43
活跃值: (241)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
这样不好,一下子就被误报了
2011-9-29 10:49
0
雪    币: 542
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
太强大了,可惜的是,在win7中无法运行,XP倒是可以。
2011-12-8 10:12
0
雪    币: 15919
活跃值: (4127)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
弟台的功力确实令人佩服
2012-3-9 15:20
0
雪    币: 275
活跃值: (51)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
24
正好前几天想要这样的功能·······
2012-5-21 22:17
0
游客
登录 | 注册 方可回帖
返回
//