首页
社区
课程
招聘
向各位老大请教~有一段ASM注册码看不明白...
发表于: 2004-5-15 10:26 5426

向各位老大请教~有一段ASM注册码看不明白...

2004-5-15 10:26
5426
根据c盘序列号生成的序列号xor 0x12345678得到一个值A
----------------------------------------------------------------
:10001EC1::  FF15 38300010            CALL NEAR [10003038]                        >>>: KERNEL32.DLL:GetVolumeInformationA
::10001EC7::  5E                       POP ESI                                 
::10001EC8::  8B4424 00                MOV EAX,[ESP]                           
::10001ECC::  35 78563412              XOR EAX,12345678                        
::10001ED1::  83C4 0C                  ADD ESP,C                              
::10001ED4::  C3                       RETN      
----------------------------------------------------------------
上面的RET跳到下面的位置,A又与0x02121212异或,最后值放入ESI,然后ESI入栈
----------------------------------------------------------------
:10001F1B::  8BF0                     MOV ESI,EAX                             
::10001F1D::  8D4C24 0C                LEA ECX,[ESP+C]                        
::10001F21::  81F6 12121202            XOR ESI,2121212                        
::10001F27::  E8 52090000              CALL 1000287E                           \:JMPDOWN    >>>: MFC42.DLL:??0CString@@QAE@XZ
::10001F2C::  56                       PUSH ESI   
-----------------------------------------------------------------
入栈后一直用f10单步跟踪,没发现有pop的地方~
经过n次f10后发现pop esi ...
又走了n次f10,一直没有对esi的相关操作
突然之间看到ESI的数据变了,返回一看,倒~~不明白了
导致ESI的数据变了的原因是
--------
call esi
--------
这是什么意思? 把算出来的esi当作内存地址来转跳?
那我真正的注册码在哪里?call esi这个远程地址里面?
esi的值为88BC4395,在跟踪函数的dll根本没有这个地址啊~远远超过了~
百思不得其解,请教各位~

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

收藏
免费 6
支持
分享
最新回复 (1)
雪    币: 242
活跃值: (190)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
call esi发现 88BC4395 这是advapi32的领空~
这这...这是怎么回事...
2004-5-15 10:37
0
游客
登录 | 注册 方可回帖
返回
//