自己写了一个Qt Demo程序,走起!
void MainWindow::on_pushButton_clicked()
{
QDateTime current_time(QDateTime::currentDateTime());
QDateTime endDate(QDate(2010, 11, 3), QTime(19, 40, 0));
qint64 result =current_time.daysTo(endDate);
qDebug() << "Days from startDate to endDate: " <<result;
if(result<0){
QMessageBox::about(nullptr,"提示","用户授权已过期,请购买新的验证码");
return;
}
//do sth.
}
执行程序,发现使用该功能时,会提示用户授权已过期,怎么办呢,给大家推荐一款神器OD,来大家一起学习脱壳技术,仅做技术交流哦!
OD (Ollydbg)下载地址:http://www.ollydbg.org/download.htm
简单分5步,即可脱壳
- 运行你的程序,比如本文Demo 进程名为MyODTest.exe。
- 打开Ollydbg,菜单栏-》文件-》附加,然后找到MyODTest.exe,双击打开。
- 菜单栏》视图》可执行模块(也可直接快捷键ALT+E),选择名称为MyODTest的主模块双击打开。
-
主界面右键》搜索》所有被引用的字符串,找到"用户授权已过期,请购买新的验证码",双击点选,如图:
搜索》所有被引用的字符串
5.如下图,从关键字符串处向上查找,找到JG,JL,JAE等关键词,尝试将它改为JNG\JNL\JNAE等。
image.png
比如将JG选中,右键选择汇编,将JG修改为JNG。然后右键编辑》复制所有修改到可执行文件,然后会弹出MyODTest.exe文件窗体,将其关闭,会提示另存为XXXX.exe,然后关闭程序,执行XXXX.exe,程序即可正常运行。
OD的一些基本知识
JE ;等于则跳转
JNE ;不等于则跳转
JZ ;为 0 则跳转
JNZ ;不为 0 则跳转
JS ;为负则跳转
JNS ;不为负则跳转
JC ;进位则跳转
JNC ;不进位则跳转
JO ;溢出则跳转
JNO ;不溢出则跳转
JA ;无符号大于则跳转
JNA ;无符号不大于则跳转
JAE ;无符号大于等于则跳转
JNAE ;无符号不大于等于则跳转
JG ;有符号大于则跳转
JNG ;有符号不大于则跳转
JGE ;有符号大于等于则跳转
JNGE ;有符号不大于等于则跳转
JB ;无符号小于则跳转
JNB ;无符号不小于则跳转
JBE ;无符号小于等于则跳转
JNBE ;无符号不小于等于则跳转
JL ;有符号小于则跳转
JNL ;有符号不小于则跳转
JLE ;有符号小于等于则跳转
JNLE ;有符号不小于等于则跳转
关注我,更多逆向知识>>>>
网友评论