群里有人发了个淘宝店铺监控器,主要功能就是如果有淘宝的买家访问了你的店铺,就会自动提示你,然后你就可以和买家交流了。
想法非常不错,确实为卖家着想,软件的主要原理是利用了淘宝的个人空间会自动统计最新访问淘友,把个人空间的地址放到店铺说明里做图片引用,这样淘友的访问就会被个人空间记录,而软件则不断访问个人空间。
经过试用,有些小问题就是,对个人空间地址的采集,软件没有处理好,如果用户换了模板就采集不到个人空间地址。
还有就是用户如果没有写个人空间,则显然采集不到访问记录。
最后来说说破解,软件使用网站验证,所以破解方法一是可以使用本地建一个网页,然后在etc的hosts文件修改域名IP地址为127.0.0.1。看看验证的过程吧:
private void loginBT_Click(object sender, EventArgs e)
{
string str = this.usernameTB.Text.Trim();
string str2 = this.passwordTB.Text.Trim();
string str3 = this.CPUidTB.Text.Trim();
string attribute = "";
string str5 = "";
string str6 = "";
string str7 = "";
XmlTextReader reader = new XmlTextReader("http://www.****soft.cn/cert/LS002/" + str + ".xml");
try
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.LocalName.Equals("UserName"))
{
attribute = reader.GetAttribute(0);
}
if (reader.LocalName.Equals("PassWord"))
{
str5 = reader.GetAttribute(0);
}
if (reader.LocalName.Equals("BindCode"))
{
str6 = reader.GetAttribute(0);
}
if (reader.LocalName.Equals("State"))
{
str7 = reader.GetAttribute(0);
}
}
}
if (((str == attribute) && (str2 == str5)) && ((str3 == str6) && (str7 == "1")))
{
Program.type = "zhengshi";
new MainFrm(this).Show();
base.Visible = false;
}
else if (((str == attribute) && (str2 == str5)) && ((str3 == str6) && (str7 == "0")))
{
Program.type = "test";
new MainFrm(this).Show();
base.Visible = false;
}
else
{
MessageBox.Show("用户验证失败", "提示");
}
}
catch (Exception)
{
MessageBox.Show("用户验证失败", "提示");
}
}
很显然只要建个用户名.xls
破解方法二:自己建个c#程序,然后引用他的类,重新new一个界面出来,就绕过了验证。
然后编译出exe文件和原来的程序放在一起就可以了
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using TaoBaoMonitor;
namespace taobao
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
TaoBaoMonitor.MainFrm f1;
TaoBaoMonitor.LoFrm flog = new LoFrm();
f1 = new MainFrm(flog );
f1.Show();
}
private void label2_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("IEXPLORE.EXE","http://www.yueyong.net");
}
}
}
int rowInt;
int[] deleN = new int[20];
string tmpstr;
tmpstr = “一共有{0}行选中”;
rowInt = dataGridView1.SelectedRows.Count;
tmpstr = String.Format(tmpstr, rowInt);
for (int i = 0; i < rowInt; i++)
{
deleN[i] = dataGridView1.SelectedRows[i].Index;
tmpstr = tmpstr + String.Format(”\n行:{0}”, dataGridView1.SelectedRows[i].Index);
}
tmpstr = tmpstr + “\n确定删除吗?”;
DialogResult re = MessageBox.Show(tmpstr, this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if ((int)re != 6) return; //确实是否删除
for (int i = 0; i < rowInt; i++)
{
this.cellTestDataSet2.TH_PartInfo.Rows[deleN[i]].Delete();
}
非常奇怪,删除多行会出错
FD6Fh 7E->eb 由JLE改成JMP 附近指令0064568bf17e 在624版中便宜位置为FB62H
40FD8B 7E->eb 由JLE改成JMP
0040FD6D |. 8BF1 MOV ESI,ECX
0040FD6F |. 7E 0D JLE SHORT VoipSwit.0040FD7E
0040FD71 |. 33C0 XOR EAX,EAX
0040FD73 |. 50 PUSH EAX
0040FD74 |. 50 PUSH EAX
0040FD75 |. 50 PUSH EAX
0040FD76 |. 50 PUSH EAX
0040FD77 |. 68 90895100 PUSH VoipSwit.00518990 ; ASCII "Demo version !!!. Cannot make more calls."
0040FD7C |. EB 1A JMP SHORT VoipSwit.0040FD98
0040FD7E |> FF05 C8895800 INC DWORD PTR DS:[5889C8]
0040FD84 |. 833D C8895800 05 CMP DWORD PTR DS:[5889C8],5
0040FD8B |. 7E 1B JLE SHORT VoipSwit.0040FDA8
0040FD8D |. 33C0 XOR EAX,EAX
0040FD8F |. 50 PUSH EAX
0040FD90 |. 50 PUSH EAX
0040FD91 |. 50 PUSH EAX
0040FD92 |. 50 PUSH EAX
0040FD93 |. 68 58895100 PUSH VoipSwit.00518958 ; ASCII "Demo version !!!. Cannot make more concurrent calls."
0040FD98 |> 6A FF PUSH -1
0040FD9A |. B9 08775800 MOV ECX,VoipSwit.00587708
0040FD9F |. E8 A4110200 CALL VoipSwit.00430F48
0040FDA4 |. 33C0 XOR EAX,EAX
0040FDA6 |. EB 61 JMP SHORT VoipSwit.0040FE09
40A38处 68c42b52-》e99800
0068c42b5200
00440A32 |. FF15 E8645100 CALL DWORD PTR DS:[<&MFC71.#310_??0?$CSt>; MFC71.7C173199
00440A38 |. 68 C42B5200 PUSH VoipSwit.00522BC4 ; ASCII "Demo version!!! Cannot make more than "
00440A3D |. 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20]
00440A40 |. C645 FC 01 MOV BYTE PTR SS:[EBP-4],1
改动之后
00440A32 . FF15 E8645100 CALL DWORD PTR DS:[<&MFC71.#310_??0?$CSt>; MFC71.7C173199
00440A38 . E9 98000000 JMP VoipSwit.00440AD5
00440A3D . 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20]
00440A40 . C645 FC 01 MOV BYTE PTR SS:[EBP-4],1
00440AC7 . 68 802B5200 PUSH VoipSwit.00522B80 ; ASCII " concurrent calls."
00440ACC . 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20]
00440ACF . FF15 E4645100 CALL DWORD PTR DS:[<&MFC71.#911_??Y?$CSt>; MFC71.7C14E587
00440AD5 > 53 PUSH EBX
00440AD6 . 53 PUSH EBX
00440AD7 . 53 PUSH EBX
00440AD8 . 53 PUSH EBX
00440AD9 . 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20]
00440ADC . FF15 C8645100 CALL DWORD PTR DS:[<&MFC71.#876_??B?$CSi>; MFC71.7C158BCD
00440AE2 . 50 PUSH EAX
00440AE3 . 6A FF PUSH -1
00440AE5 . 8BCE MOV ECX,ESI
00440AE7 . E8 5C04FFFF CALL VoipSwit.00430F48
00440AEC . 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20]
00440AEF . 885D FC MOV BYTE PTR SS:[EBP-4],BL
00440AF2 . FF15 C4645100 CALL DWORD PTR DS:[<&MFC71.#578_??1?$CSt>; MFC71.7C1771B1
00440AF8 . 8B4D DC MOV ECX,DWORD PTR SS:[EBP-24]
00440AFB . E8 25D9FFFF CALL VoipSwit.0043E425
00440B00 . 8D4D D8 LEA ECX,DWORD PTR SS:[EBP-28]
00440B03 . FF15 C4645100 CALL DWORD PTR DS:[<&MFC71.#578_??1?$CSt>; MFC71.7C1771B1
00440B09 > 5E POP ESI
00440B0A > 5F POP EDI
00440B0B > 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C]
00440B0E . 64:890D 00000>MOV DWORD PTR FS:[0],ECX
00440B15 . 8B4D F0 MOV ECX,DWORD PTR SS:[EBP-10]
00440B18 . 5B POP EBX
00440B19 . E8 E2790B00 CALL VoipSwit.004F8500