首页
社区
课程
招聘
请教VS系列的牛人,这个稍微偏点的咚咚怎么弄
发表于: 2011-7-19 16:20 5151

请教VS系列的牛人,这个稍微偏点的咚咚怎么弄

2011-7-19 16:20
5151
请教VS系列的牛人,如何把 一段数据放在 代码段 和代码一起编译

比如
void A()
{
     ...
}
数据
XXXXXXXXXXX
void B()
{
    ...
}

最终生成的二进制文件, A() 数据  B()他们的布局要保持不变

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
关注  估计还是不行吧  
数据 是可读可写
代码 一般不可写吧
2011-7-19 16:39
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
3
我有个想法 不知道行不行

用内敛汇编的  _emit  关键字
你可以在  某个函数结尾的地方 插入 例如

void test()
{
...
...
...
return;
__asm
{
_emit 0x60 //这句话相当于 pushad
...
}

}

我没试过  楼主可以自己试试。
2011-7-19 16:52
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
编译器会自动调整节区的,得手工修改吧,还得修正偏移,很麻烦!
2011-7-19 17:11
0
雪    币: 75
活跃值: (623)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
这方法可行。只是有点麻烦00!一个文件数据,得一个字节一个字节读出来,转换成_emit xx的格式,码起来很长很长。。
2011-7-19 18:23
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
函数和数据应该可以指定区段的吧。。。
2011-7-19 18:36
0
雪    币: 94
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
#pragma data_seg(".text")
xxxxx
#pragma data_seg()
2011-7-20 09:32
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
8
要不楼主这样吧   
你先不要管这些数据    等把pe文件编译出来后   用一些工具(这个工具挺好找  我也写过这样的工具)加一个区段,然后把你的数据 用16进制编辑器  UtralEdit 或者 WinHex等 拷贝进去就ok啦。。。。
2011-7-20 09:59
0
雪    币: 668
活跃值: (2592)
能力值: ( LV11,RANK:190 )
在线值:
发帖
回帖
粉丝
9
三楼正解吧,在你的A()和B() 函数前边加个static 免得编译器它们俩之间加上nop操作
2011-7-23 09:57
0
雪    币: 103
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
写个脚本生成asm嵌进去
2011-7-23 10:26
0
游客
登录 | 注册 方可回帖
返回
//