惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
H
Help Net Security
小众软件
小众软件
N
Netflix TechBlog - Medium
C
Check Point Blog
量子位
Last Week in AI
Last Week in AI
GbyAI
GbyAI
Martin Fowler
Martin Fowler
M
MIT News - Artificial intelligence
博客园 - 聂微东
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
D
DataBreaches.Net
Project Zero
Project Zero
P
Proofpoint News Feed
T
Threat Research - Cisco Blogs
Security Latest
Security Latest
Cisco Talos Blog
Cisco Talos Blog
Recorded Future
Recorded Future
I
Intezer
L
Lohrmann on Cybersecurity
Cyberwarzone
Cyberwarzone
博客园_首页
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog
P
Palo Alto Networks Blog
V
V2EX
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
The Exploit Database - CXSecurity.com
The Hacker News
The Hacker News
Blog — PlanetScale
Blog — PlanetScale
G
GRAHAM CLULEY
T
The Blog of Author Tim Ferriss
C
Cisco Blogs
The Register - Security
The Register - Security
L
LINUX DO - 热门话题
P
Privacy & Cybersecurity Law Blog
Scott Helme
Scott Helme
F
Full Disclosure
博客园 - 司徒正美
Recent Announcements
Recent Announcements
IT之家
IT之家
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Attack and Defense Labs
Attack and Defense Labs
Cloudbric
Cloudbric
Help Net Security
Help Net Security
The Last Watchdog
The Last Watchdog

博客园 - linwinfan

ZABBIX新功能系列2-通过Webhook调用虚拟化API重启故障主机 ZABBIX新功能系列1-使用Webhook将告警主动推送至第三方系统 xenserver添加静态路由 redmine常见问题 Opennms 问题整理 OpenERP 使用与开发笔记(一) KEEPALIVED 双机自动切换部署备忘 使用flume-ng聚合双活Nginx日志 迁移 VMware 虚拟机到 KVM 安装设置squid3代理更新 iscsiadm基本用法 第4章.计算节点 第三章.可扩展性 第二章 云控制器设计 OpenStack实施管理手册-第一章 部署准备 VMware workstation to exsi openQRM在CENTOS64上的安装部署 在服务器上排除问题的头五分钟(转) u960s指令
某程序反向工程记录
linwinfan · 2011-07-18 · via 博客园 - linwinfan

因为需要,需要解除一个软件的License限制,所以进行一次反向工程试验,特将过程记录下来。

1.分析目标软件编程语言:经过查看安装手册,发现需要安装DOTNET2.0,呵,看来是DOTNET下的系统了。

2.尝试使用Reflector反编译:用:Reflector,加载主程序,提示不是DOTNET格式程式,看来加壳

3.解壳:这时首先得用到NETUNPACKER这个强大而通用的家伙,果然UNPACK一堆DLL与EXE.

4.再次使用Reflector加载上面得到的DLL:使用查找功能,查找提示限制时的字符“过期”,无法找到。同时发现缺少一个关键的DLL(WebGi*.dll(全名略去,呵,软件公司别找上我)

5.因为担心是我使用是未使用到该DLL的功能 ,导致使用NETUNPACK未能解出该DLL,通过反复操作第4步与第5步,还是无法得到。

6.上OLLYICE: 附加调试的程序,在使用该系统时发现一个错误,错误提示:frmBZZHTJ.fixgdb()调用这个方法有问题,看错误是在上面缺少的这个DLL中抛出来。那我们就在内存中查找“frmBZZHTJ”这个字符,果然找到,然后向上查找“MZ”标记(为什么这样,呵,想知道的人找找相关资料),果然找到。备份->另存数据为对应名称的DLL.

7.使用Reflector载入DLL: 哇,果然正确,这是一个超大的DLL,有15M之大,看来NETUNPACK可能是存在某种限制,不能UNPACK这么大的DLL.

8.在上的DLL中查找:”过期“字符串,顺处找到目标,所有有关限制均调用同一函数,呵。只有使用ReflectIL插件重写该函数就可以。

9.可惜没学好MSIL,看了一下不好改,时间急没法立即学习。但难不倒我,用C#写一个我想要的同样函数(呵,其实就是总是返回TRUE),编译后使用同样的工具查看其IL,依次复制过来就搞定啦

10.使用RelectIL另存为新的DLL,复制到目标程序目标下,OK,一切运行正常。