首页
社区
课程
招聘
[旧帖] [求助]请教一句汇编! 0.00雪花
发表于: 2007-7-28 19:10 3629

[旧帖] [求助]请教一句汇编! 0.00雪花

2007-7-28 19:10
3629
0040C123   .  A1 FCE84000   mov     eax, dword ptr [40E8FC]

执行完这句可以发现eax变成3333,此时观察地址[40E8FC]的数据是24 1A F1 00,怎么解释呢?24 1A F1 00怎么转换成3333的呢?

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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
没可能吧。。。。
2007-7-28 21:41
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主 D F11A24 看看去,看看那个位置是什么
2007-7-28 22:25
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
woohyuk :
你说的很对,可能我没有描述完整。执行完这句寄存器情况是:
EAX 00F11A24 ASCII "3333"
ECX 7C80240F kernel32.7C80240F
EDX 7C92EB94 ntdll.KiFastSystemCallRet
EBX 7FFDA000
ESP 0013FF68
EBP 0013FFC0
ESI FFFFFFFF
EDI 7C930738 ntdll.7C930738
EIP 0040C128 Setup.0040C128
C 0  ES 0023 32位 0(FFFFFFFF)
P 1  CS 001B 32位 0(FFFFFFFF)
A 0  SS 0023 32位 0(FFFFFFFF)
Z 1  DS 0023 32位 0(FFFFFFFF)
S 0  FS 003B 32位 7FFDF000(FFF)
T 0  GS 0000 NULL
D 0
O 0  LastErr ERROR_SERVICE_DOES_NOT_EXIST (00000424)
EFL 00000246 (NO,NB,E,BE,NS,PE,GE,LE)
ST0 empty -UNORM BCE0 01050104 00620064
ST1 empty 0.0
ST2 empty 0.0
ST3 empty 0.0
ST4 empty 0.0
ST5 empty 0.0
ST6 empty 1.0000000000000000000
ST7 empty 1.0000000000000000000
               3 2 1 0      E S P U O Z D I
FST 0000  Cond 0 0 0 0  Err 0 0 0 0 0 0 0 0  (GT)
FCW 1372  Prec NEAR,64  掩码    1 1 0 0 1 0
===========================================

此时eax=00F11A24,执行 D 00F11A24 后,在数据区看到地址00F11A24的值是
00F11A24  33 33 33 33                                      3333
这就对了,3333出来了。但是我无法理解00F11A24是什么,如何赋值的?如果想改变3333为其他值,是修改地址[00F11A24]的值吧,[00F11A24]又在哪里找到呢,是动态的吧。该程序的ASCII 参考字串全部加密了,搜索不出来的。
2007-7-28 23:12
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
5
你这样一说不就很好理解了  
40E8FC中保存的是24 1A F1 00  因为是dword,所以就是 F11A24,这个就是字符串'333'的首地址
mov eax,[40E8FC]就等于 mov eax,F11A24
此时eax中保存的数据就是333的首地址  od中当然会显示333了
2007-7-29 00:34
0
雪    币: 228
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
呵呵,夜猫子真多呀,都没睡,
2007-7-29 01:00
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
如果此时不希望eax是ASCII "3333",那该怎么修改呢?3333是加密了的,字串搜索不到。F11A24不是程序的地址啊,是内存的地址吧,我该怎么办呢?添加一个附加数据段,然后修改[40E8FC]为附加数据地址?
2007-7-29 12:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
可以直接修改此句

0040C123       mov     eax, 401000

假设401000为你需要的字串的首地址
2007-7-29 13:50
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
9
[QUOTE=flong;339162]如果此时不希望eax是ASCII "3333",那该怎么修改呢?3333是加密了的,字串搜索不到。F11A24不是程序的地址啊,是内存的地址吧,我该怎么办呢?添加一个附加数据段,然后修改[40E8FC]为附加数据地址?[/QUOTE]

在命令行插件里面输入 d eax 或者0F11A24
就可以看到3333了 在内存中显示是33 33 33 33...
然后就可以修改了
我不懂你说的程序地址是什么意思  你看到的所有东西都在内存中吧,都是内存地址
F11A24这么大的地址就应该是程序自己申请的 呵呵
2007-7-29 16:10
0
游客
登录 | 注册 方可回帖
返回
//