最近闲来无事,因此认真分析了一下sourceinsight这个软件,希望和广大网友一起探讨讨论

一、sourceinsight3.0

没有地址随机化(ASLR)

反静态调试:

目测有反静态分析的工具

在43A105处,分析函数调用异常,43A105内部不存在栈不平衡的现象(入栈前和出栈前要保证堆栈平衡)

其实想绕过这个反静态调试,可以直接把难以分析调用函数的call指令转为强跳转或者改为nop即可,然后即可反编译

反反汇编也能解决,但是可以直接动调:

第一组数很容易看

第二组数要求是6位数:

第三组数:

单纯看汇编我没有跟进那个计算函数,直接看的结果,其实就是将输入的第三组数变为整型(16进制),然后和系统根据第二组数计算的第三组数的结果相比

输入:SI3US-123456-9999

可以看到最后cmp esi,eax的比较

因此如果第二组数输入123456,则第三组数输入92379应该就可以,尝试一下:

具体的计算函数:可以回头写注册机用

二、sourceinsight3.5,其实也是和3.0一样,具有反反编译功能

没有地址随机化(ASLR)

反静态调试:

目测有反静态分析的工具

动调+ida结合

和3000不同的地方是,3000整个验证过程都写在主函数里,3500是封装到最后的一个函数内,反而便于我们直接F5分析了,因为3000验证过程写在主函数里,又因为其反反编译的缘故,我们不便于分析序列号,但是3000虽然主函数不能直接F5,但是其验证过程封装在子函数内,子函数可以直接F5,神不神奇

首先在主函数里找到他封装的验证函数位置:

然后跟进,这个地方有点意思,很多逆向的思路,看他是否匹配ES3US,所以以我们正常的思维,按理说应该让他匹配,但其实这个地方,不应该让他匹配,因为第一组数应该是SI3US,其实这个在输入序列号的时候,已经提示了第一组数是SI3US,真是太搞笑了

因此我们应该跟进449B2C函数

贼坑的地方,第二组序列号他会有过滤机制,比如123456对应的整型:1E240就会被过滤,一开始搞得我不行,但是输入一些不常见的,那个循环判断就能过掉了,所以说平时一开始验证序列号,别拿123456这种,很容易就被过滤掉了

其实sub_4F521E是计算函数,可以写注册机的地方。整个思路就是:拿最后一组数变为整型,然后拿第二组数经过一个计算,和最后一组数比较,然后判定。

输入:SI3US-990831-xxxxx

拿OD看一下:

拿最后一组数11111的整型和计算的结果比较,可以看到结果是00011064,即为:69732

得到一组序列号:SI3US-990831-69732,验证一下:

还有贼坑的地方:

我们到449A4E里面看一下,传参的v5,进去之后其实是a2,这个函数里面的v5不是真正的那个v5,佩服写代码的老哥

拿来写注册机的函数:4F521E

三、sourceinsight4.0

首先先查壳,没有壳

之后先使用一下,捕捉关键语句:the serial number you entered is not correct

直接扔到ida里,准备搜索关键字符串,然后定位

一键F5

从上面的代码可以看出来序列号结构:

SXXX-XXXX-XXXX-XXXX

第一组第二个数必须是数字

S(0-9)(T/B/S/U)X-X(R/G/D/F)XX-XXXX-XXXX

为了能返回result=1,我们需要跟进sub_445DD0函数内,看一下怎么保证这个函数能够返回数值0

然后我们继续跟进sub_444820

因此能够得出:

每组第一位必须是字符,这样可以保证直接过掉

sub_445D00过掉之后,我们继续看,最后一组数根据前三组计算得到

sub_50A560是根据前三组数计算最后一组数的函数,然后判断是否相等,因此要保证相等,就跟进sub_50A560函数看,然后根据综上的分析,可以编写注册机

不编写注册机,根据前几位的特征,我们可以直接用OD拿出来看最后一组数

先来一组个人用例,然后在OD里跟调

得到最后四位YZJU,然后重载source insight看,成功绕过

四、sourceinsight最新版

和sourceinsight4版本,主要区别是对于每组数首字节的判断

因为原来的版本,sub_445DD0函数的意义不大(开发者自己的问题?逗乐了)

目测对于sourceinsight4105版本,不用限制首字符是字母,可以拿OD跟踪尝试一下

我们测试序列号:

S4SV-UFWT-ZPRA-1111

一样,可以拿出最后一组数的结果,S4SV

对于注册机的编写,两版程序相同

这就是以上四个版本我的分析过程,可以说收获很多,也希望网友们能一起探讨讨论!

