首页
社区
课程
招聘
[求助]wince 的加壳软件
发表于: 2009-6-27 10:47 8413

[求助]wince 的加壳软件

2009-6-27 10:47
8413
编写wince加壳程序,需要注意写什么东西那?

在外壳部分的操作:
1.异或加密.text段
2.用 LoadLibrary 和GetModuleHandle 手动还原IAT

结果加壳win32程序没问题,到了wince平台,就出问题了 - -

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
2
我前面做过一些Windows CE/ARM平台的加壳研究。确实有一些需要注意的地方。

你的表述不太清楚不知道你所说的:“就出问题了”是什么问题?

你说使用“异或加密.text段”,那么你应该需要在被加壳程序中加入代码以便运行前先解密吧?
你所说的“加壳win32程序没问题”,是指X86平台的WIN32程序吗?
那么加入程序中解密的代码使用的是X86指令还是ARM指令?

你是使用什么系统开发的?在哪个环境下构建的程序?等等需要更详细的说明才能判断出错的原因。
2009-6-27 13:24
0
雪    币: 164
活跃值: (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
3
看看UPX的实现吧,它能在CE下正常用。
2009-6-27 14:21
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
4
UPX支持的如硬件平台很多。
对于不同CPU平台的程序,UPX使用汇编编写了针对性的模块插入的待加壳程序中。
2009-6-27 14:25
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
to 加百力

感谢,
才知道,原来ce下没有加载 1000h的文件头,所以没法读文件头的信息。
还想请教前辈一下,coredll.dll里面是不是没有LoadLirbaryA函数,而只有LoadLirbaryW
2009-6-29 20:08
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
还有,我的外壳代码在单独编译后, 引入了__rt_udiv库函数,
这是怎么回事那
2009-6-29 20:15
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
7
是这样的为了减小DLL的体积,WM中一般都提供的是宽字符集对应的函数常以W结尾。
在WinINet系列函数中有一些和W对应的以A结尾的函数。
2009-6-29 20:28
0
雪    币: 2604
活跃值: (64)
能力值: (RANK:510 )
在线值:
发帖
回帖
粉丝
8
据我观察在ARM指令集中没有直接进行除法操作的指令。这是ARM指令集和X86指令集的一个不同之处。所以如果你使用C/C++编程时用到了除法运算编译的时候是调用系统函数比如你所说的__rt_udiv(看名字应该是运行时库函数中的无符号除法函数)来实现的。所以你可能会看到这样的除法函数被调用。

春节期间我用Xarm写了一个外壳当需要做除法运算的时候也是使用类似的库函数来实现整除或者取余数运算的。
2009-6-29 20:34
0
游客
登录 | 注册 方可回帖
返回
//