首页
社区
课程
招聘
如何修改反汇编代码(win7和xp不同)
发表于: 2011-3-29 07:25 4554

如何修改反汇编代码(win7和xp不同)

2011-3-29 07:25
4554
在xp上  修改地址为004606FC

改成
PUSH 689
CALL DWORD PTR DS:[59929C]               ; kernel32.Sleep

但是win7 地址不一样,我应该怎么办?

(我在写一个修改工具,编程上得能写出来)

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 13
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
GetProcAddress动态获取一下Sleep的地址?
2011-3-29 09:10
0
雪    币: 143
活跃值: (61)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3

[font=Fixedsys][color=#0000FF]void * [/color][color=#000080]__cdecl GetKernel32[/color][color=#0000FF]()
{
    [/color][color=#000080]__asm
    [/color][color=#0000FF]{
        xor [/color][color=#000080]eax[/color][color=#0000FF], [/color][color=#000080]eax[/color][color=#0000FF];
        [/color][color=#000080]mov eax[/color][color=#0000FF], [/color][color=#000080]dword ptr fs[/color][color=#0000FF]:[[/color][color=#000080]eax [/color][color=#0000FF]+ [/color][color=#FF00FF]0x30[/color][color=#0000FF]];
        [/color][color=#000080]mov eax[/color][color=#0000FF], [[/color][color=#000080]eax [/color][color=#0000FF]+ [/color][color=#FF00FF]0x0C[/color][color=#0000FF]];
        [/color][color=#000080]mov eax[/color][color=#0000FF], [[/color][color=#000080]eax [/color][color=#0000FF]+ [/color][color=#FF00FF]0x1C[/color][color=#0000FF]];
        [/color][color=#000080]mov eax[/color][color=#0000FF], [[/color][color=#000080]eax [/color][color=#0000FF]+ [/color][color=#FF00FF]0x08[/color][color=#0000FF]];
        [/color][color=#000080]pop ebp[/color][color=#0000FF];
        [/color][color=#000080]ret
    [/color][color=#0000FF]}
}

[/color][color=#000080]GetProcAddress[/color][color=#0000FF]([/color][color=#000080]GetKernel32[/color][color=#0000FF](), [/color][color=#A31515]"Sleep"[/color][color=#0000FF]);[/color][/font]


不好意思,之前的写错了啦
2011-3-29 13:25
0
雪    币: 241
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢分享,受教了!

想问个题外话,我的代码显示框怎么与楼上的不一样?

void * __cdecl GetKernel32()
{
    __asm
    {
        xor eax, eax;
        mov eax, dword ptr fs:[eax + 0x30];
        mov eax, [eax + 0x0C];
        mov eax, [eax + 0x1C];
        mov eax, [eax + 0x08];
        pop ebp;
        ret
    }
}
GetProcAddress(GetKernel32(), "Sleep");
2011-3-29 16:57
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
5
严重怀疑楼上几位做过测试没有啊
#include "stdafx.h"
#include "windows.h"

_declspec (naked) HMODULE GetKernel32()
{
    __asm
	{
        mov eax, dword ptr fs:[0x30];
        mov eax, [eax + 0x0C];
        mov eax, [eax + 0x1C];
		mov eax, [eax]
        mov eax, [eax + 0x08];
		retn
    }
}

int main(int argc, char* argv[])
{
	printf("Sleep api 的地址是:0x%.8X\r\n", (DWORD)GetProcAddress(GetKernel32(), "Sleep"));
	return 0;
}
2011-3-29 17:35
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
6
GetProcAddress
2011-3-29 18:03
0
游客
登录 | 注册 方可回帖
返回
//