Hepinize iyi günler diklerim arkadaşlar. Bu gün size daha önceden yazmış ve THT'de paylaşmış olduğum Icon changer (İcon değiştirme) programının kodlarını paylaşıcam.
Öncelikle programın sunulduğu konu: http://www.turkhackteam.org/c-j-vb-...-changer-icon-degistirme-programi-icerde.html
Daha fazla programımı görmek indirmek ve geliştirmeye yardımcı olmak için THT ailesi ile paylaştığım şu programlara bakabilirsiniz: http://www.turkhackteam.org/c-j-vb-...-program-arsivim-indirin-kullanin-icerde.html
Ayrıca Bu programın yazıldığı programlama dili Visual Studio C# 2010 Express'dir. Onun için Tüm Visual Studio Versiyonlarında Çalışır.
Arkadaşlar Bir teşekkür etmeyi unutmayın.
.
Öncelikle programın sunulduğu konu: http://www.turkhackteam.org/c-j-vb-...-changer-icon-degistirme-programi-icerde.html
Programdan bir görüntü
Programın çalışma videosu
[ame]https://www.youtube.com/watch?v=pQzXB6Or7YI[/ame]
Arkadaşlar Source dosyasını indirmek istemeyen arkadaşlar için burda da kodları paylaşmak istiyorum:
[Form1.cs]
[IconInjector.cs]
Kullandığımız elemanların listesi:
İndirme Linki: TIKLAGÖR
Rar Şifresi: System36
Cyrpt Edilmiş Virüstotal Sonucu: https://www.virustotal.com/tr/file/...da47097e670ea15c482bdf78/analysis/1492378678/
Cyrpt Edilmemiş Virüstotal Sonucu: https://www.virustotal.com/tr/file/...c874891ab926401016f29f40/analysis/1492378690/
Source Dosyası İndirme Linki: Dosya.tc - ?cretsiz, H?zl? ve Kolay Dosya Payla??m?
Programın çalışma videosu
[ame]https://www.youtube.com/watch?v=pQzXB6Or7YI[/ame]
Arkadaşlar Source dosyasını indirmek istemeyen arkadaşlar için burda da kodları paylaşmak istiyorum:
[Form1.cs]
Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.IO;
namespace Iconer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private **** button1_Click(object sender, EventArgs e)
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
textBox1.Text = openFileDialog1.FileName;
}
}
string yol = System.Environment.GetFolderPath(Environment.SpecialFolder.My********s).ToString() + "\\Veri.txt";
string uyarı1 = "Değiştirme işlemi başarılı";
string uyarı2 = "Tebrikler";
string uyarı3 = "Check file paths";
string uyarı4 = "Warning";
private **** button2_Click(object sender, EventArgs e)
{
if (openFileDialog2.ShowDialog() == DialogResult.OK)
{
textBox2.Text = openFileDialog2.FileName;
}
}
private **** button3_Click(object sender, EventArgs e)
{
if (textBox1.Text != "" && textBox2.Text != "")
{
if (File.Exists((textBox1.Text.Replace(".exe", "\\") + openFileDialog1.SafeFileName)))
{
File.Delete(textBox1.Text.Replace(".exe", "\\") + openFileDialog1.SafeFileName);
}
Directory.CreateDirectory(textBox1.Text.Replace(".exe", ""));
File.Copy(textBox1.Text, textBox1.Text.Replace(".exe", "\\") + openFileDialog1.SafeFileName);
IconInjector.InjectIcon(textBox1.Text.Replace(".exe", "\\") + openFileDialog1.SafeFileName, textBox2.Text);
try
{
}
catch
{
}
MessageBox.Show(uyarı1, uyarı2);
}
else
{
MessageBox.Show(uyarı3, uyarı4);
}
}
private **** button4_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("www.ozcanozaltin.com");
}
private **** button5_Click(object sender, EventArgs e)
{
TextWriter dosya = new StreamWriter(yol);
if (button5.Text == "English")
{
button1.Text = "Choose exe";
button2.Text = "Choose ico";
button3.Text = "Change";
button4.Text = "Communication";
button5.Text = "Turkish";
uyarı1 = "Change Successful";
uyarı2 = "Congratulations";
uyarı3 = "Check file paths";
uyarı4 = "WARNING";
dosya.WriteLine("E");
}
else
{
button1.Text = "Exeyi Seçiniz";
button2.Text = "Iconu Seçiniz";
button3.Text = "Değiştir";
button4.Text = "İletişim";
button5.Text = "English";
uyarı1 = "Değiştirme işlemi başarılı";
uyarı2 = "Tebrikler";
uyarı3 = "Seçimlerinizde Eksiklik Var";
uyarı4 = "UYARI";
dosya.WriteLine("T");
}
dosya.Close();
}
private **** Form1_Load(object sender, EventArgs e)
{
if (File.Exists(yol))
{
StreamReader oku = File.OpenText(yol);
string yazi = oku.ReadLine();
oku.Close();
if (yazi == "E")
{
button5_Click(new Button(), new EventArgs());
}
}
else
{
TextWriter dosya = new StreamWriter(yol);
dosya.WriteLine("T");
dosya.Close();
}
}
}
}
[IconInjector.cs]
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;
namespace Iconer
{
class IconInjector
{
[DllImport("kernel32.dll", SetLastError = true)]
static extern int UpdateResource(IntPtr hUpdate, uint lpType, uint lpName, ushort wLanguage, byte[] lpData, uint cbData);
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr BeginUpdateResource(string pFileName, [MarshalAs(UnmanagedType.Bool)]bool bDeleteExistingResources);
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool EndUpdateResource(IntPtr hUpdate, bool fDiscard);
public static **** InjectIcon(string execFileName, string iconFileName) { InjectIcon(execFileName, iconFileName, 1, 1); }
static **** InjectIcon(string execFileName, string iconFileName, uint iconGroupID, uint iconBaseID)
{
const uint RT_ICON = 3;
const uint RT_GROUP_ICON = 14;
IconFile iconFile = new IconFile();
iconFile.Load(iconFileName);
IntPtr hUpdate = BeginUpdateResource(execFileName, false);
Debug.Assert(hUpdate != IntPtr.Zero);
byte[] data = iconFile.CreateIconGroupData(iconBaseID);
UpdateResource(hUpdate, RT_GROUP_ICON, iconGroupID, 0, data, (uint)data.Length);
for (int i = 0; i < iconFile.GetImageCount(); i++)
{
byte[] image = iconFile.GetImageData(i);
UpdateResource(hUpdate, RT_ICON, (uint)(iconBaseID + i), 0, image, (uint)image.Length);
}
EndUpdateResource(hUpdate, false);
}
}
[StructLayout(LayoutKind.Sequential)]
public struct ICONDIR { public ushort idReserved; public ushort idType; public ushort idCount; }
[StructLayout(LayoutKind.Sequential)]
public struct ICONDIRENTRY { public byte bWidth; public byte bHeight; public byte bColorCount; public byte bReserved; public ushort wPlanes; public ushort wBitCount; public uint dwBytesInRes; public uint dwImageOffset; }
[StructLayout(LayoutKind.Sequential)]
public struct BITMAPINFOHEADER { public uint biSize; public int biWidth; public int biHeight; public ushort biPlanes; public ushort biBitCount; public uint biCompression; public uint biSizeImage; public int biXPelsPerMeter; public int biYPelsPerMeter; public uint biClrUsed; public uint biClrImportant; }
[StructLayout(LayoutKind.Sequential, Pack = 2)]
public struct GRPICONDIRENTRY { public byte bWidth; public byte bHeight; public byte bColorCount; public byte bReserved; public ushort wPlanes; public ushort wBitCount; public uint dwBytesInRes; public ushort nID; }
public class IconFile
{
ICONDIR _iconDir = new ICONDIR();
ArrayList _iconEntry = new ArrayList();
ArrayList _iconImage = new ArrayList();
public IconFile() { }
public int GetImageCount()
{ return _iconDir.idCount; }
public byte[] GetImageData(int index)
{
Debug.Assert(0 <= index && index < GetImageCount());
return (byte[])_iconImage[index];
}
public unsafe **** Load(string fileName)
{
FileStream fs = null;
BinaryReader br = null;
byte[] buffer = null;
try
{
fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
br = new BinaryReader(fs); buffer = br.ReadBytes(sizeof(ICONDIR));
fixed (ICONDIR* ptr = &_iconDir)
{
Marshal.Copy(buffer, 0, (IntPtr)ptr, sizeof(ICONDIR));
}
Debug.Assert(_iconDir.idReserved == 0);
Debug.Assert(_iconDir.idType == 1);
Debug.Assert(_iconDir.idCount > 0);
for (int i = 0; i < _iconDir.idCount; i++)
{
ICONDIRENTRY entry = new ICONDIRENTRY();
buffer = br.ReadBytes(sizeof(ICONDIRENTRY));
ICONDIRENTRY* ptr = &entry;
{
Marshal.Copy(buffer, 0, (IntPtr)ptr, sizeof(ICONDIRENTRY));
} _iconEntry.Add(entry);
}
for (int i = 0; i < _iconDir.idCount; i++)
{
fs.Position = ((ICONDIRENTRY)_iconEntry[i]).dwImageOffset;
byte[] img = br.ReadBytes((int)((ICONDIRENTRY)_iconEntry[i]).dwBytesInRes);
_iconImage.Add(img);
}
byte[] b = (byte[])_iconImage[0];
}
catch
{
Debug.Assert(false);
}
finally { if (br != null) { br.Close(); } if (fs != null) { fs.Close(); } }
}
unsafe int SizeOfIconGroupData() { return sizeof(ICONDIR) + sizeof(GRPICONDIRENTRY) * GetImageCount(); }
public unsafe byte[] CreateIconGroupData(uint nBaseID)
{
byte[] data = new byte[SizeOfIconGroupData()];
fixed (ICONDIR* ptr = &_iconDir)
{
Marshal.Copy((IntPtr)ptr, data, 0, sizeof(ICONDIR));
}
int offset = sizeof(ICONDIR);
for (int i = 0; i < GetImageCount(); i++)
{
GRPICONDIRENTRY grpEntry = new GRPICONDIRENTRY();
BITMAPINFOHEADER bitmapheader = new BITMAPINFOHEADER();
BITMAPINFOHEADER* ptr = &bitmapheader;
{
Marshal.Copy(GetImageData(i), 0, (IntPtr)ptr, sizeof(BITMAPINFOHEADER));
}
grpEntry.bWidth = ((ICONDIRENTRY)_iconEntry[i]).bWidth;
grpEntry.bHeight = ((ICONDIRENTRY)_iconEntry[i]).bHeight;
grpEntry.bColorCount = ((ICONDIRENTRY)_iconEntry[i]).bColorCount;
grpEntry.bReserved = ((ICONDIRENTRY)_iconEntry[i]).bReserved;
grpEntry.wPlanes = bitmapheader.biPlanes;
grpEntry.wBitCount = bitmapheader.biBitCount;
grpEntry.dwBytesInRes = ((ICONDIRENTRY)_iconEntry[i]).dwBytesInRes;
grpEntry.nID = (ushort)(nBaseID + i); GRPICONDIRENTRY* ptr2 = &grpEntry;
{
Marshal.Copy((IntPtr)ptr2, data, offset, Marshal.SizeOf(grpEntry));
}
offset += sizeof(GRPICONDIRENTRY);
}
return data;
}
}
}
Kullandığımız elemanların listesi:
İndirme Linki: TIKLAGÖR
Rar Şifresi: System36
Cyrpt Edilmiş Virüstotal Sonucu: https://www.virustotal.com/tr/file/...da47097e670ea15c482bdf78/analysis/1492378678/
Cyrpt Edilmemiş Virüstotal Sonucu: https://www.virustotal.com/tr/file/...c874891ab926401016f29f40/analysis/1492378690/
Source Dosyası İndirme Linki: Dosya.tc - ?cretsiz, H?zl? ve Kolay Dosya Payla??m?
Daha fazla programımı görmek indirmek ve geliştirmeye yardımcı olmak için THT ailesi ile paylaştığım şu programlara bakabilirsiniz: http://www.turkhackteam.org/c-j-vb-...-program-arsivim-indirin-kullanin-icerde.html
Ayrıca Bu programın yazıldığı programlama dili Visual Studio C# 2010 Express'dir. Onun için Tüm Visual Studio Versiyonlarında Çalışır.
Arkadaşlar Bir teşekkür etmeyi unutmayın.
.


