炒股理財演算法分析 (3千字)

看雪資料發表於2001-03-31

炒股理財演算法分析:

作者:THK
目的:學習找註冊碼
關於脫殼:用caspr1.012脫殼,去掉自檢錯誤messagebox.
        解除ANTI-W32DAASM功能(見http://001.com.cn/forum/toye/11626.html,方法與文中程式一的方法一模一樣) 
016F:0041CA86  XOR      EDI,EDI
016F:0041CA88  PUSH    BYTE +04
016F:0041CA8A  LEA      EAX,[EBP-74]
016F:0041CA8D  PUSH    EAX
016F:0041CA8E  PUSH    ESI
016F:0041CA8F  CALL    0041C794    //將輸入的假碼變換,內容見下。
016F:0041CA94  ADD      ESP,BYTE +0C
016F:0041CA97  INC      EDI
016F:0041CA98  CMP      EDI,BYTE +03
016F:0041CA9B  JL      0041CA88    //迴圈3次
016F:0041CA9D  XOR      DWORD [EBP-74],81079516  //變換結果於81079516異或
016F:0041CAA4  MOV      EDX,[EBP-74]
016F:0041CAA7  LEA      EAX,[EBP-04]
016F:0041CAAA  ADD      [EBP-78],EDX
016F:0041CAAD  CALL    0055C4F0
016F:0041CAB2  SUB      [EBP-78],EAX
016F:0041CAB5  MOV      EAX,ESI
016F:0041CAB7  CALL    0041C428  //由使用者名稱和硬碟ID號生成一個數
016F:0041CABC  SUB      [EBP-78],EAX  //減異或結果
016F:0041CABF  CMP      DWORD [EBP-78],BYTE +00  //為0嗎
016F:0041CAC3  JNZ      NEAR 0041CC89    //跳就死
016F:0041CAC9  MOV      EDX,80000002    //下面還有一處比較和這裡基本一樣
-----------------------------------------------------------------------
在0041CA8F處按F8來到這裡


016F:0041C794  PUSH    EBP
016F:0041C795  MOV      EBP,ESP
016F:0041C797  ADD      ESP,FFFFFDFC
016F:0041C79D  PUSH    EBX
016F:0041C79E  PUSH    ESI
016F:0041C79F  MOV      ECX,[EBP+10]
016F:0041C7A2  XOR      EAX,EAX
016F:0041C7A4  LEA      ESI,[EBP+FFFFFDFC]
016F:0041C7AA  MOV      EDX,[EBP+0C]
016F:0041C7AD  CMP      ECX,EAX
016F:0041C7AF  JNG      0041C7DD
016F:0041C7B1  MOV      BL,[EDX]
016F:0041C7B3  MOV      [EBP-01],BL
016F:0041C7B6  LEA      EBX,[ECX-01]
016F:0041C7B9  CMP      EAX,EBX
016F:0041C7BB  JNZ      0041C7C7
016F:0041C7BD  MOV      EBX,[EBP+0C]
016F:0041C7C0  MOV      BL,[EBX]
016F:0041C7C2  MOV      [EBP-02],BL
016F:0041C7C5  JMP      SHORT 0041C7CD
016F:0041C7C7  MOV      BL,[EDX+01]
016F:0041C7CA  MOV      [EBP-02],BL
016F:0041C7CD  SHL      WORD [EBP-02],1  //運算核心
016F:0041C7D1  MOV      BL,[EBP-01]
016F:0041C7D4  MOV      [ESI],BL
016F:0041C7D6  INC      EAX
016F:0041C7D7  INC      ESI
016F:0041C7D8  INC      EDX
016F:0041C7D9  CMP      ECX,EAX
016F:0041C7DB  JG      0041C7B1
016F:0041C7DD  MOV      BYTE [EBP+EAX+FFFFFDFC],00
016F:0041C7E5  XOR      EAX,EAX
016F:0041C7E7  MOV      EDX,[EBP+0C]
016F:0041C7EA  MOV      ESI,EDX
016F:0041C7EC  LEA      EDX,[EBP+FFFFFDFC]
016F:0041C7F2  CMP      ECX,EAX
016F:0041C7F4  JNG      0041C801
016F:0041C7F6  MOV      BL,[EDX]
016F:0041C7F8  MOV      [ESI],BL
016F:0041C7FA  INC      EAX
016F:0041C7FB  INC      ESI
016F:0041C7FC  INC      EDX
016F:0041C7FD  CMP      ECX,EAX
016F:0041C7FF  JG      0041C7F6   
016F:0041C801  LEA      EAX,[EBP+FFFFFDFC]
016F:0041C807  POP      ESI
016F:0041C808  POP      EBX
016F:0041C809  MOV      ESP,EBP
016F:0041C80B  POP      EBP
--------------------------------------------------------------------
運算過程:
      假碼:12345678      //必須是8位
       
          7856    5634    3412    1278 
左移1位  f0      ac      68      24      //只取高8位
      結果:2468acf0
          f0ac    ac68    6824    24f0
左移1位  e1      58      d0      49
      結果  : 49d058e1
          e158    58d0    d049    49e1
左移1位  c2      b1      a0      93
      結果 : 93a0b1c2
 
***********************那位大客幫幫忙寫出序號產生器**********************
                            這裡先謝了!!!

相關文章