InpOut32 CSharpExample.cs hacking
- /************************************************************************************
- * InpOut32 CSharpExample.cs hacking
- * 说明:
- * 跟一下CSharpExample.cs中InpOut32怎么使用。
- *
- * 2017-6-6 深圳 龙华樟坑村 曾剑锋
- ***********************************************************************************/
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
- namespace InpOut32.Net
- {
- public partial class CSharpExample : Form
- {
- /**
- * 加载dll相关处理函数
- */
- [DllImport("inpout32.dll")]
- private static extern UInt32 IsInpOutDriverOpen();
- [DllImport("inpout32.dll")]
- private static extern void Out32(short PortAddress, short Data);
- [DllImport("inpout32.dll")]
- private static extern char Inp32(short PortAddress);
- [DllImport("inpout32.dll")]
- private static extern void DlPortWritePortUshort(short PortAddress, ushort Data);
- [DllImport("inpout32.dll")]
- private static extern ushort DlPortReadPortUshort(short PortAddress);
- [DllImport("inpout32.dll")]
- private static extern void DlPortWritePortUlong(int PortAddress, uint Data);
- [DllImport("inpout32.dll")]
- private static extern uint DlPortReadPortUlong(int PortAddress);
- [DllImport("inpoutx64.dll")]
- private static extern bool GetPhysLong(ref int PortAddress, ref uint Data);
- [DllImport("inpoutx64.dll")]
- private static extern bool SetPhysLong(ref int PortAddress, ref uint Data);
- [DllImport("inpoutx64.dll", EntryPoint="IsInpOutDriverOpen")]
- private static extern UInt32 IsInpOutDriverOpen_x64();
- [DllImport("inpoutx64.dll", EntryPoint = "Out32")]
- private static extern void Out32_x64(short PortAddress, short Data);
- [DllImport("inpoutx64.dll", EntryPoint = "Inp32")]
- private static extern char Inp32_x64(short PortAddress);
- [DllImport("inpoutx64.dll", EntryPoint = "DlPortWritePortUshort")]
- private static extern void DlPortWritePortUshort_x64(short PortAddress, ushort Data);
- [DllImport("inpoutx64.dll", EntryPoint = "DlPortReadPortUshort")]
- private static extern ushort DlPortReadPortUshort_x64(short PortAddress);
- [DllImport("inpoutx64.dll", EntryPoint = "DlPortWritePortUlong")]
- private static extern void DlPortWritePortUlong_x64(int PortAddress, uint Data);
- [DllImport("inpoutx64.dll", EntryPoint = "DlPortReadPortUlong")]
- private static extern uint DlPortReadPortUlong_x64(int PortAddress);
- [DllImport("inpoutx64.dll", EntryPoint = "GetPhysLong")]
- private static extern bool GetPhysLong_x64(ref int PortAddress, ref uint Data);
- [DllImport("inpoutx64.dll", EntryPoint = "SetPhysLong")]
- private static extern bool SetPhysLong_x64(ref int PortAddress, ref uint Data);
- bool m_bX64 = false;
- public CSharpExample()
- {
- InitializeComponent();
- try
- {
- uint nResult = ;
- try
- {
- // 打开32位驱动,如果失败了,会引发异常,再加载64位驱动
- nResult = IsInpOutDriverOpen();
- Console.WriteLine("nResult1: " + nResult);
- }
- catch (BadImageFormatException)
- {
- Console.WriteLine("nResult2: " + nResult);
- nResult = IsInpOutDriverOpen_x64();
- if (nResult != )
- m_bX64 = true;
- Console.WriteLine("nResult2: " + nResult);
- }
- // 加载32、64位驱动均失败了,就给出相关提示信息
- if (nResult == )
- {
- lblMessage.Text = "Unable to open InpOut32 driver";
- button1.Enabled = false;
- button2.Enabled = false;
- button3.Enabled = false;
- button4.Enabled = false;
- button5.Enabled = false;
- button6.Enabled = false;
- button7.Enabled = false;
- }
- }
- catch (DllNotFoundException ex) // dll查找是失败异常
- {
- System.Diagnostics.Debug.WriteLine(ex.ToString());
- lblMessage.Text = "Unable to find InpOut32.dll";
- button1.Enabled = false;
- button2.Enabled = false;
- button3.Enabled = false;
- button4.Enabled = false;
- button5.Enabled = false;
- button6.Enabled = false;
- button7.Enabled = false;
- }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- try
- {
- // 字符串转16位short类型整数
- short iPort = Convert.ToInt16(textBox1.Text);
- char c;
- if (m_bX64)
- c = Inp32_x64(iPort);
- else
- c = Inp32(iPort);
- // 将读取的数据显示出来
- textBox2.Text = Convert.ToInt32(c).ToString();
- }
- catch (Exception ex)
- {
- MessageBox.Show("An error occured:\n" + ex.Message);
- }
- }
- private void button2_Click(object sender, EventArgs e)
- {
- try
- {
- // 字符串转16位short类型整数
- short iPort = Convert.ToInt16(textBox1.Text);
- short iData = Convert.ToInt16(textBox2.Text);
- textBox2.Text = "";
- if (m_bX64)
- Out32_x64(iPort, iData);
- else
- Out32(iPort, iData);
- }
- catch (Exception ex)
- {
- MessageBox.Show("An error occured:\n" + ex.Message);
- }
- }
- private void button3_Click(object sender, EventArgs e)
- {
- try
- {
- short iPort = Convert.ToInt16(textBox1.Text);
- ushort s;
- if (m_bX64)
- s = DlPortReadPortUshort_x64(iPort);
- else
- s = DlPortReadPortUshort(iPort);
- textBox2.Text = Convert.ToUInt16(s).ToString();
- }
- catch (Exception ex)
- {
- MessageBox.Show("An error occured:\n" + ex.Message);
- }
- }
- private void button4_Click(object sender, EventArgs e)
- {
- try
- {
- int nPort = Convert.ToInt32(textBox1.Text);
- uint l;
- if (m_bX64)
- l = DlPortReadPortUlong_x64(nPort);
- else
- l = DlPortReadPortUlong(nPort);
- textBox2.Text = l.ToString();
- }
- catch (Exception ex)
- {
- MessageBox.Show("An error occured:\n" + ex.Message);
- }
- }
- private void button5_Click(object sender, EventArgs e)
- {
- try
- {
- short sPort = Convert.ToInt16(textBox1.Text);
- ushort iData = Convert.ToUInt16(textBox2.Text);
- textBox2.Text = "";
- if (m_bX64)
- DlPortWritePortUshort_x64(sPort, iData);
- else
- DlPortWritePortUshort(sPort, iData);
- }
- catch (Exception ex)
- {
- MessageBox.Show("An error occured:\n" + ex.Message);
- }
- }
- private void button6_Click(object sender, EventArgs e)
- {
- try
- {
- int nPort = Convert.ToInt32(textBox1.Text);
- uint nData = Convert.ToUInt32(textBox2.Text);
- textBox2.Text = "";
- if (m_bX64)
- DlPortWritePortUlong_x64(nPort, nData);
- else
- DlPortWritePortUlong(nPort, nData);
- }
- catch (Exception ex)
- {
- MessageBox.Show("An error occured:\n" + ex.Message);
- }
- }
- // 参考:InpOut32 InputTest.cpp hacking
- // http://www.cnblogs.com/zengjfgit/p/6945758.html
- private void Beep(uint freq)
- {
- if (m_bX64)
- {
- Out32_x64(0x43, 0xB6);
- Out32_x64(0x42, (byte)(freq & 0xFF));
- Out32_x64(0x42, (byte)(freq >> ));
- System.Threading.Thread.Sleep();
- Out32_x64(0x61, (byte)(Convert.ToByte(Inp32_x64(0x61)) | 0x03));
- }
- else
- {
- Out32(0x43, 0xB6);
- Out32(0x42, (byte)(freq & 0xFF));
- Out32(0x42, (byte)(freq >> ));
- System.Threading.Thread.Sleep();
- Out32(0x61, (byte)(Convert.ToByte(Inp32(0x61)) | 0x03));
- }
- }
- private void StopBeep()
- {
- if (m_bX64)
- Out32_x64(0x61, (byte)(Convert.ToByte(Inp32_x64(0x61)) & 0xFC));
- else
- Out32(0x61, (byte)(Convert.ToByte(Inp32(0x61)) & 0xFC));
- }
- private void CSharpExample_Load(object sender, EventArgs e)
- {
- // 启动的时候相当于单击一次
- button7_Click(this, null);
- }
- private void ThreadBeeper()
- {
- for (uint i = ; i < ; i += )
- {
- uint freq = / i; // 440Hz
- Beep(freq);
- }
- StopBeep();
- }
- private void button7_Click(object sender, EventArgs e)
- {
- System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadBeeper));
- t.Start();
- }
- }
- }
InpOut32 CSharpExample.cs hacking的更多相关文章
- InpOut32 InputTest.cpp hacking
/************************************************************************************ * InpOut32 Inp ...
- Rootkit Hacking Technology && Defence Strategy Research
目录 . The Purpose Of Rootkit . Syscall Hijack . LKM Module Hidden . Network Communication Hidden . Fi ...
- 我的美国(北美)计算机CS实习面试经验分享
过去的一年多里,参加了一些面试,虽然面过的公司不多,但都从头一直走到尾.毕竟自己也是花了大量的时间和精力在这一场场的面试里.所以,就絮叨下自己的一些经验,希望能给在美国找实习找工作的同学们提供一点点帮 ...
- I.MX6 ar1020 SPI device driver hacking
/************************************************************************************ * I.MX6 ar1020 ...
- OK335xS GPMC nand device register hacking
/********************************************************************************* * OK335xS GPMC na ...
- RFID Hacking–资源大合集
原文: http://www.freebuf.com/news/others/605.html http://www.proxmark.org/forum/index.php RFID破解神器官方论坛 ...
- Hacking/Penetrating tester bookmark collection
Blogs http://carnal0wnage.blogspot.com/ http://www.mcgrewsecurity.com/ http://www.gnucitizen.org/blo ...
- 斯坦福CS课程列表
http://exploredegrees.stanford.edu/coursedescriptions/cs/ CS 101. Introduction to Computing Principl ...
- [C#] 剖析 AssemblyInfo.cs - 了解常用的特性 Attribute
剖析 AssemblyInfo.cs - 了解常用的特性 Attribute [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5944391.html 序 ...
随机推荐
- Bootstrap总结二
参考我的博客:http://www.isedwardtang.com/2017/09/01/bootstrap-primer-2/
- hadoop11----socket
package cn.itcast.bigdata.socket; import java.io.BufferedReader; import java.io.InputStream; import ...
- Linux系统服务管理 服务管理
Linux独立服务管理 启动服务 systemctl start 服务名称.service 设置开机自启动 systemctl enable 服务名称.service 停止开机自启动 systemct ...
- 【hihocoder】01背包
描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时刻了! 小Ho现在手上有M张奖券,而奖品区有N件奖品,分别标号为1到N,其中第i件奖品需要ne ...
- 20145217《网络对抗》 MAL_简单后门学习总结
20145217<网络对抗> MAL_简单后门学习总结 实践内容: 1.netcat的应用 2.socat的应用 3.meterpreter的应用 知识点学习总结 后门程序一般是指那些绕过 ...
- 查询当天数据(mysql)
SELECT count(*) as nums FROM go_member_share WHERE DATEDIFF(FROM_UNIXTIME(time, '%Y-%m-%d') , now()) ...
- code for 1 - 分治
2017-08-02 17:23:14 writer:pprp 题意:将n分解为n/2, n%2, n/2三部分,再将n/2分解..得到一个序列只有0和1,给出[l, r]问l到r有几个1 题解:分治 ...
- windows拒绝远程登陆
- ACM-ICPC北京站总结
失踪人口回归.... 第一次ACM比赛还是比较紧张的,总体来说发挥还是有一点失常. day1热身赛 一共四道去年和前年的北京站的题目....似乎都是银牌题及以下难度.半个小时我们就完成了嘴巴AK,然而 ...
- 不常用的gcd公式
gcd(a^m-b^m,a^n-b^n)=a^(gcd(m,n))-b^(gcd(m,n))