能力值:
( LV9,RANK:490 )
|
-
-
2 楼
如果这前面有清零ecx(如:xor ecx,ecx)和让ebp等于字符串长度的语句的话:
这似乎是把一字符串(有可能不可显示)转换成数字形式的字符串的代码
如果EDX:EAX的值为44H,那么DL的值会是什么!?
不太明白你的意思
如果那个串的一个byte=44H的话,相对应的转换后的字符应该是“8”,数值为38H
没有验证,仅供参考
|
能力值:
(RANK:650 )
|
-
-
3 楼
数字转字符串
疑似delphi
|
能力值:
(RANK:410 )
|
-
-
4 楼
; 这一段代码的功能应该是将输入的ASCII码转换成十进制的ASCII码。
; 如下面的代码如果String := '123456ABCD'; // 则经过转换后String := '9012345678';
for i := 1 to Length(String) do
begin
String[i] := Char((Ord(String[i]) mod $A) + $30);
end;
00401BFA |> /8B5424 18 /MOV EDX,DWORD PTR SS:[ESP+18]
00401BFE |. |BE 0A000000 |MOV ESI,0A
; 从这里开始的话,eax=44h,那么,
00401C03 |. |0FBE0411 |MOVSX EAX,BYTE PTR DS:[ECX+EDX]
00401C07 |. |99 |CDQ
00401C08 |. |F7FE |IDIV ESI
; 到这里的时候dl的值是8h
00401C0A |. |8B4424 18 |MOV EAX,DWORD PTR SS:[ESP+18]
00401C0E |. |80C2 30 |ADD DL,30 ; 再加上30h则dl的值是38h,也是ASCII码的'8'
00401C11 |. |881401 |MOV BYTE PTR DS:[ECX+EAX],DL
00401C14 |. |41 |INC ECX
00401C15 |. |3BCD |CMP ECX,EBP
00401C17 |.^\7C E1 \JL SHORT SuperCli.00401BFA
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
谢谢~~~~~~
|
|
|