逆向技术串讲之脱壳

2020-01-04  本文已影响0人  豪爵吸金ing

自己写了一个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步,即可脱壳

  1. 运行你的程序,比如本文Demo 进程名为MyODTest.exe。
  2. 打开Ollydbg,菜单栏-》文件-》附加,然后找到MyODTest.exe,双击打开。
  3. 菜单栏》视图》可执行模块(也可直接快捷键ALT+E),选择名称为MyODTest的主模块双击打开。
  4. 主界面右键》搜索》所有被引用的字符串,找到"用户授权已过期,请购买新的验证码",双击点选,如图:


    搜索》所有被引用的字符串

    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 ;有符号不小于等于则跳转

关注我,更多逆向知识>>>>

上一篇 下一篇

猜你喜欢

热点阅读