sourceinsight四种版本序列号绕过相关推荐

  1. Curved UI - VR Ready Solution To Bend Warp Your Canvas 1.7,1.8,2.2,2.3 四种版本压缩包(Unity UGUI曲面插件)

    Curved UI - VR Ready Solution To Bend Warp Your Canvas 1.7,1.8,2.2,2.3 四种版本压缩包(Unity UGUI曲面插件) 可以兼容V ...

  2. htc one android版本,四种版本三种双卡 行货版HTC One发布

    四种版本三种双卡 行货版HTC One真机试玩 和国际版HTC One不同的是,中国大陆的用户会意外的发现,行货版的HTC One不仅支持中国的三大3G网络,而且均增加了双卡双待的功能,当然还有一个支 ...

  3. 怎么升级Android Studio版本,Android Studio更新的四种版本介绍

    Android Studio在更新版本时,会有让选择升级源,如下: 默认情况下选择的是Stable Channel 这几个Channel的版本是有一些差异的: 在Android Studio下载官网上 ...

  4. 台湾积体电路制造公司(简称为台积电(TSMC))的28nm LP、HPM、HPC、HPC+四种不同处理器工艺版本的区别?

    台湾积体电路制造公司(简称为台积电(TSMC))的28nm LP.HPM.HPC.HPC+四种不同处理器工艺版本的区别? 说起处理器工艺,相信大家都多多少少知道一些,可同样的一种工艺,也会有很多不同版 ...

  5. 绕过安卓SSL验证证书的四种方式

    在此之前,移动端应用程序会直接忽略掉所有的SSL错误,并允许攻击者拦截和修改自己的通信流量.但是现在,很多热门应用程序至少会检查证书链是否是一个有效可信任的证书机构(CA)颁发的. 作为一名渗透测试人 ...

  6. python交互式窗口怎么换行_Python多版本情况下四种快速进入交互式命令行的操作技巧

    原标题:Python多版本情况下四种快速进入交互式命令行的操作技巧 因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇 ...

  7. 查看mysql版本的四种方法

    2019独角兽企业重金招聘Python工程师标准>>> 查看mysql版本的四种方法 1:在终端下:mysql -V. 以下是代码片段: [shengting@login ~]$ m ...

  8. 如何打开python的交互窗口-Python多版本情况下四种快速进入交互式命令行的操作技巧...

    原标题:Python多版本情况下四种快速进入交互式命令行的操作技巧 因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇 ...

  9. 查看mysql数据库版本_MySQL数据库之查看MySQL版本的四种方法

    本文主要向大家介绍了MySQL数据库之查看MySQL版本的四种方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1.终端下直接使用mysql命令 [root@localhos ...

最新文章

  1. Java 8 开发的 4 大顶级技巧,你都知道吗 ?
  2. java--IO流(详)
  3. 浙大开源 | VID-Fusion: 用于精确外力估计的鲁棒视觉惯性动力学里程计
  4. 第二课.Python编程基础(一)
  5. js修改style中某个属性_JS 和 CSS 交互的 5 种方法
  6. RedirectToAction()转移方式及参数传递
  7. python如何卸载模块cmd_使用cmd python模块时,如何使程序正常崩溃?
  8. SilverLight小游戏
  9. Spark WordCount
  10. 百度大牛总结的十条Python面试题
  11. 计算机专业使用的工具,电子投标工具使用手册计算机软件及应用it计算机专业资料.doc...
  12. Linux四剑客详解——find
  13. 复制文字到剪贴板的几种方法
  14. 大数据培训(第三季)——Linux基础-徐培成-专题视频课程
  15. [程序员学英语]英语句子结构
  16. 易基因|深度综述:m6A RNA甲基化在大脑发育和疾病中的表观转录调控作用
  17. 查看苹果审核反馈的crash日志/崩溃日志
  18. 我想健康富有聪明怎么导告_富有成效的远程工作(当您的心理健康说“否”时)
  19. 二本机械毕业2年,从外包ETL到大厂数据开发,月薪13K到年薪40W
  20. Roy Li的学习和成长自传

热门文章

  1. Visual Studio 2010 所有版本 中文 英文 下载,激活,序列号,注册码,下载地址
  2. 19 行代码能搭建一个女朋友?!
  3. HTML入门练习篇(一)(二):基础功能
  4. hive 十六进制转十进制_Hive使用十六进制分隔符异常分析
  5. 燕京理工学院计算机答辩难吗,燕京理工学院范瑞雯全国创新体验竞赛获一等奖...
  6. python 添加半透明水印_超简单Python安全批量加水印教程!
  7. SpringMVC开发流程
  8. 登录之后跳转到登录之前的页面 going to previous page after login
  9. eclipse 卡在refreshing workspace
  10. 中科招商李海涛:理财经理为什么难?