#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,edi
005177F6 |. 55 push ebp
005177F7 |. 8BEC mov ebp,esp
005177F9 |. 837D 10 0A cmp [arg.3],0xA
005177FD |. 8B45 08 mov eax,[arg.1]
00517800 |. 75 0A jnz Xcrackme5.0051780C
00517802 |. 85C0 test eax,eax
00517804 |. 79 06 jns Xcrackme5.0051780C
00517806 |. 6A 01 push 0x1
00517808 |. 6A 0A push 0xA
0051780A |. EB 05 jmp Xcrackme5.00517811
0051780C |> 6A 00 push 0x0
0051780E |. 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 ebp
0051781D \. C3 retn
005177B1 /$ 8BFF mov edi,edi
005177B3 |. 55 push ebp
005177B4 |. 8BEC mov ebp,esp
005177B6 |. 837D 0C 00 cmp [arg.2],0x0
005177BA |. 74 06 je Xcrackme5.005177C2
005177BC |. C601 2D mov byte ptr ds:[ecx],0x2D
005177BF |. 41 inc ecx
005177C0 |. F7D8 neg eax
005177C2 |> 56 push esi ; ``````````````
005177C3 |. 8BF1 mov esi,ecx
005177C5 |> 33D2 /xor edx,edx
005177C7 |. F775 08 |div [arg.1]
005177CA |. 83FA 09 |cmp edx,0x9
005177CD |. 76 05 |jbe Xcrackme5.005177D4
005177CF |. 80C2 57 |add dl,0x57
005177D2 |. EB 03 |jmp Xcrackme5.005177D7
005177D4 |> 80C2 30 |add dl,0x30
005177D7 |> 8811 |mov byte ptr ds:[ecx],dl ; guan
005177D9 |. 41 |inc ecx
005177DA |. 85C0 |test eax,eax
005177DC |.^ 75 E7 \jnz Xcrackme5.005177C5
005177DE |. 8801 mov byte ptr ds:[ecx],al
005177E0 |. 49 dec ecx
005177E1 |> 8A16 mov dl,byte ptr ds:[esi]
005177E3 |. 8A01 mov al,byte ptr ds:[ecx]
005177E5 |. 8811 mov byte ptr ds:[ecx],dl
005177E7 |. 49 dec ecx
005177E8 |. 8806 mov byte ptr ds:[esi],al
005177EA |. 46 inc esi
005177EB |. 3BF1 cmp esi,ecx
005177ED |.^ 72 F2 jb Xcrackme5.005177E1
005177EF |. 5E pop esi
005177F0 |. 5D pop ebp
005177F1 \. 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,edi
00402010 |> 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],bl
0040201C |. 885405 C8 |mov byte ptr ss:[ebp+eax-0x38],dl
00402020 |. 41 |inc ecx
00402021 |. 48 |dec eax
00402022 |. 3BC8 |cmp ecx,eax
00402024 |.^ 7C EA \jl Xcrackme5.00402010
*/
sum2 = atoi(name2);
/*
00506476 /$ 8BFF mov edi,edi
00506478 |. 55 push ebp
00506479 |. 8BEC mov ebp,esp
0050647B |. 83EC 1C sub esp,0x1C
0050647E |. 56 push esi
0050647F |. FF75 08 push [arg.1]
00506482 |. 8D4D E4 lea ecx,[local.7]
00506485 |. E8 F0AAFFFF call crackme5.00500F7A
0050648A |. 8B45 10 mov eax,[arg.3]
0050648D |. 8B75 0C mov esi,[arg.2]
00506490 |. 85C0 test eax,eax
00506492 |. 74 02 je Xcrackme5.00506496
00506494 |. 8930 mov dword ptr ds:[eax],esi
00506496 |> 85F6 test esi,esi
00506498 |. 75 24 jnz Xcrackme5.005064BE
0050649A |> E8 AFD2FFFF call crackme5.0050374E
0050649F |. C700 16000000 mov dword ptr ds:[eax],0x16
005064A5 |. E8 8F350000 call crackme5.00509A39
005064AA |. 807D F0 00 cmp byte ptr ss:[ebp-0x10],0x0
005064AE |. 74 07 je Xcrackme5.005064B7
005064B0 |. 8B45 EC mov eax,[local.5]
005064B3 |. 8360 70 FD and dword ptr ds:[eax+0x70],0xFFFFFFFD
005064B7 |> 33C0 xor eax,eax
005064B9 |. E9 E0010000 jmp crackme5.0050669E
005064BE |> 837D 14 00 cmp [arg.4],0x0
005064C2 |. 74 0C je Xcrackme5.005064D0
005064C4 |. 837D 14 02 cmp [arg.4],0x2
005064C8 |.^ 7C D0 jl Xcrackme5.0050649A
005064CA |. 837D 14 24 cmp [arg.4],0x24
005064CE |.^ 7F CA jg Xcrackme5.0050649A
005064D0 |> 8365 FC 00 and [local.1],0x0
005064D4 |. 8B4D E4 mov ecx,[local.7]
005064D7 |. 53 push ebx
005064D8 |. 8A1E mov bl,byte ptr ds:[esi]
005064DA |. 57 push edi
005064DB |. 8D7E 01 lea edi,dword ptr ds:[esi+0x1]
005064DE |> 83B9 AC000000>/cmp dword ptr ds:[ecx+0xAC],0x1
005064E5 |. 7E 17 |jle Xcrackme5.005064FE
005064E7 |. 8D45 E4 |lea eax,[local.7]
005064EA |. 50 |push eax
005064EB |. 0FB6C3 |movzx eax,bl
005064EE |. 6A 08 |push 0x8
005064F0 |. 50 |push eax
005064F1 |. E8 C0450000 |call crackme5.0050AAB6
005064F6 |. 8B4D E4 |mov ecx,[local.7]
005064F9 |. 83C4 0C |add esp,0xC
005064FC |. EB 10 |jmp Xcrackme5.0050650E
005064FE |> 8B91 C8000000 |mov edx,dword ptr ds:[ecx+0xC8]
00506504 |. 0FB6C3 |movzx eax,bl
00506507 |. 0FB70442 |movzx eax,word ptr ds:[edx+eax*2]
0050650B |. 83E0 08 |and eax,0x8
0050650E |> 85C0 |test eax,eax
00506510 |. 74 05 |je Xcrackme5.00506517
00506512 |. 8A1F |mov bl,byte ptr ds:[edi]
00506514 |. 47 |inc edi
00506515 |.^ EB C7 \jmp Xcrackme5.005064DE
00506517 |> 80FB 2D cmp bl,0x2D ; diyige
0050651A |. 75 06 jnz Xcrackme5.00506522
0050651C |. 834D 18 02 or [arg.5],0x2
00506520 |. EB 05 jmp Xcrackme5.00506527
00506522 |> 80FB 2B cmp bl,0x2B ; +
00506525 |. 75 03 jnz Xcrackme5.0050652A
00506527 |> 8A1F mov bl,byte ptr ds:[edi]
00506529 |. 47 inc edi
0050652A |> 8B45 14 mov eax,[arg.4]
0050652D |. 85C0 test eax,eax
0050652F |. 0F88 4F010000 js crackme5.00506684
00506535 |. 83F8 01 cmp eax,0x1 ; 1-0x24
00506538 |. 0F84 46010000 je crackme5.00506684
0050653E |. 83F8 24 cmp eax,0x24
00506541 |. 0F8F 3D010000 jg crackme5.00506684
00506547 |. 85C0 test eax,eax
00506549 |. 75 2A jnz Xcrackme5.00506575
0050654B |. 80FB 30 cmp bl,0x30
0050654E |. 74 09 je Xcrackme5.00506559
00506550 |. C745 14 0A000>mov [arg.4],0xA
00506557 |. EB 36 jmp Xcrackme5.0050658F
00506559 |> 8A07 mov al,byte ptr ds:[edi]
0050655B |. 3C 78 cmp al,0x78
0050655D |. 74 0D je Xcrackme5.0050656C
0050655F |. 3C 58 cmp al,0x58
00506561 |. 74 09 je Xcrackme5.0050656C
00506563 |. C745 14 08000>mov [arg.4],0x8
0050656A |. EB 23 jmp Xcrackme5.0050658F
0050656C |> C745 14 10000>mov [arg.4],0x10
00506573 |. EB 0A jmp Xcrackme5.0050657F
00506575 |> 83F8 10 cmp eax,0x10
00506578 |. 75 15 jnz Xcrackme5.0050658F
0050657A |. 80FB 30 cmp bl,0x30
0050657D |. 75 10 jnz Xcrackme5.0050658F
0050657F |> 8A07 mov al,byte ptr ds:[edi]
00506581 |. 3C 78 cmp al,0x78
00506583 |. 74 04 je Xcrackme5.00506589
00506585 |. 3C 58 cmp al,0x58
00506587 |. 75 06 jnz Xcrackme5.0050658F
00506589 |> 8A5F 01 mov bl,byte ptr ds:[edi+0x1]
0050658C |. 83C7 02 add edi,0x2
0050658F |> 83C8 FF or eax,0xFFFFFFFF ; ``````````
00506592 |. 33D2 xor edx,edx
00506594 |. F775 14 div [arg.4] ; A
00506597 |. 8BB1 C8000000 mov esi,dword ptr ds:[ecx+0xC8]
0050659D |. 8955 F8 mov [local.2],edx
005065A0 |> 0FB6CB /movzx ecx,bl
005065A3 |. 0FB70C4E |movzx ecx,word ptr ds:[esi+ecx*2]
005065A7 |. 8BD1 |mov edx,ecx
005065A9 |. 83E2 04 |and edx,0x4
005065AC |. 74 08 |je Xcrackme5.005065B6
005065AE |. 0FBECB |movsx ecx,bl
005065B1 |. 83E9 30 |sub ecx,0x30
005065B4 |. EB 19 |jmp Xcrackme5.005065CF
005065B6 |> 81E1 03010000 |and ecx,0x103
005065BC |. 74 30 |je Xcrackme5.005065EE
005065BE |. 8D4B 9F |lea ecx,dword ptr ds:[ebx-0x61]
005065C1 |. 80F9 19 |cmp cl,0x19
005065C4 |. 0FBECB |movsx ecx,bl
005065C7 |. 77 03 |ja Xcrackme5.005065CC
005065C9 |. 83E9 20 |sub ecx,0x20
005065CC |> 83C1 C9 |add ecx,-0x37
005065CF |> 3B4D 14 |cmp ecx,[arg.4]
005065D2 |. 73 1A |jnb Xcrackme5.005065EE
005065D4 |. 834D 18 08 |or [arg.5],0x8
005065D8 |. 3945 FC |cmp [local.1],eax
005065DB |. 72 28 |jb Xcrackme5.00506605
005065DD |. 75 05 |jnz Xcrackme5.005065E4
005065DF |. 3B4D F8 |cmp ecx,[local.2]
005065E2 |. 76 21 |jbe Xcrackme5.00506605
005065E4 |> 834D 18 04 |or [arg.5],0x4
005065E8 |. 837D 10 00 |cmp [arg.3],0x0
005065EC |. 75 23 |jnz Xcrackme5.00506611
005065EE |> 8B45 18 |mov eax,[arg.5]
005065F1 |. 4F |dec edi
005065F2 |. A8 08 |test al,0x8
005065F4 |. 75 20 |jnz Xcrackme5.00506616
005065F6 |. 837D 10 00 |cmp [arg.3],0x0
005065FA |. 74 03 |je Xcrackme5.005065FF
005065FC |. 8B7D 0C |mov edi,[arg.2]
005065FF |> 8365 FC 00 |and [local.1],0x0
00506603 |. EB 5B |jmp Xcrackme5.00506660
00506605 |> 8B55 FC |mov edx,[local.1]
00506608 |. 0FAF55 14 |imul edx,[arg.4]
0050660C |. 03D1 |add edx,ecx
0050660E |. 8955 FC |mov [local.1],edx
00506611 |> 8A1F |mov bl,byte ptr ds:[edi]
00506613 |. 47 |inc edi
00506614 |.^ EB 8A \jmp Xcrackme5.005065A0
00506616 |> BE FFFFFF7F mov esi,0x7FFFFFFF
0050661B |. A8 04 test al,0x4
0050661D |. 75 1B jnz Xcrackme5.0050663A
0050661F |. A8 01 test al,0x1
00506621 |. 75 3D jnz Xcrackme5.00506660
00506623 |. 83E0 02 and eax,0x2
00506626 |. 74 09 je Xcrackme5.00506631
00506628 |. 817D FC 00000>cmp [local.1],0x80000000
0050662F |. 77 09 ja Xcrackme5.0050663A
00506631 |> 85C0 test eax,eax
00506633 |. 75 2B jnz Xcrackme5.00506660
00506635 |. 3975 FC cmp [local.1],esi
00506638 |. 76 26 jbe Xcrackme5.00506660
0050663A |> E8 0FD1FFFF call crackme5.0050374E
0050663F |. F645 18 01 test byte ptr ss:[ebp+0x18],0x1
00506643 |. C700 22000000 mov dword ptr ds:[eax],0x22
00506649 |. 74 06 je Xcrackme5.00506651
0050664B |. 834D FC FF or [local.1],0xFFFFFFFF
0050664F |. EB 0F jmp Xcrackme5.00506660
00506651 |> F645 18 02 test byte ptr ss:[ebp+0x18],0x2
00506655 |. 6A 00 push 0x0
00506657 |. 58 pop eax
00506658 |. 0F95C0 setne al
0050665B |. 03C6 add eax,esi
0050665D |. 8945 FC mov [local.1],eax
00506660 |> 8B45 10 mov eax,[arg.3]
00506663 |. 85C0 test eax,eax
00506665 |. 74 02 je Xcrackme5.00506669
00506667 |. 8938 mov dword ptr ds:[eax],edi
00506669 |> F645 18 02 test byte ptr ss:[ebp+0x18],0x2
0050666D |. 74 03 je Xcrackme5.00506672
0050666F |. F75D FC neg [local.1]
00506672 |> 807D F0 00 cmp byte ptr ss:[ebp-0x10],0x0
00506676 |. 74 07 je Xcrackme5.0050667F
00506678 |. 8B45 EC mov eax,[local.5]
0050667B |. 8360 70 FD and dword ptr ds:[eax+0x70],0xFFFFFFFD
0050667F |> 8B45 FC mov eax,[local.1]
00506682 |. EB 18 jmp Xcrackme5.0050669C
00506684 |> 8B45 10 mov eax,[arg.3]
00506687 |. 85C0 test eax,eax
00506689 |. 74 02 je Xcrackme5.0050668D
0050668B |. 8930 mov dword ptr ds:[eax],esi
0050668D |> 807D F0 00 cmp byte ptr ss:[ebp-0x10],0x0
00506691 |. 74 07 je Xcrackme5.0050669A
00506693 |. 8B45 EC mov eax,[local.5]
00506696 |. 8360 70 FD and dword ptr ds:[eax+0x70],0xFFFFFFFD
0050669A |> 33C0 xor eax,eax
0050669C |> 5F pop edi
0050669D |. 5B pop ebx
0050669E |> 5E pop esi
0050669F |. C9 leave
005066A0 \. C3 retn
*/
sum += sum2;
itoa(sum,name,10);
sprintf(name2,"xdsec%s",name);
printf("%s",name2);
return 0;
}
转载于:https://www.cnblogs.com/zcc1414/p/3982433.html