More actions
imported>Unknown No edit summary |
(Repair batch-0001 pages from live compare) |
||
| Line 1: | Line 1: | ||
7/26일 두번째로 발표한 주제입니다 | 7/26일 두번째로 발표한 주제입니다 | ||
발표자료 | 발표자료 : CrackingProgram.ppt | ||
== 간단한 프로그램 == | == 간단한 프로그램 == | ||
| Line 38: | Line 38: | ||
00401037 push esi | 00401037 push esi | ||
00401038 push edi | 00401038 push edi | ||
00401039 lea edi, | 00401039 lea edi,[ebp-4Ch] | ||
0040103C mov ecx,13h | 0040103C mov ecx,13h | ||
00401041 mov eax,0CCCCCCCCh | 00401041 mov eax,0CCCCCCCCh | ||
00401046 rep stos dword ptr | 00401046 rep stos dword ptr [edi] | ||
8: int a, b, c; | 8: int a, b, c; | ||
9: a = 1; | 9: a = 1; | ||
00401048 mov dword ptr | 00401048 mov dword ptr [ebp-4],1 | ||
10: b = 2; | 10: b = 2; | ||
0040104F mov dword ptr | 0040104F mov dword ptr [ebp-8],2 | ||
11: c = add(a, b); | 11: c = add(a, b); | ||
00401056 mov eax,dword ptr | 00401056 mov eax,dword ptr [ebp-8] | ||
00401059 push eax | 00401059 push eax | ||
0040105A mov ecx,dword ptr | 0040105A mov ecx,dword ptr [ebp-4] | ||
0040105D push ecx | 0040105D push ecx | ||
0040105E call @ILT+0(add) (00401005) | 0040105E call @ILT+0(add) (00401005) | ||
00401063 add esp,8 | 00401063 add esp,8 | ||
00401066 mov dword ptr | 00401066 mov dword ptr [ebp-0Ch],eax | ||
12: | 12: | ||
13: return 0; | 13: return 0; | ||
| Line 78: | Line 78: | ||
00401097 push esi | 00401097 push esi | ||
00401098 push edi | 00401098 push edi | ||
00401099 lea edi, | 00401099 lea edi,[ebp-44h] | ||
0040109C mov ecx,11h | 0040109C mov ecx,11h | ||
004010A1 mov eax,0CCCCCCCCh | 004010A1 mov eax,0CCCCCCCCh | ||
004010A6 rep stos dword ptr | 004010A6 rep stos dword ptr [edi] | ||
18: int c; | 18: int c; | ||
19: c = a + b; | 19: c = a + b; | ||
004010A8 mov eax,dword ptr | 004010A8 mov eax,dword ptr [ebp+8] | ||
004010AB add eax,dword ptr | 004010AB add eax,dword ptr [ebp+0Ch] | ||
004010AE mov dword ptr | 004010AE mov dword ptr [ebp-4],eax | ||
20: return c; | 20: return c; | ||
004010B1 mov eax,dword ptr | 004010B1 mov eax,dword ptr [ebp-4] | ||
21: } | 21: } | ||
004010B4 pop edi | 004010B4 pop edi | ||
| Line 103: | Line 103: | ||
void main() | void main() | ||
{ | { | ||
char pass | char pass[8]; | ||
cout << "input password : "; | cout << "input password : "; | ||
cin >> pass; | cin >> pass; | ||
| Line 123: | Line 123: | ||
00401347 push esi | 00401347 push esi | ||
00401348 push edi | 00401348 push edi | ||
00401349 lea edi, | 00401349 lea edi,[ebp-48h] | ||
0040134C mov ecx,12h | 0040134C mov ecx,12h | ||
00401351 mov eax,0CCCCCCCCh | 00401351 mov eax,0CCCCCCCCh | ||
00401356 rep stos dword ptr | 00401356 rep stos dword ptr [edi] | ||
6: char pass | 6: char pass[8]; | ||
7: cout << "input password : "; | 7: cout << "input password : "; | ||
00401358 push offset string "input password : " (0046c048) | 00401358 push offset string "input password : " (0046c048) | ||
| Line 134: | Line 134: | ||
00401367 add esp,8 | 00401367 add esp,8 | ||
8: cin >> pass; | 8: cin >> pass; | ||
0040136A lea eax, | 0040136A lea eax,[ebp-8] | ||
0040136D push eax | 0040136D push eax | ||
0040136E push offset std::cin (00479f18) | 0040136E push offset std::cin (00479f18) | ||
| Line 141: | Line 141: | ||
9: if (!strcmp(pass, "12345")) | 9: if (!strcmp(pass, "12345")) | ||
0040137B push offset string "12345" (0046c040) | 0040137B push offset string "12345" (0046c040) | ||
00401380 lea ecx, | 00401380 lea ecx,[ebp-8] | ||
00401383 push ecx | 00401383 push ecx | ||
00401384 call strcmp (0041f9e0) | 00401384 call strcmp (0041f9e0) | ||
| Line 181: | Line 181: | ||
---- | ---- | ||
[[세미나/2004]] | [[세미나/2004]] | ||
Latest revision as of 23:56, 26 March 2026
7/26일 두번째로 발표한 주제입니다 발표자료 : CrackingProgram.ppt
간단한 프로그램
#include <iostream>
using namespace std;
int add(int a, int b);
int main()
{
int a, b, c;
a = 1;
b = 2;
c = add(a, b);
return 0;
}
int add(int a, int b)
{
int c;
c = a + b;
return c;
}
1: #include <iostream>
2: using namespace std;
3:
4: int add(int a, int b);
5:
6: int main()
7: {
00401030 push ebp
00401031 mov ebp,esp
00401033 sub esp,4Ch
00401036 push ebx
00401037 push esi
00401038 push edi
00401039 lea edi,[ebp-4Ch]
0040103C mov ecx,13h
00401041 mov eax,0CCCCCCCCh
00401046 rep stos dword ptr [edi]
8: int a, b, c;
9: a = 1;
00401048 mov dword ptr [ebp-4],1
10: b = 2;
0040104F mov dword ptr [ebp-8],2
11: c = add(a, b);
00401056 mov eax,dword ptr [ebp-8]
00401059 push eax
0040105A mov ecx,dword ptr [ebp-4]
0040105D push ecx
0040105E call @ILT+0(add) (00401005)
00401063 add esp,8
00401066 mov dword ptr [ebp-0Ch],eax
12:
13: return 0;
00401069 xor eax,eax
14: }
0040106B pop edi
0040106C pop esi
0040106D pop ebx
0040106E add esp,4Ch
00401071 cmp ebp,esp
00401073 call __chkesp (004081a0)
00401078 mov esp,ebp
0040107A pop ebp
0040107B ret
----------------------------------------------------------------------------------
15:
16: int add(int a, int b)
17: {
00401090 push ebp
00401091 mov ebp,esp
00401093 sub esp,44h
00401096 push ebx
00401097 push esi
00401098 push edi
00401099 lea edi,[ebp-44h]
0040109C mov ecx,11h
004010A1 mov eax,0CCCCCCCCh
004010A6 rep stos dword ptr [edi]
18: int c;
19: c = a + b;
004010A8 mov eax,dword ptr [ebp+8]
004010AB add eax,dword ptr [ebp+0Ch]
004010AE mov dword ptr [ebp-4],eax
20: return c;
004010B1 mov eax,dword ptr [ebp-4]
21: }
004010B4 pop edi
004010B5 pop esi
004010B6 pop ebx
004010B7 mov esp,ebp
004010B9 pop ebp
004010BA ret
간단한 암호입력 프로그램
#include <iostream>
using namespace std;
void main()
{
char pass[8];
cout << "input password : ";
cin >> pass;
if (!strcmp(pass, "12345"))
cout << "correct passwd" << endl;
else
cout << "wrong passwd" << endl;
}
1: #include <iostream>
2: using namespace std;
3:
4: void main()
5: {
00401340 push ebp
00401341 mov ebp,esp
00401343 sub esp,48h
00401346 push ebx
00401347 push esi
00401348 push edi
00401349 lea edi,[ebp-48h]
0040134C mov ecx,12h
00401351 mov eax,0CCCCCCCCh
00401356 rep stos dword ptr [edi]
6: char pass[8];
7: cout << "input password : ";
00401358 push offset string "input password : " (0046c048)
0040135D push offset std::cout (00479e88)
00401362 call @ILT+370(std::operator<<) (00401177)
00401367 add esp,8
8: cin >> pass;
0040136A lea eax,[ebp-8]
0040136D push eax
0040136E push offset std::cin (00479f18)
00401373 call @ILT+55(std::operator>>) (0040103c)
00401378 add esp,8
9: if (!strcmp(pass, "12345"))
0040137B push offset string "12345" (0046c040)
00401380 lea ecx,[ebp-8]
00401383 push ecx
00401384 call strcmp (0041f9e0)
00401389 add esp,8
0040138C test eax,eax
0040138E jne main+70h (004013b0)
10: cout << "correct passwd" << endl;
00401390 push offset @ILT+120(std::endl) (0040107d)
00401395 push offset string "correct passwd" (0046c02c)
0040139A push offset std::cout (00479e88)
0040139F call @ILT+370(std::operator<<) (00401177)
004013A4 add esp,8
004013A7 mov ecx,eax
004013A9 call @ILT+295(std::basic_ostream<char,std::char_traits<char> >::operator<<) (0040112c)
11: else
004013AE jmp main+8Eh (004013ce)
12: cout << "wrong passwd" << endl;
004013B0 push offset @ILT+120(std::endl) (0040107d)
004013B5 push offset string "wrong passwd" (0046c01c)
004013BA push offset std::cout (00479e88)
004013BF call @ILT+370(std::operator<<) (00401177)
004013C4 add esp,8
004013C7 mov ecx,eax
004013C9 call @ILT+295(std::basic_ostream<char,std::char_traits<char> >::operator<<) (0040112c)
13: }
004013CE pop edi
004013CF pop esi
004013D0 pop ebx
004013D1 add esp,48h
004013D4 cmp ebp,esp
004013D6 call __chkesp (0041fa70)
004013DB mov esp,ebp
004013DD pop ebp
004013DE ret