|
[原创]休闲麻将3.4版本破解--Ollydbg挑战P-CODE程序实战篇
破解绝对是独立完成 如果之前有看到同类的文章 我也不会发布了。。。谢谢指出问题。 |
|
[讨论][求助]编写好算法注册机后怎么发布?
汗 我是说为什么我们可以去网站下载到别人破解的软件? 我想跟他们一样呗。。。这都不行啊。。。 |
|
[原创]小试甲壳
不是很懂!关于这些脚本。脚步是怎么写出来的啊?如何分析脚本啊?楼主可以做个教程说说吗?支持下。。。。 |
|
[求助]如果是别人自己写的壳怎么破解???
脱壳不是很了解,不过你注意终结前人的几种方法 1.单步跟踪 2.ESP定律 3.内存断点 4.最后一次异常法 5.自动跟踪的 6.SFX方法 其他的有点不记得了,不过这几种是用的比较多的。 脱壳不用太计较,就算顶尖级高手又可能也脱不了一些壳呢。 循循渐进,让自己更兴趣这个破解就行了。不必太在意输赢。 |
|
[原创]休闲麻将3.4版本破解--Ollydbg挑战P-CODE程序实战篇
这个破解目标绝对值得大家去试试,别看我写的简单。此中苦乐还需要大家去体会啊。。。 |
|
[原创]休闲麻将3.4版本破解--Ollydbg挑战P-CODE程序实战篇
各位版主大大 这些代码都是俺一点一点写出来的啊 没有功劳也有苦劳啊 给个邀请码吧。。。 |
|
[求助]为什么我脱壳的程序总是无法运行。可以看到进程闪过,可是又没错误提示。。
这个很难说,不过最大可能应该是你的IAT指针没有抓取完整造成的。 1:没有找到完整的输入表,则需要手动查找。 2:没有修复完全。试着用等级1,等级3修复。仍然不行,试着去找下资料。 介绍我看到的一个方法(IAT被加密了),调试未脱壳程序到达OEP附近找到输入表地址。 然后来到地址处,下硬件写入断点,讲断点处上下两个call(自己试着调试下,未必全部是这样)nop掉 然后ctrl+G来到OEP,下断点,F9运行到此处。再脱壳修复下指针应该就可以了。 |
|
[原创]休闲麻将3.4版本破解--Ollydbg挑战P-CODE程序实战篇
算法分析在本人另一篇原创文章中已经阐述此处不再啰嗦。没看的朋友可以看下: http://bbs.pediy.com/showthread.php?t=96041(破解休闲麻将3.4版本 --Ollydbg挑战P-CODE程序实战篇) 这是本人学破解两个多月来第一次编写算法注册机,虽然不怎么样,但是也应该算是 完成品吧,使用的语言8086汇编语言。⊙﹏⊙b汗,其他语言不会。。。。 最后希望看雪论坛能给我个邀请码。 算法注册机使用说明: 用户需在程序中按要求输入注册信息 字符串规则:zjm+机器码的后七位+用户名 注意:用户名须大于2位,超过7位取后七位 例如:你的机器码为:3148313222,你想注册的用户名为:search 那么你应该输入:zjm8313222search 输完之后按回车即可! 8086汇编语言编写的算法注册机源代码: ;****************************************************** ;程序:休闲麻将3.4版本算法注册机 ;作者:search ;程序由8086汇编语言编写 ;日期:2008-8-19日凌晨 ;****************************************************** data segment head db " Please input the 12-17 bit character string!!!",0ah,0dh db " After finish ,press the 'enter' key to continue...",0ah,0dh db 0ah,0dh,"character string :",'$' msg1 db " This character string is less than 12 bit!",'$' msg2 db " This character string is more than 17 bit!", '$' msg3 db " The 10 bit regeist's code is :",'$' bye db " please press any key to quit!!",'$' store db 20 dup (?) regcode db 20 dup (?) data ends code segment assume ds:data,cs:code start: mov si,0 ;si指针赋初值0 mov ax,data mov ds,ax lea dx,head call displays ;调用显示字符串子程序 input: ;开始输入字符串 cmp si,17 ;比较输入的字符串是否大于17位 jle continue_input ;小于等于17位跳转 call enter ;调用回车换行子程序 call enter lea dx, msg2 call displays jmp exit continue_input: mov ah,01h int 21h cmp al,0dh ;判断输入的字符是否回车 je finish_input ;是回车则跳转到输入完成 mov store[si],al ;把输入的字符保存到存储器 inc si jmp input finish_input: mov store[si],24h ;给输入的字符串加$符号 cmp si,12 ;比较输入的字符串是否小于12位 jge right ;大于等于12位跳转 call enter call enter lea dx,msg1 call displays jmp exit right: dec si mov di,si xor si,si xor bx,bx call enter call enter lea dx,msg3 call displays output: xor ax,ax mov al,store[si] ;取一位输入的字符串, cmp al,24h ;比较是否为$ je continue_output ;是则结束 add al,bh ;字符串的ASCII值加上一次运算的商 mov bl,0ah ;把10赋值给bl div bl ;al除以10,商放在al中,余数放在ah中 mov bh,al ;al商送给bh保存 add ah,30h ;ah加上30h,装化为数字的ASCII值 mov regcode[di],ah ;把运算好字符串保存到存储器 dec di inc si jmp output continue_output: ;开始输入正确的注册码 xor di,di finish_output: cmp di,10 ;判断是否输出了10位注册码 jge exit ;大于等于11(10-0+1=11)位时,离开 mov dl,regcode[di] ;把一位注册码传送到dl寄存器中 mov ah,02h ;调用系统2号功能输出注册码 int 21h inc di jmp finish_output exit: ;结束离开 call enter call enter lea dx,bye call displays mov ah,08h ;8号系统功能,输入无回显,起到暂停作用 int 21h mov ah,4ch ;退出Dos int 21h displays proc near ;显示字符串的子程序 mov ah,09h int 21h ret displays endp enter proc near ;显示回车换行子程序 mov dl,0dh mov ah,02h int 21h mov dl,0ah mov ah,02h int 21h ret enter endp code ends end start ;代码结束 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值