飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2558|回复: 2

[求助] 高手帮忙看下这段代码是什么意思

[复制链接]
  • TA的每日心情
    开心
    2017-10-17 22:14
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 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:[403514]
    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:[ESI+EAX-1]
    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:[ECX+403320]        ; |
    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
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2008-5-26 20:05:54 | 显示全部楼层
    对应的c代码如下, [403514]不知道是什么东西..我假设它是asdfg的长度. 匆匆写的, 不知道有没有什么地方错了.
    1. #include <stdio.h>


    2. int main()
    3. {
    4.     char tsrh[260] = "tsrh-2008-";
    5.     int tsrh_len = strlen(tsrh);
    6.     char key[] = "asdfg";
    7.     int key_len = strlen(key);
    8.     int idx;
    9.     int dd, ss;

    10.     for (; key_len>0; key_len--) {
    11.         idx = key_len - 1;
    12.         ss = key[idx] + 0xc;
    13.         dd = (ss - 0x11 + ss - tsrh_len) ^ ss;
    14.         sprintf(tsrh+tsrh_len, "%X", dd);
    15.         tsrh_len = strlen(tsrh);
    16.     }

    17.     printf("%s", tsrh);

    18.     return 0;
    19. }
    复制代码
    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2018-2-11 09:23
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2008-5-27 00:55:20 | 显示全部楼层
    这是一个CM的反汇编代码

    楼上的高人/:good
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表