wufabiyu 发表于 2008-5-24 11:06:46

高手帮忙看下这段代码是什么意思

这是我找到的一个像是算法call的内容。
高手帮忙看下这段代码是什么意思,最好给个详细的说明,谢谢。
0040122E/$56            PUSH ESI
0040122F|.68 20334000   PUSH tsrh-cra.00403320                   ; /String = "tsrh-2008-"
00401234|.E8 1B010000   CALL <JMP.&KERNEL32.lstrlenA>            ; \lstrlenA
00401239|.8B3D 14354000 MOV EDI,DWORD PTR DS:
0040123F|.BE 01000000   MOV ESI,1
00401244|.8BC8          MOV ECX,EAX
00401246|>B8 B0344000   MOV EAX,tsrh-cra.004034B0                ;ASCII "asdfg"
0040124B|.0FB64406 FF   MOVZX EAX,BYTE PTR DS:
00401250|.04 0C         ADD AL,0C
00401252|.0FB6D0      MOVZX EDX,AL
00401255|.83EA 11       SUB EDX,11
00401258|.03D0          ADD EDX,EAX
0040125A|.2BD1          SUB EDX,ECX
0040125C|.33C2          XOR EAX,EDX
0040125E|.50            PUSH EAX                                 ; /<%X>
0040125F|.68 18354000   PUSH tsrh-cra.00403518                   ; |%X
00401264|.8D81 20334000 LEA EAX,DWORD PTR DS:      ; |
0040126A|.50            PUSH EAX                                 ; |s
0040126B|.E8 A8000000   CALL <JMP.&USER32.wsprintfA>             ; \wsprintfA
00401270|.83C4 0C       ADD ESP,0C
00401273|.68 20334000   PUSH tsrh-cra.00403320                   ; /String = "tsrh-2008-"
00401278|.E8 D7000000   CALL <JMP.&KERNEL32.lstrlenA>            ; \lstrlenA
0040127D|.8BC8          MOV ECX,EAX
0040127F|.46            INC ESI
00401280|.4F            DEC EDI
00401281|.^ 75 C3         JNZ SHORT tsrh-cra.00401246
00401283|.33C0          XOR EAX,EAX
00401285|.5E            POP ESI
00401286\.C3            RETN

Gue 发表于 2008-5-26 20:05:54

对应的c代码如下, 不知道是什么东西..我假设它是asdfg的长度. 匆匆写的, 不知道有没有什么地方错了.#include <stdio.h>


int main()
{
    char tsrh = "tsrh-2008-";
    int tsrh_len = strlen(tsrh);
    char key[] = "asdfg";
    int key_len = strlen(key);
    int idx;
    int dd, ss;

    for (; key_len>0; key_len--) {
        idx = key_len - 1;
        ss = key + 0xc;
        dd = (ss - 0x11 + ss - tsrh_len) ^ ss;
        sprintf(tsrh+tsrh_len, "%X", dd);
        tsrh_len = strlen(tsrh);
    }

    printf("%s", tsrh);

    return 0;
}

冰糖 发表于 2008-5-27 00:55:20

这是一个CM的反汇编代码

楼上的高人/:good
页: [1]
查看完整版本: 高手帮忙看下这段代码是什么意思