首页
社区
课程
招聘
[求助]如何在程序中补汇编代码,让程序在运行的时候动态清除整个pe文件头?
发表于: 2006-10-5 02:02 4542

[求助]如何在程序中补汇编代码,让程序在运行的时候动态清除整个pe文件头?

2006-10-5 02:02
4542
当时和朋友讨论这个话题,虽然是一个很弱的anti-dump;已经在网上找了几天资料和翻遍的看雪的旧帖都没找到,望高手指点一下

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2


我试下改了一下,先具体修改某一个地址,但到写入的时候就说非法,望高人指点一下
2006-10-5 02:34
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
3
用Hiew7.2
我估计你说的是不脱壳对它进行补丁,使其正版化的问题?
如果是这样,你先找到要修的地址,注册必须是物理偏移地址。
如果这段代码是在壳中,则必须使用hiew 查看到。
如果这段代码是在解压之后,那么它的地址,就是你在OD中看到的。
看上面那张图,应该是在解压之前的?
那就必须用Hiew找到物理偏移。

下面是我曾经写过的一篇,没有发表的东东中的一部分。
……
靠在OD,中无法定位,只是因为它还是未脱壳文件,还得转到Hiew7.2中去,
scroll to 0040D3B0  再按F3,发现转到实际的偏移:
00003FAF  61    popad
00003FB0  7508  jne  000003FBA------------在这里按F3,修改为为jmp 000004D00  //注意前面要多加个零
然后再来两个Nop

同样,来到00404D00 处,写上相应代码,然后按F9--Update,OK!!!!
保存一下吧。

用C语言来打补丁看看:
///////////////////////////////////////////////////////////////////
//不脱壳,对Aspack2,12的壳进行补丁
#include "stdio.h"
#define path "Crackme.exe"
static char patch1[7]={0xE9,0x4B,0x0D,0x00,0x00,0x90,0x90};
static char patch2[23]={0xC7,0x05,0xF9,0x57,0x40,0x00,0x90,0x90,0x90,0x90,0xC6,0x05,0xFD,0x57,0x40,0x00,0x90,0x68,0x34,0x5A,0x40,0x00,0xC3};
main()
{
    FILE *f;
   if ((f=fopen(path,"rb+"))==NULL)    //以可读可写的方式打开
    {
        printf("cannot open file to readandwrite\n");
        exit(0);
    }
    fseek(f,0x3FB0,0);
    fwrite(patch1,sizeof(patch1),1,f);

    rewind(f);
    fseek(f,0x4D00,0);
    fwrite(patch2,sizeof(patch2),1,f);

    fclose(f);
}
//////////////////////////////////////////////////////////////////
2006-10-5 09:21
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
4
先使用VirtaulProtect使其头部可写,然后写00吧。应该是可以的,但是不推荐可能会造成一些问题,尤其是DLL
2006-10-5 09:50
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
5
楼上正解,3楼的不知所云+误导
其实楼主昨天在unpack.cn已经过问这样的问题了
fly回答是无意义的anti, 确实是无意义的anti

push esp
push 40       //PAGE_EXECUTE_READWRITE
push 1000     //size
push 400000   //base
call VirtualProtect
mov dword ptr [400000], 0

注意进制
2006-10-5 09:54
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢shoooooo,也谢谢各位,虽然自己也知道是毫无意义,但因为初学asm写点东西,之前和朋友聊起这个anti,搞了几天不行,只是心有不甘而已
2006-10-5 10:17
0
游客
登录 | 注册 方可回帖
返回
//