sourceinsight四种版本序列号绕过

最近闲来无事,因此认真分析了一下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

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

 

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

  • 18
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 目前最新版本Source Insight是2021.4。Source Insight是一款以代码编辑和代码导航为主的软件开发工具,通过其强大的语法分析和导航功能,可以帮助开发者更高效地浏览和理解源代码。 在最新版本中,Source Insight增加了一些新功能和改进,包括: 1. 新增了对一些新的编程语言的支持,如Rust和Swift,使开发者可以在Source Insight中更方便地编辑和浏览这些语言的源代码。 2. 提供了更快速和准确的语法分析功能,可以更快速地打开和浏览大型代码库。 3. 改进了代码导航功能,增加了更多的导航选项,如快速转到函数定义、变量引用和函数调用等。 4. 新增了一些代码重构的功能,如重命名变量、函数提取和代码折叠等,帮助开发者更轻松地进行代码重构和优化。 5. 提供了更友好的用户界面和更丰富的主题选择,使开发者可以根据自己的喜好来定制Source Insight的外观。 总体来说,Source Insight的最新版本在代码编辑和代码导航方面做了一系列的改进和优化,提供了更强大、更高效的开发工具,帮助开发者更好地理解和管理源代码。 ### 回答2: Source Insight是一款非常受欢迎的源代码编辑器和浏览器工具,它的最新版本Source Insight 4.0。 Source Insight 4.0带来了许多新的功能和改进,使程序员更加高效地编写和浏览源代码。首先,它支持多种常见的编程语言,包括C/C++、Java、Python等,使它成为许多开发者的理想选择。同时,它还提供了强大的代码导航功能,可以轻松地切换和浏览源文件之间的跳转,提高代码阅读和理解的速度。 此外,Source Insight 4.0具有非常强大的代码分析和搜索功能。它可以生成代码的概要视图和层次结构,帮助开发者更好地了解代码的结构和组织。同时,它支持强大的正则表达式搜索功能,可以快速地搜索和定位关键字、变量和函数。这对于开发者来说是一个巨大的时间和工作效率的提升。 除了以上功能,Source Insight 4.0还具有许多其他的实用特性,例如自动完成、语法高亮、代码折叠等。它还支持与其他常用工具的集成,如版本控制系统和编译器。 总之,Source Insight 4.0是一个功能强大且易于使用的源代码编辑器和浏览器工具,它可以帮助开发者更高效地编写、理解和维护源代码。无论是学习编程的初学者还是有丰富经验的专业开发者,Source Insight 4.0都是一个非常有价值的工具。 ### 回答3: Source Insight最新版本Source Insight 4.0。这是一款功能强大的源代码阅读器和代码编辑器,主要用于帮助程序开发人员浏览、分析和编辑源代码。Source Insight 4.0具备直观的用户界面,支持多种编程语言,包括C、C++、C#、Java等。该软件提供了许多实用的功能,如代码自动完成、智能查找、符号浏览、函数调用图和代码拓扑图等。通过这些功能,开发人员可以更方便地理解代码结构和功能,快速定位和修改代码中的问题。Source Insight 4.0还支持对代码的版本控制,如Git和SVN,以及与其他开发工具的集成,如Visual Studio和Eclipse。此外,该软件还提供了一些自定义选项,使用户能够根据自己的喜好和需求进行个性化设置。总体来说,Source Insight 4.0是一款强大、灵活且易于使用的源代码阅读器和编辑器,适用于各种规模的软件开发项目。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值