首页
社区
课程
招聘
[原创][讨论]庆祝本人转正,发个原创,文件运行时动态修改data段数据
发表于: 2011-3-1 16:01 6643

[原创][讨论]庆祝本人转正,发个原创,文件运行时动态修改data段数据

2011-3-1 16:01
6643

首先感谢monife版主,

为庆祝本人转正, 发表一个思路..

绝对原创. 至于有什么用, 自己想去吧 (小菜之做, 大鸟飞过, 欢迎指点, 欢迎拍砖!)

用处是: 把pe data的某一些字符移动到另外一个地址, 然后在运行时还原到原来的位置

本人不是太懂汇编原理, 这个是我试着写的, 虽然最终表现出来的效果是一样的,

不知道这样子做的话, 对程序有没有影响?

原始(winhex查看):


现在把b999下移两行,
也就是这样:


目标是将00000880这里的四个字节也就是b999移动到000008a0
然后通过如下指令来动态修改从000008a0,恢复到原来的位置00000880

数据段整合:

0040101B > $  B8 50304000   MOV EAX,234.00403050     //原始数据开始地址                ;  ASCII "9a9999999999999999999999999999999999999999999999"

00401020   .  B9 A0304000   MOV ECX,234.004030A0  //附加数据地址                   ;  ASCII "b999"

00401025   .  BF 00000000   MOV EDI,0

0040102A   >  8A1439        MOV DL,BYTE PTR DS:[ECX+EDI]    //循环开始地址

0040102D   .  885438 30     MOV BYTE PTR DS:[EAX+EDI+30],DL

00401031   .  47            INC EDI

00401032   .  83FF 04       CMP EDI,4 //4附加数据字节数

00401035   .^ 74 C9         JE SHORT 234.00401000 //修改完毕后跳转地址

00401037   .^ 75 F1         JNZ SHORT 234.0040102A //开始下一次循环

od中原始:


循环执行四次后(注意看数据段):


无影响,over:


二进制:B8 50 30 40 00 B9 A0 30 40 00 BF 00 00 00 00 8A 14 39 88 54 38 30 47 83 FF 04 74 C9 75 F1

这个是基本形式 , 你可以根据思路自己diy一下, 比如:
B8 03 30 40 00 B9 C0 30 40 00 BF 00 00 00 00 8A 14 39 88 14 38 90 47 83 FF 03 74 C2 75 F1

(附件可用od调试, 数据段跟随,F7可看到效果, 一个个字节拼接)


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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 544
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
这种方法在免杀里常用到。。。
2011-3-1 18:51
0
雪    币: 167
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
, 不知道写得有没有问题, 感觉有点点影响速度
2011-3-1 20:35
0
雪    币: 384
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
怎么发到加壳板块来了呢?
2011-3-1 20:50
0
游客
登录 | 注册 方可回帖
返回
//