|
[转帖]Exeinfo PE 0.0.4.9
Exeinfo PE 0.0.5.0
|
|
[转帖] VMProtect.3.2 (Build 976) KeyGen by:Xjun
感谢 StriveXjun、sinkay、Alfik |
|
[分享]Hidden Start - NTWind Software
jgs 大神玩算法,小白玩玩爆破,爆破找了2个玩法,1是给全局标志赋值(about无注册名),2是将注册名和序列号分别变换后作比较的5个字节,写入序列号变换后比较处,达到注册目的(about有注册名)。这是小 ...还要爆破 hstart.exe 或 hstart64.exe,软件才能用! |
|
|
|
[求助]如何patch固定机器码呢?
要固定这个机器码,很简单:
1. 将安装文件夹中"acc"和"reg"文件夹里的两个diskno.exe程序改名,或备份后删除;
2. 修改"acc\SYSTEM.INI"文件里disk节serialno的内容为你想固定的机器码;
[disk] serialno=544455379
3. 运行主程序,“注册”,输入你的注册码。
相关信息
主程序和其他功能模块调用kernel32.CreateProcessA带参数运行diskno.exe,获得本机硬盘序列号(写到或从SYSTEM.INI读取):
diskno.exe "C:\Program Files\金禾电子\金禾税务师事务所代理记账软件\acc\system.ini"
它会调用kernel32.GetVolumeInformationA取卷序列号。这里第一个参数:
string drivers if drivers = "C" then drivers = "D" else drivers = "C" end if
代码这样写是有问题的,如果软件安装在C:盘,又没有D:逻辑卷的话,diskno.exe就会失败,报"硬盘系列号没有获得,请和软件供应商联系!"。
所以serialno实际上是逻辑卷的序列号(Volume Serial Number),544455379对应C:盘或D:盘的卷序列号:2073-BAD3。
注册部分,用一个自定义函数计算本机注册码,然后与输入的进行字符串比较:
本机注册码 = 函数(硬盘序列号, 版本, 帐套数, 每帐套户数, 可结帐月份数);
我按此函数用C写出的keygen与它的结果有时不一致,仔细检查发现它这个函数里又有一个错误!
("544455379", 1, 300, 300, 12)对应的注册码应该是:FMKWKBFAMAVD。
PowerBuilder的代码没有秘密可言,估计现在也基本没人用它写程序了,但调试PCODE的程序需要技巧和经验。
最后于 2018-5-25 17:00
被MistHill编辑
,原因: 排版出现多余tag
|
|
[原创]vmp3.0.9全保护拆分解析
cat喵 谢谢,说的好详细。想问下vCALL在3.x版本下不止一个,但是一直没明白为啥这个检测基本上检测函数的调用在一个地方就能过,我是把所有的保护都有勾选的? 你这个样本是有点特殊: API调用总是在这个vCall上;通常不应该“固定”在某个vCall上。 我在“一个反调试有特色的CrackMe”里提到看过的两个VMP3的样本v301和v309,外壳部分(vmp1)都各有11个vCall,按入口地址依次标记为vCall1~vCallB。 从壳的入口到第一个vGetHash(v301是一个GetHash函数)之间,所有vCall的记录都为12次,但不是总在同一个vCall上: v301样本 1) vCall6 kernel32.LocalAlloc ; size 0xA4; for anti data! 2) vCallA kernel32.GetCurrentProcess 3) vCall5 kernel32.IsDebuggerPresent 4) vCallB kernel32.CheckRemoteDebuggerPresent 5) vCall2 ntdll.ZwQueryInformationProcess ; ProcessDebugPort 6) vCall8 kernel32.GetCurrentThread 7) vCallB ntdll.ZwSetInformationThread 8) vCall4 ntdll.ZwQuerySystemInformation ; SystemDebuggerInfo 9) vCall5 ntdll.ZwQuerySystemInformation ; SystemModuleInfo, get buffer size 10) vCall8 kernel32.LocalAlloc ; alloc buf 11) vCall4 ntdll.ZwQuerySystemInformation ; SystemModuleInfo, query 12) vCall2 kernel32.LocalFree ; free buf v309样本 1) vCall1 kernel32.LocalAlloc ; size 0xA4; for anti data! 2) vCall3 kernel32.GetCurrentProcess 3) vCall4 kernel32.IsDebuggerPresent 4) vCall7 kernel32.CheckRemoteDebuggerPresent 5) vCall4 ntdll.ZwQueryInformationProcess ; ProcessDebugPort 6) vCall4 kernel32.GetCurrentThread 7) vCall7 ntdll.ZwSetInformationThread 8) vCall8 ntdll.ZwQuerySystemInformation ; SystemDebuggerInfo 9) vCall7 ntdll.ZwQuerySystemInformation ; SystemModuleInfo, get buffer size 10) vCall1 kernel32.LocalAlloc ; alloc buf 11) vCall6 ntdll.ZwQuerySystemInformation ; SystemModuleInfo, query 12) vCallA kernel32.LocalFree ; free buf 这两个样本在vmp0段解密后,它的vCall都各多达110个!即壳代码部分VM的handler数要远远少于用户代码保护部分VM的handler。 我对VMP3研究得还不多,也许您可以把样本放上来大家看看。 |
|
[求助]怎样查找VMP加密后程序调用了那些API?
如果那段代码未被VM,还原IAT。 如果代码被VM了,1) VMP2断vRet;2) VMP3断vRet和vCall。
最后于 2018-5-9 10:59
被MistHill编辑
,原因:
|
|
[原创]vmp3.0.9全保护拆分解析
lookzo 栈回硕就能找到call ebx?难道是最新版的没旧版强度大了?Call R32 在vCall里。 VMP3的vCall与VMP2有很大不同,VMP2的vCall只能调用虚拟子程序/函数,VMP3的vCall可以直接调用API,比较方便。感觉VMP3的vCall handler是从Oreans(TMD/WL/CV)“抄”来的! vCall中,解码vEIP一字节为参数个数,然后将vESP(EBP)处的参数依次入栈,最后Call R32完成调用,返回结果EAX保存在[EBP]。 而且VMP3 vCall的入口有好多个,这些vCall handler解码算法也有差异;VMP2时只有一个vCall。 另外,ZwQuerySystemInformation[SystemInformationClass::SystemModuleInformation]取得系统模块列表后,将模块名与解密后的字符串"sice.sys"、"siwvid.sys"、"ntice.sys"、"iceext.sys"和"syser.sys"进行比较,来完成检测。 |
|
[分享]Detours Version 3.0 Build_341 支持x64,arm,arm64
Detours 4.0.1
|
|
[转帖]Scientific.Toolworks.Understand.v4.0.870.Incl.Keygen-AMPED
Scientific.Toolworks.Understand.V5.0.935.x86/x64.Incl.Keygen-AMPED
或者直接从官网下载安装包,用AMPED's Keygen。
|
|
[分享]Hiew 8.63 (31 Jan 2018) Retail
谢谢,@Alfik |
|
[分享]Source Insight 4.0.0096 Patched
有人问破解方法,简单说下。
一.替换公钥 0063F648 ASCII "-----BEGIN PUBLIC KEY-----...",length: 0x1C3 二.更新信息黑名单检查 程序会自动或手动"Check for Updates...",下载更新信息: http://www.sourceinsight.com/pub/v4/release/si4update.siv
重命名为:
Windows XP: "\Documents and Settings\UserName\Local Settings\Application Data\Source Insight\4.0\si4update.dat" Windows 7 and above: "\Users\UserName\AppData\Local\Source Insight\4.0\si4update.dat"这个文件解密后有个BlackList列表,后来我的序列号被加入到这个黑名单中。需要Patch一下,两个地方: 1) 0050E393 85C0 TEST EAX, EAX ==> 0050E393 31C0 XOR EAX, EAX 2) 0050E645 85C0 TEST EAX, EAX ==> 0050E645 31C0 XOR EAX, EAX 三.程序硬编码黑名单检查 后来有同学发现(不记得是谁了,请参阅前面的回复,感谢他们),黑名单还硬编码到程序中进行比对。 这个检查是随机的,以6秒的间隔、10%的概率运行一次。也需要Patch: 0050DF68 76 69 JBE SHORT 0050DFD3 ==> 0050DF68 EB 69 JMP SHORT 0050DFD3
四.在线检查
再后来,它又加入了在线检查。 程序以10分钟的间隔进行连网检查,不过在检查之前它用wininet.InternetGetConnectedState确定是否有网络连接存在。 让它认为网络不可用就行了: 0050F1BB 85C0 TEST EAX, EAX ==> 0050F1BB 31C0 XOR EAX, EAX 除了替换公钥,代码只需要改动4个字节,比较简单。感兴趣的可以对比着自己修改。 |
|
|
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值