我正在尝试创建一个代码,用于搜索用户输入的自定义值。 我对C#的了解不是很大,所以对我来说最简单的方法就是在可能的情况下用循环搜索。
到目前为止的代码:
private void button4_Click(object sender, EventArgs e)
{
uint offset = 0x0154d6e4;
uint value= 844705;
uint randBuff = Loaded_DLL.Extension.ReadUInt32(offset);
while (randBuff == value)
{
offset = (offset + 4);
listBox1.Items.Add(randBuff.ToString("x8"));
}
}
在我的大脑中,我认为起始偏移量是unit offset
从这一点开始搜索值uint value
,从它使用我的DLL读取它的内存中获取值输入了偏移量Extension.ReadUInt32(offset);
。
也许有一次程序会在listbox1中找到值并输出它。如果没有找到,偏移量将增加4.不知何故,它不工作或不搜索,我不确定什么是正确的答案。
答案 0 :(得分:0)
private void button4_Click(object sender, EventArgs e)
{
uint offset = 0x0154d6e4;
uint value= 844705;
uint randBuff = Loaded_DLL.Extension.ReadUInt32(offset);
while (randBuff != value)
{
offset = (offset + 4);
randBuff = Loaded_DLL.Extension.ReadUInt32(offset);
}
if(randBuff == value)
listBox1.Items.Add(randBuff.ToString("x8"));
else
listBox1.Items.Add("Value not found!");
}
您需要读取randBuff中的新偏移量。
答案 1 :(得分:0)
代码不会继续更新它的randbuff所以会卡住......所以代码应该是这样的: -
private void button4_Click(object sender, EventArgs e)
{
uint offset = 0x0154d6e4;
uint value= 844705;
uint randBuff = Loaded_DLL.Extension.ReadUInt32(offset);
while (randBuff == value)
{
offset = (offset + 4);
listBox1.Items.Add(randBuff.ToString("x8"));
randBuff = Loaded_DLL.Extension.ReadUInt32(offset)
}
}
然而,根据你的描述,我不确定while循环是否正确,目前只要读取的值是844705就会继续查看....所以列表框中的所有值都是相同的。我很兴奋,也许你想继续搜索,直到找到价值......然后你就会用....
while (randBuff != value)
但是我不太确定你的意图。