160 - 38 CyberBlade.2

环境
Windows xp sp3

工具
1.VBExplorer
2.ollydbg

查壳
OD载入往上翻可以看出是vb程序,看到

00401042   .- FF25 60104100 jmp dword ptr ds:[<&MSVBVM50.MethCallEngine>]              ;  MSVBVM50.MethCallEngine

可以知道是p-code的了
测试

OD载入后搜字符串是搜不到的东西了。
参考
《使用OllyDbg从零开始Cracking》第29和30章关于p-code的内容之后就可以分析出来了。

0040E393前面的是一些对输入内容长度格式等判断
0040E393 循环开始
0040E3A6 读入name
0040E3B8 name入栈
0040E3BB 将name从str变成variant类型
0040E3BE 这个是指向上面的variant的指针
0040E3C1 这是取第一个字符函数
0040E3C6 将上面的函数计算出的结果进栈
0040E3C9
0040E3CD 将刚刚进栈的字符转成数值
0040E3D2 将刚刚得到的数值保存起来
0040E3D5 将得到的数值转成10进制然后再转为字符串
0040E3D9 将得到的字符串转回variant
0040E3EF 跳回去0040E3930040E3F5 这里是将上面循环得到的字符串入栈
0040E3F8 得到上面入栈字符串的长度
0040E4020x9比较
0040E404 相等就跳到40E425
0040E407 将上面循环得到的字符串入栈
0040E40A push了一个圆周率
0040E416 字符串转为数值除以3.141592654
0040E41A 将结果入栈
0040E422  jmp 0040E3F50040E425 将上面的结果取整入栈
0040E430 将栈中的值转为16进制后再与0x30F85678进行异或运算
0040E434
0040E438 将上面的计算结果入栈
0040E43E 
0040E4410xD8B3入栈
0040E4450040E438处入栈的值减去0xD8B3,并将结果入栈
0040E449 
0040E44D 
0040E452 
0040E455 0040E45A  开始for循环 
0040E460  
0040E463
0040E464  
0040E46D  读取serial
0040E472  serial入栈
0040E475
0040E478
0040E47A
0040E47D
0040E480  这里push了一个值
0040E481  和输入的serial比较是否相同
0040E483
0040E486
0040E489  相同则跳到0040E48C
0040E48C 
0040E48F  跳回循环0040E4A2 读入serial
0040E4A7
0040E4AA 将字符串转为variant
0040E4AD 将上面的计算的值存了进来
0040E4B0 用字符串的字面值减去上面计算的值
0040E4B4 
0040E4B7 
0040E4C1 读入name
0040E4C6 
0040E4C9 计算name长度
0040E4CF 判断是否相等,不相等就为0
0040E4DE 如果上面判断结果为0就跳到错误消息框,

还是和Native-code代码一样,在分析算法中还是存在许多东西可以跳过的。
指令的位置可以用VBExplorer反编译出来。
然后用OD动态调试观察执行细节就行了

总结起来就是:
将name中每一个字符转成ascii值。
如:abcdefg
变成:979899100101102103

再判断这个值长度是否大于0x9
如果是就除以3.141592654
重复直到长度不大于0x9
于是就有:351021547

再将结果与0x30F85678异或
变成:605323155

减去0xD8B3,
变成:605267680

最后加上name的长度7:
变成:605267687

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

160 - 39 damn

环境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查壳 OD加载就知道有壳了&#xff0c;可以esp定律直接脱掉 exeinfoPE查壳&#xff1a; 测试 点击LOCKED图片会弹出消息框&#xff0c;Register注册按钮无法点击&#xff01; 猜测Register按钮会在输入正确的nam…

[转载] Python3网络爬虫

这篇文章描述了使用python开发最小的网络爬虫的方法和步骤, 以及如何用fiddler来探索浏览器的行为来帮助爬虫的开发. http://www.yiibai.com/python/python3-webbug-series4.html 转载于:https://www.cnblogs.com/zhengran/p/4177944.html

不适用第三方变量,交换两个数

异或实现&#xff1a; void foo(int *a,int *b){ *a*a^*b; *b*a^*b; *a*a^*b;}void main(){int a1,b2; foo(&a,&b); printf("%d.%d.%d",a,b); } 或者下例&#xff1a; void foo(int *a,int *b){ *a*a*b; *b*a-*b; *a*a-*b;}void main(){int a1,b2,c3; foo(&a…

Android系统原理与源码分析(1):利用Java反射技术阻止通过按钮关闭对话框

原文出处&#xff1a;博主宇宙的极客http://www.cnblogs.com/nokiaguy/archive/2010/07/27/1786482.html 众所周知&#xff0c;AlertDialog类用于显示对话框。关于AlertDialog的基本用法在这里就不详细介绍了&#xff0c;网上有很多&#xff0c;读者可以自己搜索。那么本文要介…

160 - 40 DaNiEl-RJ.1

环境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查壳 无壳Delphi程序 测试&#xff1a; 按照说明点到这个注册窗口。 OD载入搜字符串&#xff0c;直接可以定位到这里 0042D4A8 /. 55 push ebp 0042D4A9 |. 8BEC mov ebp,esp 0042D4…

IOS详解TableView——选项抽屉(天猫商品列表)

