能力值:
( LV8,RANK:120 )
|
-
-
26 楼
004016A9 |> /8A06 /MOV AL,BYTE PTR DS:[ESI] //这里保存文件路径
004016AB |. |46 |INC ESI
004016AC |. |41 |INC ECX
004016AD |. |3C 00 |CMP AL,0
004016AF |. |74 0B |JE SHORT lib2inc.004016BC
004016B1 |. |3C 5C |CMP AL,5C //如果找到“/”
004016B3 |. |75 02 |JNZ SHORT lib2inc.004016B7
004016B5 |. |8BD1 |MOV EDX,ECX //保存了“最后一个/位置”
004016B7 |> |8807 |MOV BYTE PTR DS:[EDI],AL //将文件路径拷贝到DS:[EDI]
004016B9 |. |47 |INC EDI
004016BA |.^\EB ED \JMP SHORT lib2inc.004016A9
004016BC 0355 0C ADD EDX,DWORD PTR SS:[EBP+C] //SS:[EBP+C]中保存了带路径文件名与EDX相加,定位到文件名
004016BF 8802 MOV BYTE PTR DS:[EDX],AL //填入字符串结束标志'\0'
这样处理的话,如果文件名带有路径则不会有问题,如果不带路径名
起始EDX没值0,导致最后ADD EDX,DWORD PTR SS:[EBP+C]后EDX指向无效地址,挂掉
|
能力值:
( LV8,RANK:120 )
|
-
-
27 楼
在起始将XOR edx,edx一下即可
|
能力值:
( LV7,RANK:100 )
|
-
-
28 楼
兄说的是,而且用XOR只要两个字节,精简:)
|
|
|