首页
社区
课程
招聘
[旧帖] [求助]一小段汇编如何用c表示 0.00雪花
发表于: 2008-3-13 18:12 3624

[旧帖] [求助]一小段汇编如何用c表示 0.00雪花

2008-3-13 18:12
3624
这段反汇编该怎样用c来表示。

0040454C  /$  B8 B4104100   mov     eax, 004110B4
00404551  |.  E8 0AFDFFFF   call    00404260
00404556  \.  C3            retn
00404260  /$  8B15 28104100 mov     edx, dword ptr ds:[411028]                ;
00404266  |.  8910          mov     dword ptr ds:[eax], edx                ;
00404268  |.  A3 28104100   mov     dword ptr ds:[411028], eax                ;
0040426D  \.  C3            retn

可以这样理解吗?

把A里的值放通过B放到C里,再把C的地址放到A里。

返回eax,[4110b4]存放的是[411028]里的原值,[411028]最后改为4110b4

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

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
DWORD *a;
a=0x004110B4;

void call60(DWORD *a)
{
    DWORD d;
    d=*a;
    *a = *((DWORD*)0x00411028);
    *((DWORD*)0x00411028)=d;
}

貌似是这样的哦。。。
2008-3-13 18:46
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
加个
typedef unsigned long DWORD;
2008-3-13 18:51
0
雪    币: 105
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
可能是这样的
int  foo(int p)
{
static int s;
*(int*)p=s;
s=p;
return s;
}
2008-3-13 21:08
0
雪    币: 203
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢各位了,
本人逆向太差,学习了.
2008-3-14 09:00
0
雪    币: 297
活跃值: (27)
能力值: ( LV13,RANK:380 )
在线值:
发帖
回帖
粉丝
6
我并不认为这是一个函数,反而我认为它是两个函数。
回头仔细看看,retn和mov之间被楼主省略掉了,证实了我的想法。
不知道lz为什么这样误导?

40454C到404556是函数调用,没什么好说的。
404260到40426D,有意思,是许多IDE都应该有的库函数,功能是为单向链表增加节点。411028存放的是这个单向链表的首节点。

Enjoy it.
2008-3-14 21:48
0
雪    币: 244
活跃值: (69)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
代码不完整呀。
2008-3-15 09:31
0
游客
登录 | 注册 方可回帖
返回
//