首页
社区
课程
招聘
[求助]这段汇编是啥意思?
2006-12-1 08:47 8243

[求助]这段汇编是啥意思?

2006-12-1 08:47
8243
0046B3A3  |> /8A08          /MOV CL,BYTE PTR DS:[EAX]
0046B3A5  |. |0FBED9        |MOVSX EBX,CL
0046B3A8  |. |83FB 30       |CMP EBX,30
0046B3AB  |. |7C 1E         |JL SHORT kissme.0046B3CB
0046B3AD  |. |83FB 39       |CMP EBX,39
0046B3B0  |. |7F 19         |JG SHORT kissme.0046B3CB
0046B3B2  |. |8B9D 78FFFFFF |MOV EBX,DWORD PTR SS:[EBP-88]
0046B3B8  |. |8BFB          |MOV EDI,EBX
0046B3BA  |. |880F          |MOV BYTE PTR DS:[EDI],CL
0046B3BC  |. |46            |INC ESI
0046B3BD  |. |FF85 78FFFFFF |INC DWORD PTR SS:[EBP-88]
0046B3C3  |. |81FE FF000000 |CMP ESI,0FF
0046B3C9  |. |7D 07         |JGE SHORT kissme.0046B3D2
0046B3CB  |> |42            |INC EDX
0046B3CC  |. |40            |INC EAX
0046B3CD  |. |3B55 80       |CMP EDX,DWORD PTR SS:[EBP-80]
0046B3D0  |.^\7C D1         \JL SHORT kissme.0046B3A3    //返回 0046B3A3 不断循环啊

这个是个什么计算啊?

阿里云助力开发者!2核2G 3M带宽不限流量!6.18限时价,开 发者可享99元/年,续费同价!

收藏
点赞7
打赏
分享
最新回复 (14)
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-12-1 09:19
2
0
该代码首先依次取出一个[eax]中保存的ASCII码,如果该ASCII码在'0'~'9'之间,则保存到新的缓冲区中。

j = 0;
for (i = 0; i < lstrlen(lpBuff); i++)
{
  if (lpBuff[i] >= '0' && lpBuff[i] <= '9')
  {
    lpNewBuff[i] = lpBuff[i];
    j++;
    if (j >= 0xff)
      break;
  }
}
雪    币: 289
活跃值: (310)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
heimei 2006-12-1 09:54
3
0
啊看汇编就能写出这个代码
大拇哥顶个````
还想请问一下.我跟这个软件的时候这个循环N
N是根据你输入注册码多少决定
我就看他在逐个读这些字符
那这个是不是就是算注册码的地方还是这个只是进行比较没有真正的算法,
最近对这个反汇编贼敢兴趣
学习中^^^^^^^^^^^^^^^^^^
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-12-1 10:02
4
0
这段代码只是将你输入的注册码去除其他的字符,只取0~9的字符,然后保存到新的缓冲区中。这个应该只是算法的一部分处理过程而已。
雪    币: 289
活跃值: (310)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
heimei 2006-12-1 10:20
5
0
是的
它注册码只允许输入0-9  我输入A-Z就提示错误
估计只能用0-9
但是他这里没有对机器码进行计算
估计还要跟```
谢谢了``
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
笨笨雄 14 2006-12-1 10:37
6
0
竟然只靠这段代码,把前面的也反推出来了

强!

其实教新人破解,根本就不是分析的代码难不难的问题,主要是新人喜欢实质一点的。破解实例,即使再多代码,代码再难找,仍然努力看
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kissyll 2007-5-14 09:26
7
0
汇编代码看不懂
雪    币: 94
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
丢丢熊 2009-8-5 12:44
8
0
哈哈,学习了!
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cxlll 2009-9-17 15:36
9
0
汇编和高级语言联系不起来~~~
雪    币: 314
活跃值: (271)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
rerefrancd 1 2009-9-20 15:08
10
0
汇编和高级语言能联系起来,学了汇编再学高级语言就能理解得透些
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cshlhh 2009-9-21 23:22
11
0
刚入门,看不懂
雪    币: 37
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
crunming 2009-9-22 00:59
12
0
此贴可以作为教材推广
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mylonely 2010-1-24 19:34
13
0
不知道 对不起
雪    币: 165
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JansZhang 2010-1-24 21:17
14
0
好贴,汇编和c对应的代码
雪    币: 244
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
toad 2010-9-6 13:05
15
0
学习了!

ESI = 0;/*假设的*/
EAX = ?
for (EDX = 0/*假设的*/; EDX <= DWORD PTR SS:[EBP-80] /*lstrlen(lpBuff)假设的*/; EDX++)
{
  if (DS:[EAX] >= '0' && DS:[EAX] <= '9')
  {
    *(DWORD PTR SS:[EBP-88]) = *(DS:[EAX]);//2楼所说保存到新的缓冲区中
    (DWORD PTR) SS:[EBP-88]++;
    EAX++;
    ESI++;
    if (ESI >= 0xff)
      break;
  }
}

046B3A8  |. |83FB 30       |CMP EBX,30;这个比较用了符号扩展,比如81->ffffff81
游客
登录 | 注册 方可回帖
返回