|
什么壳最难脱?
delphi 7.0史上最强的壳,至今无人能脱,期待高手出马, |
|
|
|
[分享]svkp 1.xx 脱壳
最初由 bestchao 发布 不会吧,在我这里能断下来,我不知道是什么原因,可能不同的程序跳的地址不一样,你可以用运行跟踪直到程序到达动态内存区。 建议你先用我的这个程序先练习,领会精神以后再试别的程序。 |
|
[分享]svkp 1.xx 脱壳
最初由 bestchao 发布 第一个问题,这样的脚本很容易写呀,我觉得没必要都列出来: los: find eip,#813B????????0F84# //特殊函数判断 cmp $RESULT,0 je hoho add $RESULT,6 log $RESULT mov [$RESULT],#909090909090# jmp los hoho: ret 第二个问题: 5555850处明显是那一大段比较代码的出口呀. 第三个问题 搜索命令序列:mov [edi], eax ;popad 搜不到?那你试试搜索二进制字符:890761看看。 |
|
小弟脱一Armadillo壳后,软件能正常运行,功能失效了。求助
看不出来,我一般用最笨的方法,拿没脱壳的和脱了壳的进行运行期比较,看到底是在什么地方出现差异的. |
|
|
|
[求助]SVKP 1.3x 特殊API的查找
最初由 lingyu 发布 看看loveboom的这段脚本就知道了,对于特殊函数只要找到关键判断的地方绕开就行了 ..... find eip,#EB02CD2058EB020FE88907# //find iat magic jmp mov addr,$RESULT asm addr,"pop eax" add addr,1 mov [addr],#8b44241C# //replace to "mov eax,DS:[ESP+1C]" action:fix import functions lblcheck: find eip,#813B706586B1EB03C7848B0F84# //fix API function "GetModuleHandleA" mov addr,$RESULT cmp addr,0 jne lblfix0 find eip,#813BC5B1662DEB03C784E80F84# //Fix API function "GetCommandLineA" mov addr,$RESULT cmp addr,0 jne lblfix0 find eip,#813BCC971025EB03C784E90F84# //Fix API function "ExitProcess" mov addr,$RESULT cmp addr,0 jne lblfix0 find eip,#813BA41A86D0EB03C7849A0F84# //Fix API function "GetCurrentProcess mov addr,$RESULT cmp addr,0 jne lblfix0 find eip,#813B4A7687DFEB02CD200F84# //Fix API function "GetVersionExA" mov addr,$RESULT cmp addr,0 jne lblfix1 find eip,#813B0F1ACF4CEB02CD200F84# //Fix API function "GetVersion" mov addr,$RESULT ..... lblfix0: add addr,B mov [addr],#EB04# jmp lblcheck lblfix1: mov addr,$RESULT add addr,A mov [addr],#EB04# jmp lblcheck |
|
[原创]PECompact 2.x 脱壳脚本
为什么都喜欢写一些不"干净"的脚本呢?总要留一些多余的断点 |
|
[分享]exeshield 3.8脱壳
exeshield 3.8脱壳脚本 #log sto sto var a mov a,esp bphws a,"r" lop: esto var b mov b,eip mov b, and b,FFFF cmp b,E0FF //jmp eax jne lop bphwc a sto msgyn "是否主程序" //主程序要进行特殊函数处理,exitprocess,getcommandlinea/w cmp $RESULT,0 je lot sto sto var a mov a,esp bphws a,"r" var cb gmi eip,CODEBASE cmp $RESULT,0 je err mov cb,$RESULT lis: find cb,#85C075028BC2# //test eax,eax;jnz ;mov eax,edx cmp $RESULT,0 je hoho mov cb,$RESULT add cb,2 mov [cb],#9090# //把所有符合条件的jnz都nop掉 log cb jmp lis hoho: gpa "GetProcAddress","kernel32.dll" cmp $RESULT,0 je err bp $RESULT //下getprocaddress断点 esto bc $RESULT rtu rtr sto mov [eip],#EB# //getprocaddress单独处理,绕开加密 esto bphwc a sto sto sto lot: var c mov c,eip mov c,[c] and c,FF cmp c,55 je out sto sto var a mov a,esp bphws a,"r" esto bphwc a sto sto sto jmp lot out: msg "如果是主程序则脱壳完毕" mov a,eip sub a,6000 find a,#85C0762C# //anti magic jmp(findwind) cmp $RESULT,0 je end add $RESULT,2 mov [$RESULT],#EB# bp $RESULT esto bc eip gpa "CreateProcessA","kernel32.dll" cmp $RESULT,0 je err bp $RESULT esto msg "注意堆栈中这个.tmp文件复制出来" bc $RESULT gpa "VirtualProtectEx","kernel32.dll" cmp $RESULT,0 je err bp $RESULT los: esto var a mov a,esp add a,4 mov a,[a] cmp a,FFFFFFFF je los bc $RESULT var target var size mov a,esp add a,8 mov target,[a] add a,4 mov size,[a] log target log size gpa "WriteProcessMemory","kernel32.dll" cmp $RESULT,0 je err bp $RESULT esto bc $RESULT mov a,esp add a,C mov a,[a] //dm a,size,"c:\pase.bin" //dm有BUG var start mov start,a log start var end mov end,a add end,size log end msg "自己查看日志,将指定区域复制到.tmp文件中" msg "将start到end的那段内存复制到.tmp文件中虚拟地址从target开始的区域中" end: ret err: msg "Error" ret |
|
[原创]007通用脱壳法
最初由 bestchao 发布 我只是说笑的,因为OEP处的代码开始时没有解压出来,我的方法根本是不可行的。 chinadev他也没说你错,他只是说他的方法更简单而已。 |
|
|
|
|
|
[求助]enter指令是什么功能?
在网上搜到一段解释,结果越看越糊涂: enter N,L N是分配的局部变量区的尺寸,L是过程嵌套级(0~31)。 相当于: push ebp mov ebp,esp sub esp,(L - 1) * 4 ; L > 0才有这步操作,用来存储嵌套的L - 1个子过程的栈框架指针(注意是指针) push ebp ; 当前过程的栈框架指针 sub esp,N |
|
[求助]enter指令是什么功能?
回答这么快啊 谢谢您 根据您的提示我测试了一下, 在执行enter 4,0之前esp=13ff70,执行之后esp=13ff68,所以最后一条可能是 sub esp,x |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值