crackme itoa atoi 等函数汇编

来源:互联网 发布:js 数组去掉最后一个 编辑:程序博客网 时间:2024/05/01 22:17
#include "stdafx.h"#include <Windows.h>int _tmain(int argc, _TCHAR* argv[]){char name[50] = "abcdef";int sum =1,sum2;for (int i=0;i<strlen(name);i++){sum*= name[i];}char name2[50];itoa(sum,name2,10);/*005177F4  /$  8BFF          mov edi,edi005177F6  |.  55            push ebp005177F7  |.  8BEC          mov ebp,esp005177F9  |.  837D 10 0A    cmp [arg.3],0xA005177FD  |.  8B45 08       mov eax,[arg.1]00517800  |.  75 0A         jnz Xcrackme5.0051780C00517802  |.  85C0          test eax,eax00517804  |.  79 06         jns Xcrackme5.0051780C00517806  |.  6A 01         push 0x100517808  |.  6A 0A         push 0xA0051780A  |.  EB 05         jmp Xcrackme5.005178110051780C  |>  6A 00         push 0x00051780E  |.  FF75 10       push [arg.3]00517811  |>  8B4D 0C       mov ecx,[arg.2]00517814  |.  E8 98FFFFFF   call crackme5.005177B1  /////////////////后00517819  |.  8B45 0C       mov eax,[arg.2]0051781C  |.  5D            pop ebp0051781D  \.  C3            retn005177B1  /$  8BFF          mov edi,edi005177B3  |.  55            push ebp005177B4  |.  8BEC          mov ebp,esp005177B6  |.  837D 0C 00    cmp [arg.2],0x0005177BA  |.  74 06         je Xcrackme5.005177C2005177BC  |.  C601 2D       mov byte ptr ds:[ecx],0x2D005177BF  |.  41            inc ecx005177C0  |.  F7D8          neg eax005177C2  |>  56            push esi                                 ;  ``````````````005177C3  |.  8BF1          mov esi,ecx005177C5  |>  33D2          /xor edx,edx005177C7  |.  F775 08       |div [arg.1]005177CA  |.  83FA 09       |cmp edx,0x9005177CD  |.  76 05         |jbe Xcrackme5.005177D4005177CF  |.  80C2 57       |add dl,0x57005177D2  |.  EB 03         |jmp Xcrackme5.005177D7005177D4  |>  80C2 30       |add dl,0x30005177D7  |>  8811          |mov byte ptr ds:[ecx],dl                ;  guan005177D9  |.  41            |inc ecx005177DA  |.  85C0          |test eax,eax005177DC  |.^ 75 E7         \jnz Xcrackme5.005177C5005177DE  |.  8801          mov byte ptr ds:[ecx],al005177E0  |.  49            dec ecx005177E1  |>  8A16          mov dl,byte ptr ds:[esi]005177E3  |.  8A01          mov al,byte ptr ds:[ecx]005177E5  |.  8811          mov byte ptr ds:[ecx],dl005177E7  |.  49            dec ecx005177E8  |.  8806          mov byte ptr ds:[esi],al005177EA  |.  46            inc esi005177EB  |.  3BF1          cmp esi,ecx005177ED  |.^ 72 F2         jb Xcrackme5.005177E1005177EF  |.  5E            pop esi005177F0  |.  5D            pop ebp005177F1  \.  C2 0800       retn 0x8*/int i=0,j=strlen(name2);char c;while (i<j){c = name2[i];name2[i] = name2[j-1];name2[j-1] = c;i++;j--;}/*0040200E  |.  8BFF          mov edi,edi00402010  |>  8A5C05 C8     /mov bl,byte ptr ss:[ebp+eax-0x38]00402014  |.  8A540D C8     |mov dl,byte ptr ss:[ebp+ecx-0x38]00402018  |.  885C0D C8     |mov byte ptr ss:[ebp+ecx-0x38],bl0040201C  |.  885405 C8     |mov byte ptr ss:[ebp+eax-0x38],dl00402020  |.  41            |inc ecx00402021  |.  48            |dec eax00402022  |.  3BC8          |cmp ecx,eax00402024  |.^ 7C EA         \jl Xcrackme5.00402010*/sum2 = atoi(name2);/*00506476  /$  8BFF          mov edi,edi00506478  |.  55            push ebp00506479  |.  8BEC          mov ebp,esp0050647B  |.  83EC 1C       sub esp,0x1C0050647E  |.  56            push esi0050647F  |.  FF75 08       push [arg.1]00506482  |.  8D4D E4       lea ecx,[local.7]00506485  |.  E8 F0AAFFFF   call crackme5.00500F7A0050648A  |.  8B45 10       mov eax,[arg.3]0050648D  |.  8B75 0C       mov esi,[arg.2]00506490  |.  85C0          test eax,eax00506492  |.  74 02         je Xcrackme5.0050649600506494  |.  8930          mov dword ptr ds:[eax],esi00506496  |>  85F6          test esi,esi00506498  |.  75 24         jnz Xcrackme5.005064BE0050649A  |>  E8 AFD2FFFF   call crackme5.0050374E0050649F  |.  C700 16000000 mov dword ptr ds:[eax],0x16005064A5  |.  E8 8F350000   call crackme5.00509A39005064AA  |.  807D F0 00    cmp byte ptr ss:[ebp-0x10],0x0005064AE  |.  74 07         je Xcrackme5.005064B7005064B0  |.  8B45 EC       mov eax,[local.5]005064B3  |.  8360 70 FD    and dword ptr ds:[eax+0x70],0xFFFFFFFD005064B7  |>  33C0          xor eax,eax005064B9  |.  E9 E0010000   jmp crackme5.0050669E005064BE  |>  837D 14 00    cmp [arg.4],0x0005064C2  |.  74 0C         je Xcrackme5.005064D0005064C4  |.  837D 14 02    cmp [arg.4],0x2005064C8  |.^ 7C D0         jl Xcrackme5.0050649A005064CA  |.  837D 14 24    cmp [arg.4],0x24005064CE  |.^ 7F CA         jg Xcrackme5.0050649A005064D0  |>  8365 FC 00    and [local.1],0x0005064D4  |.  8B4D E4       mov ecx,[local.7]005064D7  |.  53            push ebx005064D8  |.  8A1E          mov bl,byte ptr ds:[esi]005064DA  |.  57            push edi005064DB  |.  8D7E 01       lea edi,dword ptr ds:[esi+0x1]005064DE  |>  83B9 AC000000>/cmp dword ptr ds:[ecx+0xAC],0x1005064E5  |.  7E 17         |jle Xcrackme5.005064FE005064E7  |.  8D45 E4       |lea eax,[local.7]005064EA  |.  50            |push eax005064EB  |.  0FB6C3        |movzx eax,bl005064EE  |.  6A 08         |push 0x8005064F0  |.  50            |push eax005064F1  |.  E8 C0450000   |call crackme5.0050AAB6005064F6  |.  8B4D E4       |mov ecx,[local.7]005064F9  |.  83C4 0C       |add esp,0xC005064FC  |.  EB 10         |jmp Xcrackme5.0050650E005064FE  |>  8B91 C8000000 |mov edx,dword ptr ds:[ecx+0xC8]00506504  |.  0FB6C3        |movzx eax,bl00506507  |.  0FB70442      |movzx eax,word ptr ds:[edx+eax*2]0050650B  |.  83E0 08       |and eax,0x80050650E  |>  85C0          |test eax,eax00506510  |.  74 05         |je Xcrackme5.0050651700506512  |.  8A1F          |mov bl,byte ptr ds:[edi]00506514  |.  47            |inc edi00506515  |.^ EB C7         \jmp Xcrackme5.005064DE00506517  |>  80FB 2D       cmp bl,0x2D                              ;  diyige0050651A  |.  75 06         jnz Xcrackme5.005065220050651C  |.  834D 18 02    or [arg.5],0x200506520  |.  EB 05         jmp Xcrackme5.0050652700506522  |>  80FB 2B       cmp bl,0x2B                              ;  +00506525  |.  75 03         jnz Xcrackme5.0050652A00506527  |>  8A1F          mov bl,byte ptr ds:[edi]00506529  |.  47            inc edi0050652A  |>  8B45 14       mov eax,[arg.4]0050652D  |.  85C0          test eax,eax0050652F  |.  0F88 4F010000 js crackme5.0050668400506535  |.  83F8 01       cmp eax,0x1                              ;  1-0x2400506538  |.  0F84 46010000 je crackme5.005066840050653E  |.  83F8 24       cmp eax,0x2400506541  |.  0F8F 3D010000 jg crackme5.0050668400506547  |.  85C0          test eax,eax00506549  |.  75 2A         jnz Xcrackme5.005065750050654B  |.  80FB 30       cmp bl,0x300050654E  |.  74 09         je Xcrackme5.0050655900506550  |.  C745 14 0A000>mov [arg.4],0xA00506557  |.  EB 36         jmp Xcrackme5.0050658F00506559  |>  8A07          mov al,byte ptr ds:[edi]0050655B  |.  3C 78         cmp al,0x780050655D  |.  74 0D         je Xcrackme5.0050656C0050655F  |.  3C 58         cmp al,0x5800506561  |.  74 09         je Xcrackme5.0050656C00506563  |.  C745 14 08000>mov [arg.4],0x80050656A  |.  EB 23         jmp Xcrackme5.0050658F0050656C  |>  C745 14 10000>mov [arg.4],0x1000506573  |.  EB 0A         jmp Xcrackme5.0050657F00506575  |>  83F8 10       cmp eax,0x1000506578  |.  75 15         jnz Xcrackme5.0050658F0050657A  |.  80FB 30       cmp bl,0x300050657D  |.  75 10         jnz Xcrackme5.0050658F0050657F  |>  8A07          mov al,byte ptr ds:[edi]00506581  |.  3C 78         cmp al,0x7800506583  |.  74 04         je Xcrackme5.0050658900506585  |.  3C 58         cmp al,0x5800506587  |.  75 06         jnz Xcrackme5.0050658F00506589  |>  8A5F 01       mov bl,byte ptr ds:[edi+0x1]0050658C  |.  83C7 02       add edi,0x20050658F  |>  83C8 FF       or eax,0xFFFFFFFF                        ;  ``````````00506592  |.  33D2          xor edx,edx00506594  |.  F775 14       div [arg.4]                              ;  A00506597  |.  8BB1 C8000000 mov esi,dword ptr ds:[ecx+0xC8]0050659D  |.  8955 F8       mov [local.2],edx005065A0  |>  0FB6CB        /movzx ecx,bl005065A3  |.  0FB70C4E      |movzx ecx,word ptr ds:[esi+ecx*2]005065A7  |.  8BD1          |mov edx,ecx005065A9  |.  83E2 04       |and edx,0x4005065AC  |.  74 08         |je Xcrackme5.005065B6005065AE  |.  0FBECB        |movsx ecx,bl005065B1  |.  83E9 30       |sub ecx,0x30005065B4  |.  EB 19         |jmp Xcrackme5.005065CF005065B6  |>  81E1 03010000 |and ecx,0x103005065BC  |.  74 30         |je Xcrackme5.005065EE005065BE  |.  8D4B 9F       |lea ecx,dword ptr ds:[ebx-0x61]005065C1  |.  80F9 19       |cmp cl,0x19005065C4  |.  0FBECB        |movsx ecx,bl005065C7  |.  77 03         |ja Xcrackme5.005065CC005065C9  |.  83E9 20       |sub ecx,0x20005065CC  |>  83C1 C9       |add ecx,-0x37005065CF  |>  3B4D 14       |cmp ecx,[arg.4]005065D2  |.  73 1A         |jnb Xcrackme5.005065EE005065D4  |.  834D 18 08    |or [arg.5],0x8005065D8  |.  3945 FC       |cmp [local.1],eax005065DB  |.  72 28         |jb Xcrackme5.00506605005065DD  |.  75 05         |jnz Xcrackme5.005065E4005065DF  |.  3B4D F8       |cmp ecx,[local.2]005065E2  |.  76 21         |jbe Xcrackme5.00506605005065E4  |>  834D 18 04    |or [arg.5],0x4005065E8  |.  837D 10 00    |cmp [arg.3],0x0005065EC  |.  75 23         |jnz Xcrackme5.00506611005065EE  |>  8B45 18       |mov eax,[arg.5]005065F1  |.  4F            |dec edi005065F2  |.  A8 08         |test al,0x8005065F4  |.  75 20         |jnz Xcrackme5.00506616005065F6  |.  837D 10 00    |cmp [arg.3],0x0005065FA  |.  74 03         |je Xcrackme5.005065FF005065FC  |.  8B7D 0C       |mov edi,[arg.2]005065FF  |>  8365 FC 00    |and [local.1],0x000506603  |.  EB 5B         |jmp Xcrackme5.0050666000506605  |>  8B55 FC       |mov edx,[local.1]00506608  |.  0FAF55 14     |imul edx,[arg.4]0050660C  |.  03D1          |add edx,ecx0050660E  |.  8955 FC       |mov [local.1],edx00506611  |>  8A1F          |mov bl,byte ptr ds:[edi]00506613  |.  47            |inc edi00506614  |.^ EB 8A         \jmp Xcrackme5.005065A000506616  |>  BE FFFFFF7F   mov esi,0x7FFFFFFF0050661B  |.  A8 04         test al,0x40050661D  |.  75 1B         jnz Xcrackme5.0050663A0050661F  |.  A8 01         test al,0x100506621  |.  75 3D         jnz Xcrackme5.0050666000506623  |.  83E0 02       and eax,0x200506626  |.  74 09         je Xcrackme5.0050663100506628  |.  817D FC 00000>cmp [local.1],0x800000000050662F  |.  77 09         ja Xcrackme5.0050663A00506631  |>  85C0          test eax,eax00506633  |.  75 2B         jnz Xcrackme5.0050666000506635  |.  3975 FC       cmp [local.1],esi00506638  |.  76 26         jbe Xcrackme5.005066600050663A  |>  E8 0FD1FFFF   call crackme5.0050374E0050663F  |.  F645 18 01    test byte ptr ss:[ebp+0x18],0x100506643  |.  C700 22000000 mov dword ptr ds:[eax],0x2200506649  |.  74 06         je Xcrackme5.005066510050664B  |.  834D FC FF    or [local.1],0xFFFFFFFF0050664F  |.  EB 0F         jmp Xcrackme5.0050666000506651  |>  F645 18 02    test byte ptr ss:[ebp+0x18],0x200506655  |.  6A 00         push 0x000506657  |.  58            pop eax00506658  |.  0F95C0        setne al0050665B  |.  03C6          add eax,esi0050665D  |.  8945 FC       mov [local.1],eax00506660  |>  8B45 10       mov eax,[arg.3]00506663  |.  85C0          test eax,eax00506665  |.  74 02         je Xcrackme5.0050666900506667  |.  8938          mov dword ptr ds:[eax],edi00506669  |>  F645 18 02    test byte ptr ss:[ebp+0x18],0x20050666D  |.  74 03         je Xcrackme5.005066720050666F  |.  F75D FC       neg [local.1]00506672  |>  807D F0 00    cmp byte ptr ss:[ebp-0x10],0x000506676  |.  74 07         je Xcrackme5.0050667F00506678  |.  8B45 EC       mov eax,[local.5]0050667B  |.  8360 70 FD    and dword ptr ds:[eax+0x70],0xFFFFFFFD0050667F  |>  8B45 FC       mov eax,[local.1]00506682  |.  EB 18         jmp Xcrackme5.0050669C00506684  |>  8B45 10       mov eax,[arg.3]00506687  |.  85C0          test eax,eax00506689  |.  74 02         je Xcrackme5.0050668D0050668B  |.  8930          mov dword ptr ds:[eax],esi0050668D  |>  807D F0 00    cmp byte ptr ss:[ebp-0x10],0x000506691  |.  74 07         je Xcrackme5.0050669A00506693  |.  8B45 EC       mov eax,[local.5]00506696  |.  8360 70 FD    and dword ptr ds:[eax+0x70],0xFFFFFFFD0050669A  |>  33C0          xor eax,eax0050669C  |>  5F            pop edi0050669D  |.  5B            pop ebx0050669E  |>  5E            pop esi0050669F  |.  C9            leave005066A0  \.  C3            retn*/sum += sum2;itoa(sum,name,10);sprintf(name2,"xdsec%s",name);printf("%s",name2);return 0;}

原创粉丝点击