在之前的有篇文章讲述了利用HeaderView来写类似QQ好友列表的表视图。 这里写的天猫抽屉其实也可以用该方法实现&#xff0c;具体到细节每个人也有所不同。这里采用的是点击cell对cell进行运动处理以展开“抽屉”。 最后完成的效果大概是这个样子。 主要的环节&#xff1a; 点击…

Unicode与JavaScript详解 [很好的文章转]

上个月&#xff0c;我做了一次分享&#xff0c;详细介绍了Unicode字符集&#xff0c;以及JavaScript语言对它的支持。下面就是这次分享的讲稿。 一、Unicode是什么&#xff1f; Unicode源于一个很简单的想法&#xff1a;将全世界所有的字符包含在一个集合里&#xff0c;计算机只…

编辑器使用说明

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来&#xff0c;用它写博客&#xff0c;将会带来全新的体验哦&#xff1a; Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰…

关于产品的一些思考——百度之百度百科

百度百科最近改版了&#xff0c;发现有些地方不符合一般人的行为习惯。 1.新版本排版 首先应该将摘要&#xff0c;简介&#xff0c;目录什么的放在左侧&#xff0c;而不是右侧&#xff0c;因为我们都是从左到右&#xff0c;从上到下观察事物的&#xff0c;而且百科的东西我们不…

Python3.6 IDLE 使用 multiprocessing.Process 不显示执行函数的打印

要运行的程序&#xff1a; import os from multiprocessing import Process import timedef run_proc(name):print(Child process %s (%s) Running...%(name,os.getpid()))# time.sleep(5)if __name__ __main__:print("Show Start:")print(Parent process %s. % os…

复制控制

复制构造函数、赋值操作符和析构函数总称为复制控制。编译器自动实现这些操作&#xff0c;但类也可以定义自己的版本。 实现复制控制操作最困难的部分&#xff0c;往往在于识别何时需要覆盖默认版本。有一种特别常见的情况需要类定义自己的复制控制成员&#xff1a;类具有指针成…

python Requests登录GitHub

工具&#xff1a; python 3.6 Fiddler4 所需要的库&#xff1a; requests BeautifulSoup 首先抓包&#xff0c;观察登录时需要什么&#xff1a; 这个authenticity_token的值是访问/login后可以获取&#xff0c;值是随机生成的&#xff0c;所以登录前要获取一下。 注…

你必须懂的 T4 模板:深入浅出

示例代码&#xff1a;示例代码__你必须懂的T4模板&#xff1a;浅入深出.rar (一)什么是T4模板&#xff1f; T4&#xff0c;即4个T开头的英文字母组合&#xff1a;Text Template Transformation Toolkit。 T4文本模板&#xff0c;即一种自定义规则的代码生成器。根据业务模型可生…

stdafx.h是什么用处, stdafx.h、stdafx.cpp的作用

http://blog.csdn.net/songkexin/article/details/1750396 stdafx.h头文件的作用 Standard Application Fram Extend没有函数库&#xff0c;只是定义了一些环境参数&#xff0c;使得编译出来的程序能在32位的操作系统环境下运行。Windows和MFC的include文件都非常大&#xff0c…

python3 Connection aborted.', RemoteDisconnected('Remote end closed connection without response'

在写爬虫的时候遇到了问题&#xff0c;网站是asp.net写的 requests.exceptions.ConnectionError: (Connection aborted., RemoteDisconnected(Remote end closed connection without response,)) 于是就抓包分析&#xff0c;发现只要加了’Accept-Language’就好了。。。 A…

id和instancetype的区别

id返回不确定类型的对象&#xff08;也就是任意类型的对象&#xff09;&#xff0c;- (id)arrayWithData;返回的就是不确定类型的对象&#xff0c;如果执行数组的方法&#xff0c; [- (id)arrayWithData objectOfIndex:0]编译时不会报错&#xff0c;但运行时会报错&#xff0c;…

windows下Java 用idea连接MySQL数据库

Java用idea连接数据库特别简单。 首先就是下载好MySQL数据库的驱动程序。 链接&#xff1a;https://dev.mysql.com/downloads/connector/j/ 然后就是选下载版本了&#xff1a; 选个zip格式的嘛。。 下载完后就解压。打开idea&#xff0c;建立个简单的项目 找到这个: …

7-2

#include<stdio.h> int main(void) {int i;int fib[10]{1,1};for(i2;i<10;i)fib[i]fib[i-1]fib[i-2];for(i0;i<10;i){printf("%6d",fib[i]);if((i1)%50)printf("\n");}return 0; } 转载于:https://www.cnblogs.com/liruijia199531/p/3357481.h…

岁月悄然前行,没有停留的痕迹

岁月悄然前行&#xff0c;没有停留的痕迹。月落乌啼&#xff0c;总是千年的风霜;涛声依旧&#xff0c;不见当初的夜晚。走过岁月的痕迹&#xff0c;已是物是人非。我们在岁月的轨道上行走&#xff0c;不要给岁月太多的装饰&#xff0c;不要给岁月太多的言语。给它我们随着时光追…

160 - 41 defiler.1.exe

环境&#xff1a; Windows xp sp3 工具&#xff1a; Ollydbg stud_PE LoadPE 先分析一下。 这次的程序要求更改了&#xff0c;变成了这个&#xff1a; defilers reversme no.1 -----------------------The task of this little, lame reverseme is to add some code to…